Гибкая настройка - создание текстового документа с использованием C # - PullRequest
0 голосов
/ 14 января 2012

Проблема - Создать документ Word из информации, полученной из базы данных.

Мое решение - Создайте шаблон документа Word, добавьте поля / теги в местах, где необходимо вставить значения. Шаблон также потребует таблиц и диаграмм. Используя рефлектор документов, который поставляется с open office xml sdk, отразите шаблон документа, извлеките раздел w: document и перенесите его на C #. Остальная логика вращается просто вокруг поиска полей / тегов, их замены и т. Д. Очень простой подход, но не очень гибкий!

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

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

Каков наилучший подход? Буду очень признателен за ваш вклад в то, что является лучшим и наиболее гибким способом создания текстовых документов с использованием C #.

Ответы [ 6 ]

1 голос
/ 16 января 2012

Здесь - образец для воспроизведения шаблона документа Word с C #

1 голос
/ 16 января 2012

Конечно, можно сгенерировать содержимое документа Office, используя T4 или Razor, а затем упаковать его. TestScribe powertool для Visual Studio Test Manager делает то же самое с T4. На этой странице http://visualstudiogallery.msdn.microsoft.com/e79e4a0f-f670-47c2-9b8a-3b6f664bf4ae от Sally Cavanagh есть нить, в которой предлагается способ взглянуть на используемые им шаблоны T4, которые могут помочь вам начать работу.

1 голос
/ 14 января 2012

На самом деле я работаю над проектом, в котором бизнес-пользователи разрабатывают шаблон слов с полями слияния, и мы заполняем значения с помощью стороннего программного пакета Aspose Words.http://www.aspose.com/categories/.net-components/aspose.words-for-.net/default.aspx

Программное обеспечение включает в себя библиотеку для объединения данных из таблиц данных в поля слияния в документе Word.

Я также написал настраиваемое добавление панели задач для слова, которое извлекает представления данных избазы данных и перечисляет поля в интерфейсе перетаскивания, который имитирует интерфейс написания отчетов на кристалле или sql.

Возможно, было бы проще использовать отчеты на кристалле или sql, хотя ...

0 голосов
/ 06 февраля 2012

Выезд JODReports или Докмоз .Они основаны на Java, но некоторые шаблонные функции и параметры вывода могут быть идеальными.Вы можете вызывать интерфейсы командной строки, если они не имеют чего-то лучшего для доступа из C #.

0 голосов
/ 17 января 2012

Взгляните на Templater .Отказ от ответственности: я автор.

0 голосов
/ 17 января 2012

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

Панель задач сопоставления XML для Word 2007/2010 - это инструмент разработки.

Чтобы создать экземпляр документа, просто прикрепите файл данных XML.

Если полученные документы будут открыты в Word, это все, что требуется: Word свяжет сами данные. Если приложение-потребитель не Word, возможно, вы захотите разрешить привязки самостоятельно (например, с помощью Open XML SDK).

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

...