Как создавать собственные предложения с OpenXML

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

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

У меня есть абзац в документе

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

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

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

Спасибо


person Breach    schedule 25.10.2011    source источник


Ответы (2)


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

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

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

person Lukasz M    schedule 26.10.2011
comment
Это именно то, что я искал. Большое тебе спасибо!! - person Breach; 26.10.2011

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

person user1014846    schedule 26.10.2011