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