使用 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 文件的主要内容,如果未能解决你的问题,请参考以下文章
POI - 如何将单元格值设置为日期并应用默认Excel日期格式?