首页 文章

使用Apache POI SXSSF API使用具有内置格式的模板编写xlsx

提问于
浏览
0

我试图看看是否可以让模板处理格式化(例如:将字符串(数字,日期,十进制值)转换为其本机数据类型)使用POI SXSSF API将数据写入xlsx而不是让应用程序使用写入数据时适当的setCellValue(Date / int / String / double)方法 .

我测试了下面提到的这种情况,但它似乎没有起作用 . 我很感激这里有任何建议 .

  • 创建了一个.xlsx模板,其 Headers 行包含单元格an_integer,a_decimal_number,a_date和a_string . 我通过右键单击列并选择'Format Cells',将 Headers 中的每一列格式化为适当的类型 .

  • 使用SXSSF API并添加了包含数据121,132.7612,03 / 13/2013的行,我是一个字符串,并对所有单元格使用setCellValue(String)方法 . 我希望数据能够自动转换为各自的类型,因为列的格式是这样做的 . 但是,这似乎没有发生,生成的excel文件仍然将数字和日期视为字符串 .

我的模板格式错误吗?是我试图做的可行吗?

1 回答

  • 2

    XSSFCell中的方法 setCellValue(String) 将自动将单元格的单元格类型设置为 CELL_TYPE_STRING ,覆盖之前的任何单元格类型,从而更改Excel格式化单元格值的方式 .

    尝试使用其中一个重载的 setCellValue 方法;每个都根据其参数的类型设置单元格类型:

    • setCellValue(boolean) - CELL_TYPE_BOOLEAN

    • setCellValue(Calendar) - CELL_TYPE_NUMERIC (Excel将其日期存储为数字)

    • setCellValue(Date) - CELL_TYPE_NUMERIC (Excel将其日期存储为数字)

    • setCellValue(double) - CELL_TYPE_NUMERIC

    • setCellValue(RichTextString) - CELL_TYPE_STRING

    • setCellValue(String) - CELL_TYPE_STRING

相关问题