我试图看看是否可以让模板处理格式化(例如:将字符串(数字,日期,十进制值)转换为其本机数据类型)使用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 回答
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