使用Excel Interop打开Excel工作簿时出现问题

我正在编写一个C#表单应用程序来使用Excel Interop打开现有的Excel工作簿。 一切工作正常。 我可以读写很好。 在用户closuresC#应用程序之前,我不保存工作簿。 当我的程序正在运行并且用户意外地用Excel打开相同的工作簿时,会发生问题。 我得到的错误:

来自HRESULT的exception:0x800401A8

在这条线

范围excelRange = worksheet.UsedRange;

有没有办法locking工作簿,并不允许用户在我的程序运行时用Excel打开它?

谢谢

这样做可能有更好的方法,但我能想到的唯一方法是:

  1. 将Excel文件复制到临时位置
  2. 将文件锁定在原始位置,以便没有人可以访问它。
  3. 与临时文件一起工作。
  4. 保存并关闭临时文件。
  5. 解锁并删除原始文件。
  6. 将临时文件复制到原始位置。