CellDataTypeEnum.java 1.3 KB
Newer Older
Z
zhuangjiaju 已提交
1 2 3 4 5 6 7 8 9 10
package com.alibaba.excel.enums;

import java.util.HashMap;
import java.util.Map;

import com.alibaba.excel.util.StringUtils;

/**
 * excel internal data type
 *
Z
zhuangjiaju 已提交
11
 * @author Jiaju Zhuang
Z
zhuangjiaju 已提交
12 13 14 15 16 17
 */
public enum CellDataTypeEnum {
    /**
     * string
     */
    STRING,
Z
zhuangjiaju 已提交
18 19 20 21 22
    /**
     * This type of data does not need to be read in the 'sharedStrings.xml', it is only used for overuse, and the data
     * will be stored as a {@link #STRING}
     */
    DIRECT_STRING,
Z
zhuangjiaju 已提交
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
    /**
     * number
     */
    NUMBER,
    /**
     * boolean
     */
    BOOLEAN,
    /**
     * empty
     */
    EMPTY,
    /**
     * error
     */
    ERROR;

Z
zhuangjiaju 已提交
40
    private static final Map<String, CellDataTypeEnum> TYPE_ROUTING_MAP = new HashMap<String, CellDataTypeEnum>(16);
Z
zhuangjiaju 已提交
41 42
    static {
        TYPE_ROUTING_MAP.put("s", STRING);
Z
zhuangjiaju 已提交
43
        TYPE_ROUTING_MAP.put("str", DIRECT_STRING);
Z
zhuangjiaju 已提交
44
        TYPE_ROUTING_MAP.put("inlineStr", STRING);
Z
zhuangjiaju 已提交
45 46
        TYPE_ROUTING_MAP.put("e", ERROR);
        TYPE_ROUTING_MAP.put("b", BOOLEAN);
Z
zhuangjiaju 已提交
47
        TYPE_ROUTING_MAP.put("n", NUMBER);
Z
zhuangjiaju 已提交
48 49 50 51
    }

    /**
     * Build data types
Z
zhuangjiaju 已提交
52
     *
Z
zhuangjiaju 已提交
53 54 55 56 57 58 59 60 61 62
     * @param cellType
     * @return
     */
    public static CellDataTypeEnum buildFromCellType(String cellType) {
        if (StringUtils.isEmpty(cellType)) {
            return EMPTY;
        }
        return TYPE_ROUTING_MAP.get(cellType);
    }
}