Динамически сгенерированный Excel Xml (через OpenXml) имеет топор: во всех его тегах - PullRequest
0 голосов
/ 13 февраля 2019

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

КогдаЯ заглянул внутрь пакета и обнаружил, что у тегов Xml есть extar x :, например, workbook.xml похож на ниже;.

<x:pivotCaches>
    <x:pivotCache cacheId=”1″ r:id=”rId4″ />
</x:pivotCaches>

Кто-нибудь знает, почему у нас есть этот дополнительный x:?Это происходит только после добавления тега pivotCaches в workbook.xml.Я использую OpenXml 2.7.1

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

x in x:pivotCaches - это Префикс пространства имен XML .

Для XML должно быть правильно сформированное пространство имен , должно быть объявление, связывающее префикс пространства имен x с URI пространства имен, например http://schemas.openxmlformats.org/spreadsheetml/2006/main.Ваш XML-фрагмент в его нынешнем виде не является правильно сформированным пространством имен, поскольку он использует необъявленный префикс пространства имен XML.

Префикс пространства имен может быть объявлен в любом месте или выше в предке его использования:

<x:pivotCaches xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
    <x:pivotCache cacheId=”1″ r:id=”rId4″ />
</x:pivotCaches>

Префикс пространства имен можно опустить, если вместо этого объявлено пространство имен XML по умолчанию:

<pivotCaches xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
    <pivotCache cacheId=”1″ r:id=”rId4″ />
</pivotCaches>

См. Также

0 голосов
/ 13 февраля 2019

Префикс x: называется Пространством имен XML .Вы также должны увидеть атрибут xmlns:x в своем XML-файле, который указывает, как разрешить схему для этого пространства имен.

...