Java POI-以HH:MM:SS.sss格式处理数据
我在一个项目中工作,我有Java POI-以HH:MM:SS.sss格式处理数据,java,excel,apache-poi,Java,Excel,Apache Poi,我在一个项目中工作,我有HH:MM:SS.sss格式的数据,我必须在Excel/电子表格中生成报告。我正在使用POI生成excel文件,但我面临以下问题: 如果我以字符串格式设置数据,即cell.setCellValue(“02:45:6.7”)不可能使用Excel公式,例如平均值,总和等。即使我将单元格格式化为[h]:mm:ss.000@即cs.setDataFormat(df.getFormat(“[h]:mm:ss.000;@”))is不起作用,因为它是字符串 HSSFCellStyle
HH:MM:SS.sss
格式的数据,我必须在Excel/电子表格中生成报告。我正在使用POI生成excel文件,但我面临以下问题:
cell.setCellValue(“02:45:6.7”)
不可能使用Excel公式,例如平均值
,总和
等。即使我将单元格格式化为[h]:mm:ss.000@代码>即
cs.setDataFormat(df.getFormat(“[h]:mm:ss.000;@”))is不起作用,因为它是字符串
HSSFCellStyle cs=hssfworkbook.createCellStyle();
HSSFDataFormat df=hssfworkbook.createDataFormat();
cs.setDataFormat(df.getFormat(“[h]:mm:ss.000;@”)代码>
hh:mm:ss格式获取数据的功能(据我所知)。sss
格式,我尝试使用“时间(hh,mm,ss)”并将单元格格式设置为[h]:mm:ss.000@代码>小数点替换为000后不显示值,即时间(02,45,6.7)显示为02:45:6.000
我很长一段时间没有和POI合作,但据我回忆。。。日期只是数字(毫秒)。只有单元格类型定义为日期/数字单元格 然后在别处定义单元的实际视觉表示 我的一些旧代码(可能不是最新的POI版本有此语句): 可以将单元样式(显示格式)设置为:
因此,我将深入研究
样式
部分。。。以及如何设置(抱歉,本部分没有工作示例)。也许它会和你的代码一起工作。。。因为您没有将值设置为数字,而是设置为字符串。谢谢您的回答,我想这不会起作用。如何使用“datetimeformatils.parseDate(value);”解析“HH:MM:SS.sss”中的日期对于这个特定的格式没有这样的方法。这是我的方法,忽略它。您可以使用SimpleDateFormat将字符串解析为日期(只需谷歌搜索即可)。如果我使用SimpleDateFormat将字符串解析为日期,它还将包括日期部分,例如DateFormat ff=newSimpleDateFormat(“HH:mm:ss.SSS”),结果是一个日期对象。。。格式=SimpleDataFormat(yourFormat);日期=format.parse(stringDate);如果我使用SimpleDateFormat解析到日期的字符串,它还将包括日期部分,例如DateFormat ff=newSimpleDateFormat(“HH:mm:ss.SSS”);SOP(ff.parse(“08:6:2.011”);从1970年1月1日开始需要时间。我只想要“时间”部分,但它也包括“日期”部分。有没有可能只包括计时部分。。cell.setCellValue(..)采用3种类型的值——字符串、富文本和日期。您是否尝试阅读?@Gagravarr感谢您的回答您指的是这一种吗?“cellStyle.setDataFormat(createHelper.createDataFormat().getFormat(“m/d/yy h:mm”);”输入您实际需要的任何格式(从Excel复制),然后根据该文档设置包含时间的合适java日期对象,您应该这样做
HSSFCell cell = newRow.createCell(column);
Date date = new Date(some_date_value);
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(date);
cell.setCellStyle(style);