Наследование стиля XMLSS
Я работаю над созданием книг Excel в XML, посредством XMLSS, и я обнаружил, что застрял в одном конкретном месте.
Согласно документации по адресу http://msdn.microsoft.com/en-us/library/aa140066(office.10).aspx#odc_xmlss_ss:style , <ss:Style />
имеет доступное свойство, ss:Parent
, который позволяет данному стилю наследовать атрибуты ранее определенного стиля. Тем не менее, у меня есть ужасное время заставить это работать.
Я не получаю никаких ошибок при открытии книги, а атрибуты дочернего стиля применяются правильно, но ни один из атрибутов родительского стиля не переносится.
- Создание сводной таблицы из XML-файла в Excel
- openpyxl нечитаемый контент
- Лист стилей XSL больше не работает в Excel
- создать только один, а не несколько
- Экспорт XML-данных в Excel с помощью C #
Поскольку XMLSS не очень хорошо документирован за пределами документов MSDN, я прихожу к толпе StackOverflow для получения справки. Существуют ли какие-либо предостережения для использования ss:Parent
poperty в элементах <ss:Style />
?
- Запрос атрибута родительского узла xml из дочернего узла
- Прочтите файл MS Excel XML в pandas dataframe?
- Разбор файлов Excel использует Objective C
- XSD: добавление атрибутов к строго типизированным «простым» элементам
- XML-анализ Python и подсчет количества строк, затем вывод в Excel
- OpenXML Sax метод для экспорта 100K + строк в Excel быстро
- Как включить пространство в тег / элемент XML, который преобразуется XSLT в лист Excel
- Как удалить & amp; из файла XML с помощью java?
Привет user352078 (запоминающееся имя, которое есть)
На самом деле наследование стилей в SpreadsheetML (через «ss: Parent =») работает (по крайней мере, для меня), но вы, возможно, столкнулись с: – нигде не зарегистрировано, насколько я мог видеть, – проблема: если вы переопределите style (в приведенном ниже примере) вы не наследуете стили, которые уже определены. Поэтому sty_ProjektzeileStatus должен определять каждый аспект Borders-Style, хотя у меня такой же стиль для Bottom (например, LineStyle: «Dash» и т. Д.).
Поэтому, если Borders становится переопределенным в наследующем стиле, все существующие типы стилей для Borders выбрасываются и должны быть определены (что на самом деле не так уж плохо, потому что таким образом вам не нужно явно удалять существующие стили из родительского стиля при наследовании стилей ).
<Style ss:ID="sty_ProjektzeileTexte" ss:Name="Texte"> <Font ss:Bold="1" /> <NumberFormat ss:Format="Standard" /> <Borders> <Border ss:Position="Bottom" ss:LineStyle="Dash" ss:Weight="1" /> </Borders> </Style> <Style ss:ID="sty_ProjektzeileStatus" ss:Parent="sty_ProjektzeileTexte"> <!-- Overwrites original definition --> <NumberFormat ss:Format="0" /> <!-- Although only Right line is added to the original definition from the parent style, all 'sides' of the border element need to be defined, even style for Bottom that is unchanged --> <Borders> <Border ss:Position="Bottom" ss:LineStyle="Dash" ss:Weight="1" /> <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2" /> </Borders> <!-- Only fontstyle Bold is actually inherited --> </Style>
Надеюсь, это ответит на ваш вопрос. Я просто помню, как однажды возникла проблема с установкой имен (ss: Name =) в родительском и дочернем стилях, которые имели некоторые неожиданные последствия, но я не могу вспомнить, что это также привело к испорченному наследованию).
НТН
Andreas