Apache POI:excel文件中的内容被破坏
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache POI:excel文件中的内容被破坏相关的知识,希望对你有一定的参考价值。
我正在编写一个写入Excel文件的方法。在调用之前,我创建了一个工作簿和一个工作表。代码执行时没有任何错误,但是当打开创建的Excel文件时,我收到消息:我们发现某些内容存在问题...
我的方法看起来像这样:
public void writeToCell(int rowNumber, int cellNumber, Double content) {
Row row = sheet.createRow(rowNumber);
Cell cell = row.createCell(cellNumber);
cell.setCellValue(content);
try (FileOutputStream outputStream = new FileOutputStream(month + ".xlsx", true)) {
workbook.write(outputStream);
outputStream.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
这就是我调用方法的方法:
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet(month);
writeToCell(25, 4, 0.0);
writeToCell(25, 6, 23.32);
答案
您不应该明确地将数据附加到Excel工作簿,这也是@Axel在他的评论中指出的
try (FileOutputStream outputStream = new FileOutputStream(month + ".xlsx", true))
代替
try (FileOutputStream outputStream = new FileOutputStream(month + ".xlsx"))
对于旁注,
writeToCell(25, 4, 0.0);
writeToCell(25, 6, 23.32);
writeToCell
的最后一次调用将覆盖相同第25行的先前值。因为,你在每个电话中创建新的Row
Row row = sheet.createRow(rowNumber);
以上是关于Apache POI:excel文件中的内容被破坏的主要内容,如果未能解决你的问题,请参考以下文章
用java的poi类读取一个excel表格的内容后再写入到一个新excel表格中的完整代码
java poi操作Excel文件 生成的Excel文件为里面的内容为只读,不可以修改其内容。求解答。