Мое приложение Windows Forms использует Novacode DocX для написания документа из шаблона. Часть проекта Novacode работает отлично, и файл сохраняется. Проблема в том, что когда я загружаю документ, поля (Table Of Contents) не обновляются, когда часть Novacode добавляет заголовки и тому подобное.
Я мог и сделал, написать макрос для обновления полей при открытии. Это решит проблему, но не у всех, кто будет использовать мое приложение, будет этот макрос. Я не могу сохранить файл как файл .docm с прикрепленным макросом по разным причинам (предположим, что файл должен быть «.docx»).
Я обнаружил, что сборка Microsoft.office.interop.Word позволяет мне вызывать "Fields.Update". Насколько я понимаю, это поможет, но я не могу заблокировать пользователей, у которых не установлено Word, от запуска моего приложения. Насколько я понимаю, если я «использую Microsoft.Office.Interop.Word» или имею его в своих справочниках, приложение не будет запускаться, если кто-то не знает об этом.
Итак, у меня есть код, который проверяет, установлено ли слово. Если я запустил это, и он был установлен, могу ли я использовать "Поздно Привязка "для запуска кода взаимодействия? На другие связанные вопросы есть ответы, которые указывают на "NetOffice" как на способ запуска взаимодействия без проверки, установлено ли слово.
Я стараюсь сделать это как можно более полным в своем исследовании. Мой вопрос очень похож на этот: «как мне легко проверить случай, когда мое приложение C # не может найти внешнюю сборку? а> ". Я надеюсь, что эта проблема скоро будет решена для всех, но я не уверен, что это так.
Боковое примечание: если кто-то знает способ обновить поля или даже существующее оглавление текстового документа, который сохранен в формате ".docx" без установленного слова, это было бы здорово знать, и это обошло бы все мои проблема. Хотя все же хотелось бы узнать ответ на вопрос о взаимодействии.
Также это мой первый реальный вопрос по StackOverflow. Если у вас есть теги, которые можно предложить, сделайте это вместе со своим ответом. Если у вас есть отзывы о том, как я задаю свой вопрос, я тоже приму его, но, пожалуйста, не закрывайте / не удаляйте вопрос без ответов. Я связался с похожими вопросами, но на эти вопросы давно не было ответов. Считаю, что все сделал по правилам.
new Word.Application()
завершится ошибкой. Вы можете это уловить. - person Hans Passant   schedule 30.07.2015