Альтернатива Office Interop для генерации документов - PullRequest
6 голосов
/ 24 июня 2009

В настоящее время мы используем офисное взаимодействие для создания документов из шаблонов в Office 2003 (Word, Excel и PowerPoint). Похоже, что это довольно неодобрительно (см. office-interop-with-64bit-windows-in-asp-net ), и хотя все работает нормально, я был бы счастлив с поддерживаемым решением.

Какой нехакерский способ сделать это? Требования

  1. Только для Office 2003. (Пакет совместимости Office xml / office 2007 не разрешен)
  2. Должен запускать серверную часть из ASP.NET
  3. Должен иметь возможность создавать документы Word, Excel и Powerpoint из предоставленных пользователем шаблонов .dot, .xlt и .pot
  4. Должен иметь возможность дополнительно настраивать документы, заменяя определенный текст в определенных точках, например, имена, адреса и т. д.
  5. Бесплатно или очень низкая стоимость. Я не смогу поднять заказ на покупку, чтобы заменить работающую систему на том основании, что четыре человека на каком-то сайте считали это грязным хаком;)

Я не уверен, что есть лучший способ. Есть ли?

Ответы [ 9 ]

4 голосов
/ 08 сентября 2009

Я только что опубликовал это в качестве ответа на другой вопрос об автоматизации Office, но я думаю, что он также является подходящим ответом на этот вопрос (особенно если вы ищете бесплатное или дешевое решение).

У меня не было никаких проблем (низкая производительность, зависание процессов, сбой процессов и т. Д.) При использовании Microsoft Excel, Word и PowerPoint через взаимодействие в веб-службе для печати документов Office в формате PDF. Я также столкнулся с проблемами, которые, как я подозреваю, вызваны невидимыми диалоговыми окнами (возможно, файл поврежден, установлен только для чтения, файл защищен паролем или что-то в этом роде).

Я знаю, что есть инструментов , которые не используют Office, но они очень дороги. Моим решением было переключиться на автоматизацию OpenOffice. OpenOffice кажется намного более стабильным, и я оставил процессы зависания и тому подобное позади.

Итак, хотя я предполагаю, что говорю «не автоматизируйте Microsoft Office», я не предлагаю полностью отказаться от автоматизации; просто у меня был гораздо больший успех в автоматизации OpenOffice, чем в Microsoft Office.

1 голос
/ 18 февраля 2011

Наветренные отчеты делает именно то, что вы хотите (отказ от ответственности, я технический директор в Наветренном). С Windward вы создаете свои документы в Word, Excel или PowerPoint, а затем наш движок объединяет этот шаблон с данными для создания окончательного документа. Движок доступен на Java и .NET и НЕ использует Office на сервере, поэтому он очень быстрый и не имеет проблем, возникающих при взаимодействии.

1 голос
/ 16 сентября 2009

Взгляните на http://npoi.codeplex.com/ Я использую его для создания документов Excel. поддерживает ppt и word.

1 голос
/ 24 июня 2009

Aspose имеет ряд компонентов в .NET и Java для создания документов Word, Excel и Powerpoint

0 голосов
/ 25 июня 2009

Посмотрите на OWC (офисные веб-компоненты), которые были разработаны для того, что вы хотите сделать!

Я не знаю, могут ли они работать с шаблонами, так как я давно их использовал, но мы использовали для создания электронных таблиц на лету, а затем двоичные записи их в поток ответов для отображения в браузере.

Я не уверен, будут ли они полностью соответствовать вашим требованиям, но стоит хотя бы начать с начала.

0 голосов
/ 25 июня 2009

Один из способов сделать это, но не с помощью файлов шаблонов, - создать шаблон документа и сохранить его как документ Word, Excel или PPT, но в формате, где документ остается в удобочитаемом тексте. Так что для Word и Excel сохраните как MHT.

Затем вы можете прочитать в шаблоне как строку и обработать ее с помощью старых добрых функций манипуляции со строками (заменить текст-заполнитель, добавить строки, что вам нужно), затем сохранить строку как .doc, .xls или Файл .ppt (который когда-либо создавал его), и он должен открываться обратно как документ в этом приложении со всеми вашими форматами без изменений.

Один совет, вы должны проверить свой шаблон в текстовом редакторе после того, как сохраните его в Word. Word будет без разбора добавлять разрывы строк, поэтому он может разрывать строки для ваших заполнителей или помещать в них другое форматирование, которое вам, возможно, придется очистить.

0 голосов
/ 24 июня 2009

SpreadsheetGear for .NET может обрабатывать создание файлов Excel. Мы ориентируемся на электронные таблицы, поэтому у нас нет генерации Word или PowerPoint.

Вы можете посмотреть образцы ASP.NET здесь и загрузить бесплатную пробную версию здесь .

Отказ от ответственности: я владею SpreadsheetGear LLC

0 голосов
/ 24 июня 2009

Вам следует ознакомиться с продукцией, доступной с Aspose . Существует ряд различных компонентов формата файлов, которые позволяют создавать документы PDF и Microsoft Office и манипулировать ими без необходимости установки Office на сервере:

Компоненты формата файла (Aspose)

Software Artisans имеет несколько похожих компонентов, которые могут читать и писать документы Word и Excel:

Программное обеспечение Ремесленники OfficeWriter

0 голосов
/ 24 июня 2009

Если у вас есть SQL Server, вы можете посмотреть на SQL Server Reporting Services

...