XMLSS样式inheritance

我正在用XMLSS创buildXML工作簿,我发现自己被困在一个特定的地方。

根据http://msdn.microsoft.com/en-us/library/aa140066(office.10).aspx#odc_xmlss_ss:style中的文档, <ss:Style />标记有一个可用的属性ss:Parent ,它允许给定的样式inheritance以前定义的样式的属性。 但是,我正在经历一段糟糕的时光。

当我打开工作簿时,我不会收到任何错误,并且正确应用了子样式的属性,但父类样式中的任何属性都不会被携带。

由于XMLSS在MSDN文档之外没有很好的logging,所以我来到StackOverflow的人群寻求帮助。 在<ss:Style />元素中使用ss:Parent属性是否有任何注意事项?

嗨user352078(吸引人的名字是)

实际上,SpreadsheetML中的样式inheritance(通过“ss:Parent =”)确实有效(至less它对我有用),但是您可能遇到了 – 无处不在的文档,就我所见 – 问题:如果重新定义样式元素 (在下面的例子中),你不会inheritance已经定义的样式。 所以sty_ProjektzeileStatus必须定义边界风格的每一个方面,尽pipe我有相同的底部样式(即LineStyle:“Dash”等)。

因此,如果边界被重新定义为inheritance样式,则边框的所有现有样式定义都被抛出并且必须被定义(实际上不是太糟糕,因为这样您不必在inheritance样式中显式地从父样式中删除现有样式)。

 <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:名称=)在父母和孩子的风格,有一些意想不到的后果,但我不记得是否也导致被宠坏的inheritance)。

HTH

安德烈亚斯