代码之家  ›  专栏  ›  技术社区  ›  Marcos Placona

带XML的Excel电子表格

  •  3
  • Marcos Placona  · 技术社区  · 15 年前

    我正在使用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,它将正常工作。

    我认为这与“主题颜色”中所选的颜色有关,而不是“标准颜色”。

    这里有没有人有过生成此类报告并正确应用样式的经验?还是我错过了什么?

    1 回复  |  直到 15 年前
        1
  •  4
  •   AMissico    15 年前

    我相信你使用Excel2007是因为你使用的颜色和你提到的主题。以下颜色信息适用于Excel2003,这是我使用电子表格XML(xmlss)的唯一经验版本。

    Excel2003只支持有限数量的颜色。由于指定的颜色不是调色板的一部分,因此使用最接近的匹配颜色。您需要做的是指定一个不同的调色板或将您的颜色与默认颜色之一匹配。

    下面是定义工作簿调色板的示例。我将索引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>