Как создавать собственные предложения с OpenXML - PullRequest
0 голосов
/ 25 октября 2011

Хотелось бы узнать, есть ли способ «поиграть» с предложениями в .docx.

Вот что мне нужно сделать:

У меня есть параграф в документе

пример моего абзаца: Это абзац, который мне нужно отформатировать на основе некоторых условий , и я не могу понять, как это сделать с помощью openxml sdk. конец образца.

Итак, исходя из условия, которое я оцениваю в c #, я хотел бы добавить / удалить текст. Другое дело, что вы должны знать, что я бы хотел, чтобы владелец продукта изменил текст документа.

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

Спасибо

Ответы [ 2 ]

1 голос
/ 26 октября 2011

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

В своем коде приложения c # вы можете легко найти элемент управления контентом по его тегу.Найдя его, вы можете сохранить его родительский узел, удалить элемент управления содержимым и вставить текст, который вы хотите использовать в качестве дочернего элемента абзаца для родительского узла, сохраненного ранее.

Элементы управления содержимым можно добавить с помощью вкладки «Разработчик».Если вы не видите его, вы можете использовать шаги, описанные здесь, чтобы показать это: http://msdn.microsoft.com/en-us/library/bb608625.aspx.

0 голосов
/ 26 октября 2011

Есть некоторые сложности, связанные с заменой текста, потому что текст может быть разбит на несколько прогонов.Если вы хотите, чтобы ваш владелец мог редактировать документ, это проблема, которую вы должны решить.К счастью, есть пример кода, который вы можете использовать как часть PowerTools для Open XML .PowerTools были написаны как командлеты для PowerShell, но вы можете взять основной код C # для своих собственных программ.Модуль TextReplacer.cs должен дать вам хорошую отправную точку.Вам понадобятся некоторые другие модули, от которых он зависит, например, PtOpenXmlDocument.cs, PtOpenXmlUtil.cs и PtUtil.cs.Я надеюсь, что это помогает.

...