0

我无法将数据附加到现有的 Excel 工作表中。
这是我的代码:

fis = new FileInputStream(file);
fs = new POIFSFileSystem(fis);
HSSFWorkbook wb1 = new HSSFWorkbook(fs);
sheet1 = wb1.getSheet("sheet1");
System.out.println("Last Row No.: " + sheet1.getLastRowNum());
row = sheet1.createRow(sheet1.getLastRowNum()+ 1);
System.out.println("Last Row No.: " + sheet1.getLastRowNum());

row.createCell(0).setCellValue(2);          
row.createCell(1).setCellValue(2.2);
row.createCell(2).setCellValue(true);   

fos = new FileOutputStream(file,true);
wb1.write(fos);
fos.flush();
fos.close();
4

2 回答 2

3

excel 文件格式不是可附加格式。要写出更改,您必须更新整个文件。

只需将您的 FileOutputStream 更改为替换而不是追加,然后您的代码应该按照您的预期运行。

于 2012-10-01T13:11:04.823 回答
1

尝试使用此代码附加

fis = new FileInputStream(file);
Workbook wb=WorkbookFactory.create(fis);
sheet1 = wb1.getSheet("sheet1");
System.out.println("Last Row No.: " + sheet1.getLastRowNum());
row = sheet1.createRow(sheet1.getLastRowNum()+ 1);
System.out.println("Last Row No.: " + sheet1.getLastRowNum());

row.createCell(0).setCellValue(2);          
row.createCell(1).setCellValue(2.2);
row.createCell(2).setCellValue(true);   

fos = new FileOutputStream(file,true);
wb1.write(fos);
fos.flush();
fos.close();
于 2012-10-12T08:59:26.243 回答