gpt4 book ai didi

java - 使用Java修改xlsm文档

转载 作者:行者123 更新时间:2023-12-01 12:41:52 24 4
gpt4 key购买 nike

我有一个 xlsm Excel 文件,其中已经包含宏。该文件有 2M 大(我猜是因为里面有很多宏)。

我只想写入文件中的 1 个单元格,并且我正在使用 POI 界面。这是代码

Workbook wb;
wb = new XSSFWorkbook(
OPCPackage.open("test.xlsm")
);
Sheet sheet = wb.getSheet("Sheet1");
Cell c = sheet.getRow(1).getCell(8);
System.out.print("Sheet Name " + sheet.getSheetName());
System.out.print("Cell is " + c.getNumericCellValue());


c.setCellValue(4);
FileOutputStream fileOut=new FileOutputStream("test.xlsm");
wb.write(fileOut);
fileOut.close();
System.out.println("done1");

它正确读取值,然后似乎卡在 wb.write(fileout) 上,永远不会完成。我究竟做错了什么?有没有办法修改包含宏的 Excel 工作表?

谢谢

最佳答案

要修改现有文件,请使用InputStreamOutputStream

    File file = new File("test.xlsm");
FileInputStream inputStream = new FileInputStream(file);
OPCPackage.open(inputStream);
......
FileOutputStream fileOut=new FileOutputStream("test.xlsm");
wb.write(fileOut);
fileOut.close();

为了更确定,在写入文件之前关闭InputStream

关于java - 使用Java修改xlsm文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25029058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com