zhao
2021-07-07 2fdf959ac739edd6de84aa8053b8b9683dce8e8b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/* ====================================================================
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for Additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at
 
       http://www.apache.org/licenses/LICENSE-2.0
 
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
==================================================================== */
 
namespace HH.WMS.Utils.NPOI.SS.UserModel
{
    using System;
    /**
     * Contains raw Excel error codes (as defined in OOO's excelfileformat.pdf (2.5.6)
     * 
     * @author  Michael Harhen
     */
    public class ErrorConstants
    {
        protected ErrorConstants()
        {
            // no instances of this class
        }
 
        /** <b>#NULL!</b>  - Intersection of two cell ranges is empty */
        public const int ERROR_NULL = 0x00;
        /** <b>#DIV/0!</b> - Division by zero */
        public const int ERROR_DIV_0 = 0x07;
        /** <b>#VALUE!</b> - Wrong type of operand */
        public const int ERROR_VALUE = 0x0F;
        /** <b>#REF!</b> - Illegal or deleted cell reference */
        public const int ERROR_REF = 0x17;
        /** <b>#NAME?</b> - Wrong function or range name */
        public const int ERROR_NAME = 0x1D;
        /** <b>#NUM!</b> - Value range overflow */
        public const int ERROR_NUM = 0x24;
        /** <b>#N/A</b> - Argument or function not available */
        public const int ERROR_NA = 0x2A;
 
 
        /**
         * @return Standard Excel error literal for the specified error code. 
         * @throws ArgumentException if the specified error code is not one of the 7 
         * standard error codes
         */
        public static String GetText(int errorCode)
        {
            switch (errorCode)
            {
                case ERROR_NULL: return "#NULL!";
                case ERROR_DIV_0: return "#DIV/0!";
                case ERROR_VALUE: return "#VALUE!";
                case ERROR_REF: return "#REF!";
                case ERROR_NAME: return "#NAME?";
                case ERROR_NUM: return "#NUM!";
                case ERROR_NA: return "#N/A";
            }
            throw new ArgumentException("Bad error code (" + errorCode + ")");
        }
 
        /**
         * @return <c>true</c> if the specified error code is a standard Excel error code. 
         */
        public static bool IsValidCode(int errorCode)
        {
            // This method exists because it would be bad to force clients to catch 
            // ArgumentException if there were potential for passing an invalid error code.  
            switch (errorCode)
            {
                case ERROR_NULL:
                case ERROR_DIV_0:
                case ERROR_VALUE:
                case ERROR_REF:
                case ERROR_NAME:
                case ERROR_NUM:
                case ERROR_NA:
                    return true;
            }
            return false;
        }
    }
 
}