试图打开一个Excel模板,并重命名或保存到新的位置

我遇到以下错误信息,当我尝试以下操作:

Dim XL As New Microsoft.Office.Interop.Excel.Application XL.Visible = True XL.Workbooks.Open(XLTemplatePath) XL.SaveWorkspace(XLSaveReportPath) XL.Workbooks.Close() XL.Workbooks.Open(XLSaveReportPath) 

“Excel无法打开”ContactReports.xlsx“文件,因为文件格式或文件扩展名无效,请确认文件没有被破坏,文件扩展名与文件格式相匹配。

我想要做的是打开一个Excel文件XLTemplatePath,并重命名或保存在XLSaveReportPath文件,然后使用该重命名/保存的文件填写报告。

我在VB.NET中使用Visual Studio 2008

saveworkspace方法不保存文件。 即使您将文件保存为xls文件,它也会以xlw格式保存工作区。 当您尝试打开文档时,您正在打开一个崇拜空间,并收到错误信息。

为了使这项工作正确,您需要获取工作簿,以便可以读取工作簿而不是应用程序。

 Dim XL As New Microsoft.Office.Interop.Excel.Application Dim XLWorkbook as new Microsoft.Office.Interop.Excel.Workbook XL.Visible = True XLWorkbook = XL.Workbooks.Open(XLTemplatePath) XLWorkbook.SaveAs(XLSaveReportPath) XL.Workbooks.Close() XL.Workbooks.Open(XLSaveReportPath) 

应该做的伎俩。 如果您有任何问题,请告诉我们。

heare是你的评论的MSDN refrences:

Application.SaveWorkspace方法

Workbook.SaveAs方法

我已经使用下面的Visual Basic代码来处理Microsoft Excel 2003.关键的区别(Visual Basic 6 vs VB.Net除外)是使用Workbook对象的SaveAs方法而不是SaveWorkspace方法。

 Set ExcelApp = CreateObject("Excel.Application") ExcelApp.Visible = True Set ExcelDoc = ExcelApp.Workbooks.Open(FileName:=XLTemplatePath, ReadOnly:=True) ExcelDoc.SaveAs(FileName:=XLSaveReportPath) ExcelDoc.Close(SaveChanges:=False) ExcelApp.Workbooks.Open(FileName:=XLSaveReportPath)