在我的应用程序中,我希望能够打开一个已经存在的 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”。
最佳答案
查看Workbook类的ExclusiveAccess属性: http://msdn.microsoft.com/en-US/library/microsoft.office.tools.excel.workbook.exclusiveaccess(v=vs.80).aspx
关于c# - 在 C# 中使用互操作以独占模式打开 excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9860336/