有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法将数据附加到现有excel中

我无法将数据附加到现有的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();

共 (2) 个答案

  1. # 1 楼答案

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

    只需将FileOutputStream更改为替换文件而不是附加文件,代码就应该按照预期的方式运行

  2. # 2 楼答案

    尝试使用此代码追加

    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();