gpt4 book ai didi

java - 写入 Excel 文件时会丢失一些数据。 java

转载 作者:行者123 更新时间:2023-12-01 10:06:51 25 4
gpt4 key购买 nike

我正在创建 XLSX 文件并向单元格添加一些值,它写道一切正常,但是当我读回文件或只是打开文件时。我没有看到那里的所有数据。

File myfile = new File("hello.xlsx");
Workbook workBook = new XSSFWorkbook();
Sheet sheet = workBook.createSheet("sheet");
String[] tokens= {"A1", "B5", "C7", "J1", "K15", "Z20"};

for (String tok: tokens) {
CellReference ref = new CellReference(tok);
Row row = sheet.createRow(ref.getRow());
Cell cell = row.createCell((short) ref.getCol());
cell.setCellValue("blabla");
System.out.println(ref);
}

workBook.write(new FileOutputStream(myfile));
workBook.close();

System.out.println();

FileInputStream fileInputStream = new FileInputStream(myfile);
Workbook workBook2 = new XSSFWorkbook(fileInputStream);
Sheet worksheet = workBook2.getSheet("sheet");

for(String tok: tokens) {
CellReference ref= new CellReference(tok);
Row row = worksheet.getRow(ref.getRow());
Cell cell = row.getCell(ref.getCol());
if(cell != null){
System.out.println(ref);
}
}

但是当我读回它们时,我只得到了其中的一小部分。为什么?

org.apache.poi.ss.util.CellReference [A1]
org.apache.poi.ss.util.CellReference [B5]
org.apache.poi.ss.util.CellReference [C7]
org.apache.poi.ss.util.CellReference [J1]
org.apache.poi.ss.util.CellReference [K15]
org.apache.poi.ss.util.CellReference [Z20]

org.apache.poi.ss.util.CellReference [B5]
org.apache.poi.ss.util.CellReference [C7]
org.apache.poi.ss.util.CellReference [J1]
org.apache.poi.ss.util.CellReference [K15]
org.apache.poi.ss.util.CellReference [Z20]

最佳答案

您正在创建 Row 1(索引 0)两次:

...
Row row = sheet.createRow(ref.getRow());
...

如果ref引用A1,这将创建一个行0一次,如果ref引用,则再次创建一个行0 J1。两次都会创建空行 0。因此该行中第一个创建的单元格将会丢失。

在创建新行之前,您必须检查该行是否已存在:

...
Row row = sheet.getRow(ref.getRow());
if (row == null) row = sheet.createRow(ref.getRow());
...

关于java - 写入 Excel 文件时会丢失一些数据。 java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36382986/

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