zhao
2021-07-02 23ee356c6f260ecc1a48bbb8bd60932b979e4698
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/* ====================================================================
   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.HSSF.UserModel
{
    using System;
    using System.Text;
 
    /// <summary>
    /// Contains raw Excel error codes (as defined in OOO's excelfileformat.pdf (2.5.6)
    /// @author  Michael Harhen
    /// </summary>
    public class HSSFErrorConstants
    {
        private HSSFErrorConstants()
        {
            // 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;
 
 
        /// <summary>
        /// Gets 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
        /// </summary>
        /// <param name="errorCode">The error code.</param>
        /// <returns></returns>
        public static String GetText(int errorCode)
        {
            if (errorCode == ERROR_NULL)
            {
                return "#NULL!";
            }else if(errorCode == ERROR_DIV_0)
            {
                return "#DIV/0!";
            }else if(errorCode == ERROR_VALUE)
            {
                return "#VALUE!";
            }else if(errorCode == ERROR_REF)
            {
                return "#REF!";
            }else if(errorCode == ERROR_NAME)
            {
                return "#NAME?";
            }else if(errorCode == ERROR_NUM)
            {
                return "#NUM!";
            }
            else if (errorCode == ERROR_NA)
            {
                return "#N/A";
            }
            throw new ArgumentException("Bad error code (" + errorCode + ")");
        }
 
        /// <summary>
        /// Determines whether [is valid code] [the specified error code].
        /// </summary>
        /// <param name="errorCode">The error code.</param>
        /// <returns>
        ///     <c>true</c> if the specified error code is a standard Excel error code.; otherwise, <c>false</c>.
        /// </returns>
        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.
 
            if (errorCode == ERROR_NULL
                || errorCode == ERROR_DIV_0
                || errorCode == ERROR_VALUE
                || errorCode == ERROR_REF
                || errorCode == ERROR_NAME
                || errorCode == ERROR_NUM
                || errorCode == ERROR_NA
                )
                {
                    return true;
                }
 
            return false;
        }
    }
}