2010-10-04 5 views
2

Я проверял, что возможно с помощью спецификации Office Open XML для документов. Я особенно заинтересован в том, чтобы добавить пользовательский XML-контент в документ и привязать его к элементам управления контентом. Мне было интересно, возможно ли иметь повторяющийся тип управления контентом?Повторение содержимого с помощью Office Open XML

Например, у меня есть некоторые пользовательские XML в моем файле .docx, который выглядит так:

<Work> 
    . 
    . 
    <People> 
    <Person> 
     <Name>Jane Doe</Name> 
     <EmailAddress>[email protected]</EmailAddress> 
    </Person> 
    <Person> 
     <Name>John Doe</Name> 
     <EmailAddress>[email protected]</EmailAddress> 
    </Person> 
    </People> 
</Work> 

Есть ли повторяющееся содержание управления (аналогично репитера ASP), что я мог бы использовать для создания вывода что выглядит как-то

Если типов управления нет, я бы мог обработать сам документ документа, чтобы создать список. Кто-нибудь сделал это и получил некоторые полезные указания?

ответ

2

Поскольку 0xA3 говорит, что ничего подобного не было встроено, это будет манипулировать WordprocessingML. Но вот пример извлечения данных из базы данных для создания нескольких записей: Pushing Data from a Database into a Word Document.

Кроме того, по теме привязки данных в целом, это хороший учебник для начинающих: Linking Word 2007 Content Controls to Custom XML.

0

Нет встроенного Content Control для повторного содержимого в Word 2007/2010. Следующие возможности приходят мне в голову:

  • Создайте полный контент программным путем с помощью Open XML SDK. Однако нет привязки данных.
  • Использование функции MailMerge Word для отображения нескольких похожих наборов данных.
  • Используйте InfoPath, который лучше поддерживает повторный контент
  • Используйте стороннее решение, такое как Windward Reports.

Обновление: У Word 2013 теперь есть контроль контента для повторяющихся разделов.

+0

Спасибо за указатель на наветренной Reports. Это выглядит очень полезно, хотя я думаю, что за то, что я делаю в настоящее время, я собираюсь пойти с вашей первой пулей и создать ее программно –

0

http://dev.plutext.org/svn/docx4j/trunk/docx4j/sample-docs/databinding/conventions.html предлагает соглашение об этом. Вам необходимо предварительно обработать docx для клонирования контроля содержимого n раз; в настоящее время существует код для этого с помощью макроса Word или Java (docx4j).

1

С Word 2013 есть некоторые улучшения для элементов управления контентом. Включая повторяющийся контроль содержимого. Я не проверял это.

http://msdn.microsoft.com/en-us/library/office/jj889465.aspx#WordCC_RepeatingSection

С Word 2007 и 2010, вы должны сделать некоторые extraprocessing для создания строк с управлением контентом и связать их с генерируемым запроса Xpath. Вы можете проверить следующее видео.

http://www.microsoft.com/uk/msdn/screencasts/screencast/261/Office-Open-XML-Content-Controls-and-Repeating-Data-Part-1-of-3.aspx

+0

, ссылка на видео больше не работает.знаете ли вы, где это можно найти сегодня? – JoeBrockhaus

+0

Возможно, вас заинтересуют мои сообщения в блогах http://www.docx4java.org/blog/2015/01/i-have-my-xml-now-what/ и http://www.docx4java.org/blog/ 2015/01/слово-2013-repeatingsection-контент-управления-готовые к прайм-тайм / – JasonPlutext