在我的应用程序中,我希望能够打开已经存在的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,"Exception from HRESULT: 0x800401A8“。
发布于 2012-03-25 21:41:41
查看Workbook类的ExclusiveAccess属性:http://msdn.microsoft.com/en-US/library/microsoft.office.tools.excel.workbook.exclusiveaccess(v=vs.80).aspx
发布于 2012-03-28 11:08:31
您可以访问this article获取有关如何使用Microsoft interop库打开excel文件/添加新工作表/获取范围和设置属性的完整示例
https://stackoverflow.com/questions/9860336
复制相似问题