MS Word Mailmerge, как функциональность, позволяющая экспортировать в документ Word из веб-приложения ASP.Net - PullRequest
2 голосов
/ 05 июля 2010

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

Dear @@Title @@Lastname

Затем они могут получить запись и выполнить экспорт в документ Word.Это позволит им выбрать шаблон.Они могут выбрать шаблон и затем нажать «Продолжить».Затем я получу шаблон и заменю @@Title на поле заголовка в базе данных для выбранной записи.Я не уверен, с чего начать или какие компоненты мне нужно для этого.

Из моего первоначального исследования кажется, что я могу сделать это с помощью нового открытого стандарта XML для Office 2007. Поэтому, возможно, мне следует прочитать шаблон и сохранить все содержимое в таблице базы данных где-нибудь.Затем, когда пользователь хочет экспортировать, я снова получаю содержимое, а затем выполняю поиск и замену заполнителей @@ и правильно связываю их.Затем снова сохраните документ в выходной поток, после чего в браузере откроется диалоговое окно сохранения.

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

Это хороший подход?На какие инструменты я должен смотреть?Любые другие предложения?

Ответы [ 2 ]

3 голосов
/ 05 июля 2010

Это похоже на подход, который мы использовали для вставки данных в текстовые документы, а затем их возврата пользователю.Мы открыли файл .docx (это zip-файл, который легко извлечь), извлекли документ (в папке word, называемой document.xml), сделали замену, а затем поместили документ обратно в файл .docx и вернули его пользователю.,

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

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

Мы использовали dotnetzip для открытия файлов .docx.

Мы также собрали несколько документов в один большой документ, чтобы сэкономить на количестве скачиваний.Если я помню, мы использовали open xml toolkit для этого слияния.На сайте также есть масса другой информации, которая может быть полезна.

1 голос
/ 05 июля 2010

Ознакомьтесь с Скоттом Гатрисом в блоге о новом движке представления кода под названием "Razor", который вскоре появится в Microsoft.В комментариях говорится о возможности его использования в сценариях слияния почты, о которых вы говорили в представлениях ASP.NET MVC.

...