我有第三方應用程序,它通過打開excel文件,設置單元格中的值以及編寫(保存)excel文件來更新單元格值。假設我的excel電子表格始終處於打開狀態,我如何使電子表格實時反映這些更改?實時Excel更新
每次有更新時,我都必須重新打開excel文件才能看到新的更改。
PS。我正在使用Apache POI。
謝謝。
我有第三方應用程序,它通過打開excel文件,設置單元格中的值以及編寫(保存)excel文件來更新單元格值。假設我的excel電子表格始終處於打開狀態,我如何使電子表格實時反映這些更改?實時Excel更新
每次有更新時,我都必須重新打開excel文件才能看到新的更改。
PS。我正在使用Apache POI。
謝謝。
你不能使用Apache POI來做到這一點。如果您在Excel中打開Excel電子表格,那麼如果您嘗試將更改寫入該文件,則會得到FileNotFoundException
。至少在Windows上,你會得到這樣的事情:
java.io.FileNotFoundException: MySpreadsheet.xlsx (The process cannot access the
file because it is being used by another process)
此外,即使這個工作,沒有什麼與Excel應用程序本身交互在Apache POI API中,所以你不能告訴Excel中重新打開電子表格。
Excel爲什麼要重新打開電子表格?它由第三方應用程序編寫並由POI讀取。對文件修改時間戳和文件剛剛寫入時的一些錯誤處理的簡單輪詢應該足夠了......我在這裏看不到真正的問題...... – kiwiwings
問題:「每次有更新時,我都必須重新打開excel文件才能看到新的更改。」?如果你想知道哪些單元格已經改變,你必須自己做差異... – kiwiwings
我不確定這是可能的,因爲excel文件的性質,我觀察到它說「共享voilation」,你可以通過編寫一個bat文件來打開excel文件,並通過程序執行這個bat文件,每次文件更新。 –