Обновить
Комментарии 25
про это написано в самом начале — во втором предложении:
С помощью неё вы сможете отказаться от работы с COM+ или редактирования OpenXML-дерева через OpenXML SDK
:)

Aspose и IndependentSoft — платные насколько мне известно, к тому же совсем не open source
А зачем мне отказываться от решения без ограничений ради решения с ограничениями? Да, решения Aspose и IndependentSoft платные, но в отличие от вашего они доступны. Никто не раскроет исходники, тем более под GPL, ради такой прикладной задачи как экспорт в DOCX. Ваш проект под текущей лицензией малополезен. И если с СОМ+ ещё понятно в чём проблема, то чем ваш продукт лучше OpenXML SDK, Aspose Words, Word.Net вы не рассказали.
> но в отличие от вашего они доступны

А чем наше не доступно?
Лицензией. GPL вообще не вариант. LGPL многие боятся. Есть фирмы где LGPL код запрещено даже читать. Мой выбор — New BSD, я не жадный и коммерческие форки меня не вгоняют в депрессию.
> LGPL многие боятся. Есть фирмы где LGPL код запрещено даже читать.

Я думаю, что подавляющее большинство всё-таки не боится :) Возможно в дальнейшем мы еще больше облегчим лицензию, хотя LGPL уже и так довольно свободная.
попробуйте на голом OpenXML SDK сгенерируйте документ хоть мало-мальски нетривиальный
Не буду пробовать, мне надо экспортировать в старые версии. Мой выбор — Aspose.
Странно, что заминусовали.
Если бы это была не обертка, а оригинальное решение, которое можно было бы использовать для, например, улучшения Open-, LibreOffice, то GPL был бы резонен.
А так мне сложно придумать, зачем нужна GPL-программа Windows-only с возможностью читать OpenXML.
А добавить возможность работы с таблицами Excel планируете?
Было бы очень полезно.
Недавно решал генерацию ворд документов по шаблону, решил через
_wDoc.Bookmarks[«название закладки»].Range.Text

Удобно и редактируешь шаблон по вкусу.

Но за библиотеку спасибо, обязательно ее попробую, если нужно будет в будущих проектах.
Делаю по другому: создается шаблон в Word, вставляются sdt теги с xpath-путями к структурированному xml. На этапе выдачи загружаю xml в шаблон и при необходимости обновляю пути, поддерживаются в том числе и шаблонные списки, и таблицы, и условные элементы при желании, плюс binding двусторонний, но при желании можно запретить изменения. Итог: не нужно писать структуру документа в коде, шаблон могут менять даже пользователи. А вот с Excel все сложнее, насколько я знаю он не поддерживает sdt.
Это работает в ООП стиле или захардкоденными строками?
Внутри шаблона явно указываются поля из xml-документа, внутри сборки только шаблон и xml на входе, готовый документ на выходе. Собирал для быстрого решения задачи (отдача отчета из базы с формированием на сервере) поэтому код особо не оформлен, могу выслать если интересно.
Скиньте посмотреть, интересно :) Можно на почту alexander.byndyu@gmail.com
Спасибо! Интересное решение, по-моему лучше, чем работа с тэгами. Мы попробуем это у себя применить и возможно переведем Foxby на этот подход.
Убрали тэги сделали SDT в ООП стиле, уже запушено в репозиторий. Спасибо за идею!
Я на Python писал программу которая извлекает данные из XLSX анкеты и исходя из них заполняет десяток DOCX и XLSX шаблонов, преобразуя при этом некоторые значения типа «сумма прописью» и т.п.
Но решал довольно примитивно и низкоуровнево) Распаковывал zip, парсил XML. В шаблонах для разметки использовал поля вроде MERGEFIELD и при заполнении искал их XPath…
Геморроя много было, но в итоге работает как часы)
И, кстати, тоже декларативно шаблон задается. Например MERGEFIELD summa_propisiu(xls_cell(D24)) — извлекает из анкеты значение ячейки D24 и печатает его числовое значение прописью…
Есть такой вот сценарий:

Есть документ, в котором есть word/excel табличка.
Самое ценное в табличке — ее оформление :) И оформление принципиально.
Нужно в эту табличку поместить данные из IEnumerable, причем эта word/excel табличка должна изменять число строк под IEnumerable.Count, сохраняя оформление на основе шаблона (высота строки, границы, цвет и подобное).

В общем-то вопросов нет, просто делюсь сценарием, который, в статье не описывается :)
А можешь это в виде тикета добавить на Google Code?
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.