0
当在我的C#代码,我首先打开一个Excel文件:的Excel COM调用异常SaveAs方法
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()
方法相同的问题,但我需要将编辑后的文件保存在其他路径中,而不是覆盖它。
那么你不能SaveAs到已经打开的文件。您需要关闭现有文件(将被覆盖)或保存到不同的名称。 –
为什么我做不到? Save()方法允许保存到打开的文件中...... – KentuckyJack92
@您需要检查是否存在任何具有相同名称的文件,并且如果在结尾添加了“2”并再次尝试,并且如果它存在,则再增加一个,直到找到一个不存在的名称,然后将其保存在该名称下。在VBA中,您可以使用函数DIR()来检索文件夹中的文件名 – Ibo