0

我使用 POI 读取/写入 Excel 工作表。当使用 POI 写入新工作表时,它起作用了。但是,当我尝试使用 POI 在现有的 excel 工作簿中写入时,它不起作用。我该如何纠正这个问题?

              workBook =  getWorkbookSheet(workBookName);
    sheet1 = workBook.getSheetAt(1);
    sheet2 = workBook.getSheetAt(2);

    while(sheetStart<sheet1.getLastRowNum() + 1)
    {
        HSSFRow rowSheet1 = sheet1.getRow(sheetStart);
        HSSFCell cellSheet1 = rowSheet1.getCell(4);
        if(cellSheet1.getStringCellValue().trim().equals(valY))
        {                                           cellSheet1.setCellValue("N");
        }
        else
            //do nothing 
            sheetStart++;
    }
    fileOutSheet1 = new FileOutputStream(sheet1.getSheetName());
    workBook.write(fileOutSheet1);
    fileOutSheet1.flush();
    fileOutSheet1.close();
4

1 回答 1

0

fileOutSheet1 = new FileOutputStream(sheet1.getSheetName());似乎不正确。你应该给出工作簿的路径而不是 sheet1.getSheetName。因为即使在单个单元格内容更改之后,您仍在编写整个工作簿。

例如它应该像

    FileOutputStream fileOut = new FileOutputStream("C:\\MyWorkbook.xlsx");
    wb.write(fileOut);
    fileOut.close();

详情请访问这里

于 2013-07-11T01:16:26.727 回答