我在使用 apache POI 将数据从 csv 写入 excel 文件时遇到了 2 个问题。数据由日期和数字组成。问题是:
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));
}
Double.parseDouble(rowData[col])
1)我在将数据输入到excel文件时尝试使用。但这给出了一个空字符串错误。我什至设置了单元格格式,style.setDataFormat(format.getFormat("#,##0.0000"));
但它仍然不起作用
2)我尝试使用日期格式 cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("m/d/yyyy hh:mm:ss"));
,但 excel 图表仍然无法读取这种格式。(当我从 csv 文件手动复制和粘贴时,它可以工作)。
所以基本上,当使用 apache poi 复制数据时,依赖于复制单元格的其他数据都不会更新。例如,如果一个单元格的平均值为 100 个单元格,我手动将数据复制到这些单元格中,它会自动更新。但是当它通过java复制时,单元格不会更新。