在我的应用程序中,我希望能够打开已存在的excel文件,并向此文件添加信息。我使用Microsoft Interop库。我注意到,如果使用“添加”然后“保存”创建新电子表格,则可以将文件设置为独占模式,直到关闭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"。
答案 0 :(得分:0)
查看Workbook类的ExclusiveAccess属性: http://msdn.microsoft.com/en-US/library/microsoft.office.tools.excel.workbook.exclusiveaccess(v=vs.80).aspx
答案 1 :(得分:0)
您可以访问this article以获取有关如何打开Excel文件/添加新工作表/获取范围&的完整示例设置属性 使用Microsoft互操作库