gpt4 book ai didi

java - Excel无法理解java写入的数据格式

转载 作者:行者123 更新时间:2023-12-01 13:53:22 26 4
gpt4 key购买 nike

我在使用 apache POI 将数据从 csv 写入 Excel 文件时遇到两个问题。数据由日期和数字组成问题是:

1) The numbers are written as strings.
2) Excel cannot read the date format (this messes the graphs up)

代码(我之前收到过帮助):

    String name = "test";
Sheet sheet = wb.getSheet(name);
if (sheet == null) {
sheet = wb.createSheet(name);
}

int rowCount = 0;
Scanner scanner = new Scanner(new File("/tmp/" + name + ".csv"));
while (scanner.hasNextLine()) {
String[] rowData = scanner.nextLine().split(",");
for (int col = 0; col < rowData.length; col++) {
Row row = sheet.getRow(rowCount);
if (row == null)
row = sheet.createRow(rowCount);
Cell cell = row.getCell(col);
if (cell == null) {
cell = row.createCell(col);
}
cell.setCellValue(rowData[col]);
}
rowCount++;
}

wb.write(new FileOutputStream(excel));
}

1)在将数据输入Excel文件时,我尝试使用Double.parseDouble(rowData[col])。但这会产生空字符串错误。我什至使用 style.setDataFormat(format.getFormat("#,##0.0000")); 设置单元格格式,但它仍然不起作用

2) 我尝试使用日期格式 cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("m/d/yyyy hh:mm:ss")); 但仍然是 Excel 图表无法读取此格式。 (当我手动从 csv 文件复制并粘贴时,它可以工作)。

所以基本上,当使用 apache poi 复制数据时,依赖于复制的单元格的其他数据都不会被更新。例如,如果某个单元格的值为 100 个单元格的平均值,并且我手动将数据复制到这些单元格中,它会自动更新。但是当它通过java复制时,单元格不会更新。

最佳答案

下面应该做更多的事情。

try {
double value = Double.parseDouble(rowData[col]);
cell.setCellValue(value);
} catch (NumberFormatException | NullPointerException e) {
String value = rowData[col];
cell.setCellValue(value);
}

(但是,您可能不会使用 Apache POI 并直接将 CSV 文件复制到 .xls,如果只需要Excel双击读取即可。)

关于java - Excel无法理解java写入的数据格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19793357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com