如何使用java poi更改xls文件

如何使用java poi更改xls文件,java,excel,apache-poi,Java,Excel,Apache Poi,我制作了一个函数,用poi写入文件.xls: public void write() throws IOException{ String excelFileName = "C:\\Users/Default/Desktop/MyFirstExcel.xls";//name of excel file String sheetName = "Sheet1";//name of sheet HSSFWorkbook wb = new HSSFWorkbook()

我制作了一个函数,用poi写入文件.xls:

    public void write() throws IOException{
    String excelFileName = "C:\\Users/Default/Desktop/MyFirstExcel.xls";//name of excel file

    String sheetName = "Sheet1";//name of sheet

    HSSFWorkbook wb = new HSSFWorkbook();
    HSSFSheet sheet = wb.createSheet(sheetName) ;

    //iterating r number of rows
    for (int r=0;r <10; r++ )
    {
        HSSFRow row = sheet.createRow(r);

        //iterating c number of columns
        for (int c=0;c < 5; c++ )
        {
            HSSFCell cell = row.createCell(c);

            cell.setCellValue((String)"Cell "+r+" "+c); //+r+" "+c
        }
    }

    FileOutputStream fileOut = new FileOutputStream(excelFileName);

    //write this workbook to an Outputstream.
    wb.write(fileOut);
    fileOut.flush();
    fileOut.close();
            Alert alert = new Alert(AlertType.INFORMATION);
            alert.setTitle("Information Dialog");
            alert.setHeaderText(null);
            alert.setContentText("Done");
            alert.showAndWait();                   
}

这似乎还不够。

您需要从文件/inputstream创建工作簿对象,然后才能读取现有的行/单元格/。。。并对内容进行修改/添加,即

InputStream stream = new FileInputStream(excelFileName);
try {
    HSSFWorkbook wb = new HSSFWorkbook(stream);
    ...
    // write to a new file here!
    wb.write(outStream);
} finally {
    stream.close();
}

请参见

如果要更改excel,则需要打开并修改工作簿
InputStream stream = new FileInputStream(excelFileName);
try {
    HSSFWorkbook wb = new HSSFWorkbook(stream);
    ...
    // write to a new file here!
    wb.write(outStream);
} finally {
    stream.close();
}