【问题标题】:setCellType(HSSFCELL.CELL_TYPE_NUMERIC) is not working in apache poisetCellType(HSSFCELL.CELL_TYPE_NUMERIC) 在 apache poi 中不起作用
【发布时间】:2022-01-20 20:44:09
【问题描述】:

SetCellType(HSSFCELL.CELL_TYPE_NUMERIC) 在 apache poi 中不起作用。 有人在JAVA中使用过POI的这个功能吗?

当我使用 POI 创建 XLS 文件并且单元格包含整数值并且我将单元格类型设置为数字时,该单元格反映了其他一些整数值。 例子: 使用 JAVA 程序和 poi 实用程序,我输入Cell A1"5"。现在这个单元格包含整数值,但默认单元格类型是CELL_TYPE_STRING。所以这个单元格给了我错误,并要求我将此单元格转换为数字。 但是当我将这个单元格类型设置为CELL_TYPE_NUMERIC 时使用程序,它不会在 XLS 文件中给我错误,但它会显示不同的值

有人遇到过这样的问题吗? 如果是,那么是否有任何解决方案。我坚持了这个。

如果您需要更多说明,请询问我。

提前致谢。

【问题讨论】:

  • 扩展与这个问题关系不大。但是,文件类型确实如此。您可以创建 Excel 2012 文档并使用 .XLS 而不是 .XSLS 进行保存,但它仍将是 Excel 2012 格式。您必须确保根据您正在处理的文件类型使用正确的类(XSSF 与 HSSF)。
  • 如果你有一个整数值,为什么不将它设置为单元格值?你为什么要通过字符串?

标签: java apache-poi xssf


【解决方案1】:

由于您使用的是XSSF 而不是HSSF,因此请使用cell.setCellType(XSSFCell.CELL_TYPE_NUMERIC) 而不是setCellType(HSSFCELL.CELL_TYPE_NUMERIC)

【讨论】:

  • 这很可能是问题所在,但是你怎么知道 OP 正在使用 XSSF?
  • 他已将问题标记为XSSF
【解决方案2】:

** 给出整数值而不是字符串值。**

HSSFCell cell = row.createCell(col);
cell.setCellStyle(style);
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
if(value!=null)
    cell.setCellValue(Integer.parseInt(value));

【讨论】:

    【解决方案3】:

    使用:

    HSSFCell cell = row.createCell( col );
    cell.setCellType ( CellType.NUMERIC );
    

    cell.setCellType ( CellType.NUMERIC );
    

    【讨论】:

      猜你喜欢
      • 2017-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多