gpt4 book ai didi

java - 从java,当一个实例中存在多个电子表格时,如何在关闭Excel电子表格时收到通知

转载 作者:行者123 更新时间:2023-12-02 06:06:10 24 4
gpt4 key购买 nike

我有一个java程序,可以为它们的命令行启动excel电子表格,并等待它关闭以采取下一步操作,如下所示。 (顺便说一句,我的 Excel 运行宏,因此当我的宏完成执行以表明它已完成时,我会自动关闭电子表格)

p = Runtime.getRuntime().exec("cmd /c start /wait C:\\"+excelSheet);
p.waitFor();
System.out.print("finished "+count + " "+ excelSheet);

但是,我希望我的 java 程序启动 2 个 Excel 电子表格,并且每次关闭一张工作表时,我都想采取行动。 Excel 2010 使用一个 Excel 实例启动两个电子表格的问题。因此,我的 java 程序仅检测 Excel 实例何时关闭,这意味着两个电子表格都必须关闭。

如何解决?是否是Java代码、Excel代码、或者其他一些创新方法?请帮忙谢谢

PS:我使用 apache poi 在启动之前写入 Excel,并在关闭后从中读取

最佳答案

您可以定期打开文件进行写入(只需在追加模式下打开一个普通的FileOutputStream - 如果这引发 IOException,则文件仍然打开)

public boolean isStillOpenOnWindows(File file) {
try {
FileOutputStream out = new FileOutputStream(file, true);
out.close();
// Not open anymore
return false;
} catch (IOException e) {
// Still open
return true;
}
}

正如该方法的名称所暗示的,这是跨平台的,它仅适用于 Windows,因为 Windows 不允许进程同时打开文件进行写入。

既然您谈论的是 Excel,那么您可能指的是 Windows,但是有 Office for Mac,并且此技巧在 Mac OS 上不起作用。

关于java - 从java,当一个实例中存在多个电子表格时,如何在关闭Excel电子表格时收到通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22278082/

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