c# - 在 C# 中使用互操作以独占模式打开 excel 文件

标签 c# excel interop

在我的应用程序中,我希望能够打开一个已经存在的 excel 文件,并向该文件添加信息。我使用 Microsoft Interop 库。我注意到,如果您使用 Add 创建一个新的电子表格,然后使用 Saveas,您可以将文件设置为独占模式,直到您关闭 excel 应用程序。

但是,我还没有找到在打开现有文件时执行相同操作的方法。我想这样做的原因是,如果我在应用程序打开时打开 excel 文件,则会出现异常。我假设当我使用 excel 打开 excel 文件时,它会自动以独占模式打开。

我想打开文件然后使用 saveas,但它没有用。

private object missing=Type.Missing;
workbook = workbooks.Open(excelfilename,missing, false, missing, missing, missing,missing,missing,missing,missing,false, missing,missing, missing, missing);
workbook.SaveAs((String)excelfilename, missing, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlExclusive, Excel.XlSaveConflictResolution.xlLocalSessionChanges, missing, missing, missing, missing); 

我稍后在代码中得到异常:

Excel.Range testrange = sheet.get_Range(rangetext);

我遇到的异常是 COMException,“HRESULT 异常:0x800401A8”。

最佳答案

关于c# - 在 C# 中使用互操作以独占模式打开 excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9860336/

相关文章:

c# - 读取并显示C#中读取到的csv文件

具有尾递归优化的 C# 编译?

c# - 如果给定短路径,应用程序无法从应用程序配置中读取

python - 使用参数 : Python win32com API 调用宏

excel - LotusScript 代理从 csv 文件向多个收件人发送邮件

c# - 在不安全的 c# 中使用 Ws2_32.dll 是否比使用 .net 套接字更快?

excel - 使用 Excel 数据创建 Outlook session 请求

c# - 您可以/如何在 C# WPF 应用程序中托管完整的 VB6 表单?

.net - 如何获取某个Excel进程的窗口或进程句柄?

interop - 多种语言如何在一个项目中交互?