2009-05-31 7 views
2

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

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

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

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

ответ

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 Download

+0

OpenXML SDK 2.0 по-прежнему находится в CTP, и лицензирование предназначено только для тестирования (поддержка до выхода Office 14) – foson

2

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

+0

Благодарим за быстрый ответ. Однако я искал бесплатное решение, поэтому мне не нужно беспокоиться о проблемах с лицензированием. – 2009-05-31 16:53:47

+1

Аспект лицензирован для каждого разработчика или сайта, а один тип лицензии позволяет распространять любое количество физических сайтов (разработчик или лицензия OEM-производителя сайта). – tvanfosson

+0

Этот аспект нашего приложения не очень важен, чтобы оправдать оплату обширного плагина. Знаете ли вы о каких-либо бесплатных альтернативах? – 2009-05-31 17:07:18

0

Vanstee,

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

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

+1

Для этого нужно открыть приложение Word, которое на данный момент не является вариантом. – 2009-05-31 16:51:19

+0

@ Vanstee, вы можете изменить код для работы из консольного приложения и никогда не показывать Word, установив его видимость в false. Вы хотите пример? – Chris

+0

Показание Word на самом деле не проблема. Чтобы получить доступ к более новым версиям Word из веб-приложения, вы должны предоставить ему некоторые разрешения высокого уровня. Наш администратор сервера отказывается это сделать, и, прочитав об этом, я не обвиняю его. В любом случае спасибо. – 2009-05-31 17:01:07

1

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

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

2

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

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

Постарайтесь.

0

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

+0

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