Предоставьте пользователям возможность редактировать документы Word 97-2010 в приложении .NET - PullRequest
0 голосов
/ 21 декабря 2010

Мне было интересно, есть ли у кого-нибудь представление о каком-либо продукте / методе, чтобы дать моим конечным пользователям возможность редактировать документы Word в нашем приложении C # / .NET, избегая использования автоматизации и отдельных случаев открытия Word вне приложения.,Это возможность [план резервного копирования!], Но я бы предпочел ее не реализовывать (из-за большого объема работы и из-за того, что пользователи выходили из нашего приложения).

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

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

Мы используем Word 2003 и Word 2010. Нашидокументы начинаются как файлы .DOCX с помощью наших пользовательских процессов слияния / создания шаблонов.

Любые предложения по продуктам или другие идеи были бы хорошими.

  • Редактировать: Мы создаем документы без проблем, используя OpenXML.Забавно, работает очень хорошо.Однако в конце дня я бы предпочел, чтобы пользователи редактировали созданные документы, а также устаревшие документы (созданные как файлы .DOC) непосредственно в нашем приложении .NET.К сожалению, Microsoft отказалась от возможности встраивания через ActiveX / OLE и т. Д., И нет способа сделать это.Я ищу сторонний продукт для достижения этой цели, который должен быть практически на 100% совместим с форматами .DOC и .DOCX.

Для тех, кто спрашивает, почему?Безопасность, простота использования и т. Д. Мы храним документы в базе данных.Как только я начинаю сбрасывать файлы в файловой системе и работать с поддержкой автоматизации / макросами, ... есть много вещей, которые нужно сделать, чтобы вернуть файлы в базу данных / обновления и т. Д. Это стало особенно сложно, так как Wordне раскрывает необработанные байты [] документа, и файлы должны быть сохранены как временные файлы где-то на fs.Просто много головной боли.

Итак, самое «простое» решение - встроить Word [кажется невозможным] или использовать сторонний продукт, который поддерживает редактирование файлов .DOC / .DOCX.

Anпримером является элемент управления DevExpress XtraRichEdit - к сожалению, хотя он поддерживает множество приятных Word-подобных / совместимых функций, он работает только с файлами .DOCX ... и не на 100% полон по сравнению с Word.

Ответы [ 5 ]

2 голосов
/ 21 декабря 2010

Файловая структура документа Word огромна, для программирования даже ограниченной поддержки .doc / docx может потребоваться сотни человеко-часов.Что именно является причиной использования вашей программы для редактирования файла слова поверх самого слова?

Я не совсем уверен, каким образом Word 2003 поддерживает .docx, хотя, насколько я понимаю, был только выпуск средства просмотра слов, когда OfficeБыл выпущен 2007 год, и, конечно, прошли годы с тех пор, как это стало проблемой.

Если вы собираетесь сделать это, добавьте только поддержку файлов .doc, поскольку там больше информации, вы можете разрешить само словодля обработки разговора в файл .docx, если хотите.

1 голос
/ 21 декабря 2010

Вы не найдете сторонний продукт, который делает это. Количество усилий, необходимых для создания приложения, которое на 100% поддерживает форматы Word, не подлежит обсуждению. Не только каждая функция, но и каждая ошибка должна дублироваться. Принимая во внимание потенциальные юридические ловушки, делающие это, никто в здравом уме не потрудится попробовать. Между прочим, юридические аспекты являются одной из основных причин появления новых форматов.

Что означает, что вы должны выйти на улицу. Здесь есть два действительно хороших варианта.

Можно было бы подключиться к Office Live , чтобы дать им возможность редактировать документы Microsoft онлайн.

Другая возможность заключается в использовании Sharepoint в вашем приложении. Он имеет встроенные методы для документооборота и прекрасно интегрируется с Office.

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

1 голос
/ 21 декабря 2010

Раньше это поддерживалось через функцию под названием OLE Embedding.За последние 10 лет его поддержка исчезла из программного обеспечения и инструментов Microsoft.Примечательно, что .NET не поддерживает его вообще.«Офис» был одним из последних противников с 2007 года, и он уже довольно расстроился.Но это действительно выглядит как гонзо в издании 2010 года.Все ссылки на скачивание элемента управления DSOFramer, универсального элемента управления встраивания ActiveX, были удалены примерно в то время, когда 2010 год стал бета-версией.

Здесь нет будущего, посмотрите на VSTO, чтобы узнать о будущем.

0 голосов
/ 22 декабря 2010

Конечно, не 100% охват функций Word, но вы пробовали ASPOSE.Words.NET Всего или TXTextControl.NET ?

0 голосов
/ 21 декабря 2010

Word Automation Services и Office Web Apps (требуется SP 2010).

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