调用SaveAs方法时出现Excel COM异常

时间:2017-09-15 15:51:58

标签: c# excel interop office-interop comexception

在我的C#代码中,我首先打开一个Excel文件:

Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkBook = xlApp.Workbooks.Open(modelFileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

然后我编辑它。

最后,我将其保存在名为fileName的其他路径中:

xlWorkBook.SaveAs(fileName);

问题是,如果fileName对应于打开的Excel文件,则上面的指令会触发COM异常:

System.Runtime.InteropServices.COMException occurred
ErrorCode=-2146827284
HResult=-2146827284
HelpLink=xlmain11.chm
Message=Unable to access 'MyFile.xlsx'.
Source=Microsoft Excel

请注意我对xlWorkBook.Save()方法没有同样的问题,但我需要将编辑过的文件保存在不同的路径中,而不是覆盖它。

1 个答案:

答案 0 :(得分:0)

您无法保存到打开的文件。您必须修改fileName,使其指向另一个路径。