Создание документа Word из приложения .net - PullRequest
2 голосов
/ 10 января 2011

У меня есть веб-приложение .net, написанное на C #, которое используется только в интрасети.

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

Я попытался сделать это с помощью Word Automation и, хотя он работал на моем компьютере разработчика, он не работает на сервере, когда другие пользователи пытаются его использовать.

Итак ... как создать документ Word на лету, сохранить его и использовать в качестве вложения электронной почты?Я искал, и люди говорят: «использовать open xml» ... но (помимо того, что я не знаю, как это сделать), это позволило бы мне создать и сохранить документ Word, который смогут открывать люди, использующиестарые копии Word (скажем, в Word 97).

И я продолжаю читать слова «Сервер Sharepoint», но, опять же, понятия не имею, что / как это может соответствовать веб-приложению .net.

Может кто-нибудь указать мне правильное направление, пожалуйста?

Ответы [ 5 ]

3 голосов
/ 10 января 2011

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

Только потому, что вы пометили свой вопрос с помощью Sharepoint Iне уверен, используете ли вы Sharepoint - если да, то есть даже пример кода о Генерация документов из SharePoint с использованием Open XML Content Controls напрямую от Microsoft.

1 голос
/ 10 января 2011

Рассматривали ли вы использование RTF?RTF-файлы - это просто текст, так что вы можете использовать обычный .Net-файл ввода-вывода для чтения в файле, изменить интересующий вас бит, а затем снова записать его.RTF могут быть прочитаны версиями Word начиная с 97 (и, возможно, более старыми версиями).Недостатком является необходимость внесения каких-либо сложных и т. Д. Изменений в документ, что может быть сложно, если вы просто обрабатываете RTF как текст.

1 голос
/ 10 января 2011

Наиболее вероятная причина, по которой код работал на вашей машине разработки, но не на сервере, заключается в том, что на вашей машине разработки, вероятно, установлены первичные сборки взаимодействия Office / Word, но вы не говорите, установлены они на сервере или нет , Я предполагаю, что они не.

Если ваши пользователи используют Microsoft Office XP (2002) или Office 2003 И с установленным пакетом обеспечения совместимости Microsoft Office , то лучше всего использовать Open XML SDK для создания файла .docx на лету, который пользователи смогут открыть, установив пакет совместимости. После того, как ваши пользователи открыли документ, они могут сохранить его в обычном формате .doc.

Если ваша база пользователей включает пользователей Office 2000 или более ранней версии, вам не повезло, поскольку для этих версий Office нет пакета совместимости.

Вы не сможете сгенерировать формат .doc на веб-сервере без установки сборок Office, и, как отмечали другие, Microsoft настоятельно не рекомендует это делать.

0 голосов
/ 10 января 2011

Никогда не используйте Office Automation из службы. Office Automation была разработана для автоматизации приложений Office desktop . Предполагается наличие пользовательского интерфейса.

Это также предполагает однопоточность. Сервер (особенно веб-сервер любого типа) будет работать в нескольких потоках, а код автоматизации Office просто не справляется с этим.

Кроме того, вы должны иметь действующую лицензию Office для каждого конечного пользователя, который использует код, вызывающий Office Automation.

0 голосов
/ 10 января 2011

Другие прокомментировали, почему автоматизация слова, вероятно, не работает и почему ее нет, нет, в любом случае.

OpenXML хорош, но поддерживает только новые форматы файлов.для поддержки старых форматов файлов .doc (Word97 и т. д.), вам нужно будет рассмотреть другой компонент, и, возможно, коммерческий, такой как (без подключения) Aspose Words

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