我正在使用XML方法为报表创建Excel电子表格,您可以在其中导出有效的Microsoft格式的XML,然后将其导出到Excel。
到目前为止,一切都按预期工作,但我对颜色有些麻烦。
我创建了一个样式,例如:
<Style ss:ID="s64" ss:Parent="s25">
<Font ss:FontName="Tahoma" x:Family="Swiss" ss:Size="14" ss:Color="#4579B9" ss:Bold="1"/>
<Interior/>
</Style>
它应该使用的颜色应该看起来像这个图像的顶部:
alt text http://img535.imageshack.us/img535/431/righty.jpg
然而,它使用的是底部的颜色。
当我生成报告时,它是使用颜色代码生成的:#4579B9,这就是我想要的,但当我打开它时,它会显示颜色为图像底部的颜色。
如果我然后保存文档,它会自动将颜色更改为#666699,这正是底部的颜色(颜色错误)。
但这只发生在字体颜色上,就好像我将任何单元格的背景颜色更改为#4579B9一样,它会正常工作。
我认为这与选择的颜色是“主题颜色”的一部分有关,而不是“标准颜色”。
这里有没有人有生成这类报告的经验,并正确应用样式?或者我错过了什么?
答案 0 :(得分:4)
我相信你使用的是Excel 2007,因为你使用的颜色和你提到的主题。以下颜色信息适用于Excel 2003,这是我使用SpreadsheetXML(XMLSS)时遇到的唯一版本。
Excel 2003仅支持有限数量的颜色。由于指定的颜色不是调色板的一部分,因此使用最接近的匹配颜色。您需要做的是指定不同的调色板或将您的颜色与其中一种默认颜色匹配。
以下是定义工作簿的调色板的示例。我将索引#1(通常是白色)的颜色减少到较浅的白色(255,253,253)。
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
<RelyOnVML/>
<AllowPNG/>
<Colors>
<Color>
<Index>1</Index>
<RGB>#FFFDFD</RGB>
</Color>
</Colors>
</OfficeDocumentSettings>