Попытка открыть шаблон Excel и переименовать или сохранить в новом месте - PullRequest
2 голосов
/ 29 марта 2010

Я получаю следующее сообщение об ошибке при попытке выполнить следующее:

   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, а затем использовать этот переименованный / сохраненный файл для заполнения отчета.

Я использую Visual Studio 2008 в VB.NET

Ответы [ 2 ]

2 голосов
/ 29 марта 2010

Метод saveworkspace не сохраняет файл.Он сохраняет рабочее пространство в формате xlw, даже если вы называете файл, в котором вы сохраняете рабочее пространство, как xls.Когда вы пытаетесь открыть документ, вы открываете Worspace и получаете сообщение об ошибке.

Для правильной работы вам нужно получить рабочую книгу, чтобы вы могли добавить рабочую книгу вместо приложения.

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

Рабочая книгаМетод .SaveAs

0 голосов
/ 29 марта 2010

Я использовал следующий код Visual Basic для работы с Microsoft Excel 2003. Основное отличие (кроме Visual Basic 6 от VB.Net) состоит в том, что я использую метод SaveAs объекта Workbook, а не метод 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...