使用 POI 写入现有的 excel 文件

Posted

技术标签:

【中文标题】使用 POI 写入现有的 excel 文件【英文标题】:Writing to existing excel file using POI 【发布时间】:2013-02-28 06:26:08 【问题描述】:

我使用 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();

【问题讨论】:

请分享您的代码 “不起作用”根本没有帮助。你应该告诉我们发生了什么确切地 我想你需要看看我的this answer。很可能就是这种情况。 我试过了。它现在还在工作。 【参考方案1】:

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

例如应该是这样的

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

详情请访问here

【讨论】:

以上是关于使用 POI 写入现有的 excel 文件的主要内容,如果未能解决你的问题,请参考以下文章

ruby excel - 将数据写入现有的xls

用 poi 在 excel 文件中写入

POI - 如何将单元格值设置为日期并应用默认Excel日期格式?

delphi 如何写入Excel

使用 Apache Poi 生成批量 excel 文件时出现套接字异常

在 php(网页)中运行 Python 脚本以写入现有的 excel