如何重用使用docx4j开发的代码到POI 3.12来解析xlsx文件

时间:2018-01-19 07:23:09

标签: java excel apache-poi

有人可以帮助我...在使用docx4j重新定义代码开发到POI.to获取cell的字符串值.getStringvlue(cell)

    try {
        STCellType type = cell.getT();
        String value    = cell.getV();

        if (cell.getF() != null && value != null && !value.isEmpty()) {
            /* cached formula result */
            return value;
        }

        if (type == null) {
            return value == null ? "" : value;

        } else {
            switch (type) {


            case S:

                return stringItems.get(Util.toInteger(value)).getT().getValue();

            case INLINE_STR:
                return cell.getIs().getT().getValue();

            case STR: /* STRING */
            case N:   /* NUMBER */
            case B:   /* BOOLEAN */
            case E:   /* ERROR */
            default:
                return Util.nullToEmpty(value);
            }
        }

在POI中,不推荐使用cell.getCelltype。因此我在转换时遇到了一些问题。

1 个答案:

答案 0 :(得分:1)

int getCellType()在POI 3.15中不推荐使用

cell.getCellTypeEnum()


switch (cell.getCellTypeEnum()) {
  case S:

                return stringItems.get(Util.toInteger(value)).getT().getValue();

            case INLINE_STR:
                return cell.getIs().getT().getValue();

            case STR: /* STRING */
            case N:   /* NUMBER */
            case B:   /* BOOLEAN */
            case E:   /* ERROR */
            default:
                return Util.nullToEmpty(value);
}