Использование Microsoft.Office.Interop.Excel без фактического Excel? - PullRequest
5 голосов
/ 01 мая 2011

Я использую 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()

Ответы [ 4 ]

4 голосов
/ 04 мая 2011

Ваш вопрос, как указано, подразумевает недопонимание - сборка Microsoft.Office.Interop.Excel не содержит кода обработки.По сути, это сборка метаданных, которая говорит .NET, как общаться с Excel.Бесполезно при попытке выполнить какую-либо обработку без установленного Excel.

Существует довольно много бесплатных библиотек, которые будут создавать файлы Excel и манипулировать ими - у вопроса Stackoverflow, на который вы указываете, есть некоторые, другие включеныCodePlex.Если вам необходимо выполнить расчет или рендеринг листа со специальными требованиями к форматированию, вам, вероятно, лучше всего изучить варианты самой низкой цены для получения лицензии Excel или перехода на другую архитектуру.

2 голосов
/ 26 мая 2011

Вы можете установить пакет основных сборок взаимодействия Microsoft.Вы можете найти это здесь

Но будьте осторожны.Существуют разные пакеты для разных офисных версий.

1 голос
/ 01 августа 2013

Попробуйте Codeplex . Это может помочь вам.

НКО может:

  1. создание отчета Excel без установленного пакета Microsoft Office на вашем сервере и более эффективный, чем вызов Microsoft Excel ActiveX в фоновом режиме;
  2. извлечение текста из документов Office, чтобы помочь вам реализовать функцию полнотекстовой индексации (большую часть времени эта функция используется для создания поисковых систем).
  3. извлечение изображений из документов Office
  4. создание листов Excel, содержащих формулы
1 голос
/ 04 мая 2011

Попробуйте советы по этой теме: https://stackoverflow.com/questions/769246/xls-to-pdf-conversion-inside-net - Aspose или open office

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...