Создание документа Word с помощью C #

2

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

Я изучил использование Office Open XML, но я не нашел хороших ресурсов, которые предоставляют конкретную информацию о том, как его использовать. Кроме того, кто-то предложил использовать службы отчетов SQL, но поиск информации о том, как их использовать, ни к чему не приведет.

Какой метод, по вашему мнению, наиболее подходит для моей проблемы?

Примеры кода и ссылки на хорошие учебники были бы чрезвычайно полезными.

Теги:
ms-word
reporting-services
openxml

6 ответов

4
Лучший ответ

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

После тщательного поиска по сайту Microsoft я нашел несколько новых статей в SDK Office Open XML. Я загрузил новые инструменты и начал их просматривать.

Затем я нашел Document Reflector, который создает класс для генерации XML-кода на основе существующего Word Document (.docx). Используя мой документ шаблона ярлыка и код, сгенерированный этим инструментом, я прошел и добавил цикл, который добавляет ячейки таблицы для каждого адреса. Фактически это оказалось довольно простым и быстрым, чем использование автоматизации Word.

Итак, если вы все еще используете автоматизацию Word, ознакомьтесь с инструментами Office Open XML. Их удивительно обширный для бесплатной загрузки от Microsoft.

Office Open XML SDK 2.0 Загрузить

  • 0
    OpenXml SDK 2.0 все еще находится в CTP, и лицензирование только для целей тестирования (поддерживайте до выхода Office 14)
2

Вы можете посмотреть шоу 137 и 138 на dnrTV (www.dnrtv.com). В этом видео Бет Масси показывает, как сделать некоторые изменения и слияние почты с OpenXML. Она делает это, используя Open XML SDK и XML-литералы в VB. Он не требует сторонних компонентов. Также он не требует установки MS Office на машине.

Это видео вдохновило меня на разработку С# (и отсутствие опыта VB), чтобы сделать некоторые манипуляции с XML в отдельной dll в VB. Я вызываю эту dll из своего приложения С#.

Стоит попробовать.

2

Я использую плагин Words из Aspose.com, чтобы выполнить слияние писем (руководство по программированию).

  • 0
    Спасибо за быстрый ответ. Однако я искал бесплатное решение, поэтому мне не нужно беспокоиться о проблемах с лицензированием.
  • 1
    Aspose лицензируется для разработчика или сайта, и один тип лицензии позволяет распространять на любое количество физических сайтов (лицензия разработчика или производителя сайта).
Показать ещё 1 комментарий
1

У нас есть продукт. Предположим, что упомянутый tvanfosson. Издание, которое мы приобрели, работает с SQL Reporting Services, поэтому его можно использовать с планировщиком для создания вывода. Это действительно отличный продукт, и мы использовали его в системе, которая необходима для поддержки корейских символов в финальном документе. Он отлично работает и был под $1K с поддержкой. Неплохо.

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

0

Если вы используете службы отчетов, не можете просто переместить информацию в слово doc в таблицу базы данных и прочитать ее оттуда, выбирая слово из уравнения?

  • 0
    Это на самом деле блестящая идея!
0

Vanstee,

Если вы действительно хотите сделать это в коде, посмотрите этот пост, который я только что нашел в Google

http://kellychronicles.spaces.live.com/blog/cns!A0D71E1614E8DBF8!1364.entry

  • 1
    Это требует, чтобы вы открыли приложение Word, что на самом деле не вариант на данном этапе.
  • 0
    @Vanstee, вы можете изменить код для работы из консольного приложения и никогда не показывать Word, установив для параметра Visibility значение false. Хотите пример?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню