我使用的是最新的Microsoft.Office.Interop.Excel dll
系统目前以.xls
格式保存文件
我使用了以下代码但是我收到了错误。
App = CreateObject("Excel.Application")
xlsTemplate= App.Workbooks.Open(TemplateFile) ' template is in .xls format
TargetPath = Some target path.xlsx
Excel.Workbook.SaveCopyAs(TargetPath)
Excel.Workbook = App.Workbooks.Open(TargetPath) ' code breaks here
SomeFunction(Excel.Workbook)
ExcelBook.SaveAs(ExcelBook.FullName, Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook, System.Reflection.Missing.Value, System.Reflection.Missing.Value, False, False, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlUserResolution, True, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value)
ExcelBook.Saved = True
错误:Excel无法打开文件'.xlsx',因为文件格式或文件扩展名无效。验证文件是否已损坏,以及文件扩展名是否与文件格式匹配。
答案 0 :(得分:1)
我正在回应这个帖子,因为目前的答案对我来说还不清楚 - 这迫使我做更多的研究。
更改名称中的扩展名不会更改文件格式。要以您想要的格式保存Excel文档,请使用Microsoft.Office.Interop.Excel中的以下参数来保存工作簿(VB.NET):
scope
您可以修改第二个参数(文件格式)以指定要保存文档的版本。
答案 1 :(得分:0)
更改扩展名不会自动更改文件的格式。你只是将.xls文件误导为.xlsx。当您尝试再次打开该文件时,Excel期望一个.xlsx文件,但获取一个.xls格式的文件。 SaveCopyAs
不提供更改文件格式的选项。尝试SaveAs
并使用FileFormat
参数指定您想要.xlsx文件。