Скрытие частей документов OpenXml программно - PullRequest
0 голосов
/ 16 ноября 2011

Можно ли программно скрывать части документа OpenXML, фактически не удаляя его?

Причина, по которой я хотел бы сделать это: это файл шаблона, динамические части заполняются с использованием databindig. И некоторые части должны быть скрыты, если нет данных поддержки. Но на самом деле не нужно удалять части из документа, поэтому документ может быть позже «обновлен» новыми данными.

Что-то вроде display: none в html / css.

1 Ответ

1 голос
/ 17 ноября 2011

Не является точным эквивалентом сокрытия содержимого в Word с использованием открытого XML-SDK. Однако есть два подхода, которые могут работать для вас:

Трюк со скрытым абзацем

Создайте стиль, назовем его HiddenParagraph. Определите его в вашем файле styles.xml следующим образом:

 <w:style w:type="paragraph" w:customStyle="1" w:styleId="HiddenParagraph">
    <w:name w:val="HiddenParagraph" />
    <w:next w:val="Normal" />
    <w:pPr>
    <w:spacing w:line="14" w:lineRule="auto" />
    </w:pPr>
    <w:rPr>
      <w:rFonts w:asciiTheme="minorHAnsi" w:eastAsiaTheme="minorEastAsia" w:hAnsiTheme="minorHAnsi" w:cstheme="minorBidi" />
      <w:sz w:val="22" />
      <w:szCs w:val="22" />
    </w:rPr>
 </w:style>

w: line = 14 делает абзац практически невидимым.

Теперь визуализируйте контент, который вы не хотите видеть, используя этот стиль абзаца.

 <w:p>
  <w:pPr>
    <w:pStyle w:val="HiddenParagraph" />
  </w:pPr>
  <w:r>
    <w:text>you should not be able to see me
  </w:r>
</w:p>

Чтобы снова отобразить содержимое, просто измените стиль абзаца на обычный или какой-нибудь другой более нормальный стиль.

Пользовательская часть XML

Храните данные, которые вы не хотите отображать в документе, в пользовательском хранилище данных xml, хотя это может не сработать в вашем конкретном сценарии

Ссылка http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2010/10/27/59361.aspx

...