当我尝试以下操作时,我收到以下错误消息:
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',因为文件格式或文件扩展名无效。验证文件没有损坏并且文件扩展名与文件格式匹配。”
我想做的是打开一个 XLTemplatePath 的 excel 文件,然后将文件重命名或保存在 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)
应该做的伎俩。如果您有任何问题,请告诉我们。
以下是供您查看的 MSDN 引用:
Application.SaveWorkspace Method
Workbook.SaveAs Method
关于vb.net - 尝试打开 Excel 模板并重命名或保存到新位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2537894/