2010-03-04 135 views
3

我使用XML方法创建Excel电子表格,您可以在其中导出有效的Microsoft格式的XML,然后将其导出到Excel。使用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

建议将xml更改为xmlss。 – AMissico 2010-03-10 23:28:16

回答

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> 
+0

请解释反对票。这是一个被接受的答案,是这个问题的唯一答案。因此,提供评论将有所帮助。 – AMissico 2010-03-17 04:45:55