假设我有一个运行的程序,它会定期向.CSV文件添加信息。有没有办法在Excel中打开文件时写入文件?显然,在Excel中重新打开文件之前不会注意到这些更改,但是就像现在一样,我正在捕获IOException并且只是在当前已经打开的情况下启动一个新的.csv文件。
答案 0 :(得分:6)
Excel似乎以独占模式打开文件,因此我能想到的唯一方法是将更改写入临时文件,然后使用FileSystemWatcher
查看文件何时关闭,并覆盖文件。
不是一个好主意,因为你可能会丢失数据。 excel锁定文件的全部原因是你不会意外覆盖excel中所做的更改。
答案 1 :(得分:1)
听起来文件被锁定了。我怀疑如果它在另一个进程中打开,你将能够写入该文件。
答案 2 :(得分:1)
作为一名前任(当前)VB程序员,我可以告诉你Jared是正确的 - 没有办法直接这样做。您可以先尝试复制文件,进行编辑,然后尝试将文件保存回原始位置,直到锁定的文件空闲为止。您应该能够复制该文件,即使在锁定时也是如此。
答案 3 :(得分:0)
如何使用Excel的对象模型并自动将数据添加到打开的电子表格中?您可能需要提示用户以某种方式让他们知道发生了什么。