xlsx分析:其中XMLvalue与单元格值不同

时间:2013-09-25 08:51:36

标签: java xml excel apache-poi xlsx

现在我们正在构建一个函数,使用apache.poi将大型xlsx文件(超过200MB)导入数据库,并浏览所有读取该数据的xml文件。

该功能已经完成,但有一个问题:

当我在xlsx单元格中输入值“1:16”时,它会将自动存储类型设置为“user-defined-numeric”

你会看到

在xml文件中   <c r="A1" s="1"><v>5.2777777777777778E-2</v></c> 我只需要得到'1:16'的价值

我该怎么办?

1 个答案:

答案 0 :(得分:2)

“数字”1:16由Excel转换为时间,excel中的日期/时间存储为数字,其中整数部分是自纪元以来的天数,小数部分是当天的百分比

所以在你的例子中:

= 0.0527777777777778 *24 *60 (hours * minutes)
= 76 mins
= 1 hour 16 mins

使用POI,您需要使用data formatter。类似的东西:

DataFormatter formatter = new DataFormatter(Locale.US);

if(DateUtil.isCellDateFormatted(cell)) {
    String formattedData = formatter.formatCellValue(cell);
    ...
}