Я использую Microsoft.Office.Interop.Excel
в VB.Net для экспорта файла .xls в виде файла .pdf. Это был единственный метод, который я мог найти, не полагаясь на стороннее программное обеспечение, которое должно быть установлено на работающем компьютере, или с использованием дорогого дополнения к Visual Studio. Этот метод требует открытия Excel и сохранения файла с помощью кода.
Моя проблема в том, что у меня есть только пробная версия Microsoft Office, поскольку я никогда не использую ее. Что ж, ограничение времени, которое я могу открыть, истекло, так как я достаточно долго запускал программу для целей отладки, и теперь я не могу продолжать разработку этого приложения. Существует ли набор для разработки для Visual Studio, который предоставляет API, который мне нужен для этой функциональности без фактической установки Office? Мне не нужен Microsoft Office, поэтому я не хочу покупать полную версию только для разработки и тестирования приложения.
Я рассмотрел некоторые параметры, такие как this , но есть очень специфическое форматирование, которое должно оставаться неизменным в .xls для преобразования в .pdf, которое, кажется, не работает, если я использую промежуточный формат.
Я также немного читал об API openOffice, но совместимо ли это с .Net? Если так, может кто-то указать мне учебник, который объясняет, как использовать API с .Net? В частности, VB, если это возможно, но я могу работать с кодом C #.
Вот пример того, что я пытаюсь сделать, если это поможет с предложениями:
Dim fileName As String = AppDomain.CurrentDomain.BaseDirectory & "LOA " & compName.Text & ".xls"
Dim xlsApp = New Microsoft.Office.Interop.Excel.Application
xlsApp.ScreenUpdating = False
Dim xlsBook As Microsoft.Office.Interop.Excel.Workbook
Dim paramExportFormat As XlFixedFormatType = XlFixedFormatType.xlTypePDF
Dim paramExportQuality As XlFixedFormatQuality = XlFixedFormatQuality.xlQualityStandard
Dim paramOpenAfterPublish As Boolean = False
Dim paramIncludeDocProps As Boolean = True
Dim paramIgnorePrintAreas As Boolean = True
Dim paramFromPage As Object = Type.Missing
Dim paramToPage As Object = Type.Missing
xlsBook = xlsApp.Workbooks.Open(fileName, UpdateLinks:=False, ReadOnly:=False)
xlsBook.ExportAsFixedFormat(paramExportFormat, AppDomain.CurrentDomain.BaseDirectory & "LOA " & compName.Text & ".pdf", paramExportQuality, paramIncludeDocProps, paramIgnorePrintAreas, paramFromPage, paramToPage, paramOpenAfterPublish)
xlsBook.Close(SaveChanges:=False)
xlsApp.Quit()