gpt4 book ai didi

java - 将结果记录到 Excel 文件(apache poi),如果我在程序仍在运行时打开文件,则会出现错误

转载 作者:行者123 更新时间:2023-12-01 11:19:22 25 4
gpt4 key购买 nike

我有一个程序可以执行各种任务,然后将结果记录到 Excel 文件中。我正在使用 Apache POI。

该程序运行完美,并且正在按照我想要的方式记录所有内容。但是,这可能需要几个小时才能完成,而且我注意到,如果我在 excel 文件仍在运行时打开它,它会失败并抛出 java.io.FileNotFoundException 。此消息的异常 (The process cannot access the file because it is being used by another process)当它尝试保存到文件时。

我的猜测是,通过打开 Excel 文件,程序将被锁定,无法对其进行写入。我该如何解决这个问题?有没有办法在程序运行时锁定用户打开文件(强制他们以只读方式访问它)?

这是最初创建文件的代码:

HSSFWorkbook wb = new HSSFWorkbook();

//.. bunch of POI stuff here

FileOutputStream fileOut = new FileOutputStream("C:\\ file path here");
wb.write(fileOut);
wb.close();
fileOut.close();

然后在单独的 logResults() 方法中,访问并保存文件:

FileInputStream file = new FileInputStream(new File("C:\\ file path here"));

HSSFWorkbook wb = new HSSFWorkbook(file);

//.. bunch more POI stuff here

FileOutputStream fileOut = new FileOutputStream("C:\\ file path here");
wb.write(fileOut);
wb.close();
fileOut.close();

最佳答案

我认为你不能在 Java 端做任何事情。

您可能需要在 Excel 文件中执行以下操作

Private Sub Workbook_Open()
If ThisWorkbook.ReadOnly
Then
MsgBox "File already in use"
ThisWorkbook.Close
savechanges:=False
End If
End Sub

'这是工作簿事件代码。'要输入此代码,请右键单击工作表上的 Excel 图标'(如果最大化工作簿,则位于"file"菜单旁边),'从菜单中选择“查看代码”,然后粘贴代码

关于java - 将结果记录到 Excel 文件(apache poi),如果我在程序仍在运行时打开文件,则会出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31439410/

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