Повторение содержимого с помощью Office Open XML - PullRequest
2 голосов
/ 05 октября 2010

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

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

<Work>
  .
  .
  <People>
    <Person>
      <Name>Jane Doe</Name>
      <EmailAddress>jane@abc.com</EmailAddress>
    </Person>
    <Person>
      <Name>John Doe</Name>
      <EmailAddress>john@xyz.com</EmailAddress>
    </Person>
  </People>
</Work>

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

  • Джейн Доу (jane@abc.com)
  • Джон Доу (john@xyz.com)

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

Ответы [ 4 ]

3 голосов
/ 05 октября 2010

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

Кроме того, в отношении привязки данных в целом, здесьхорошее начальное руководство: Связывание элементов управления контентом Word 2007 с пользовательским XML .

2 голосов
/ 19 декабря 2013

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

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

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

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

0 голосов
/ 06 ноября 2010

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

0 голосов
/ 05 октября 2010

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

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

Обновление: В Word 2013 теперь есть элемент управления содержимым для повторяющихся разделов.

...