5

我有一个由 Excel 2007 创建的文档:

<fileVersion appName="xl" lastEdited="4" lowestEdited="4" rupBuild="4506" codeName="{B7FE6334-C1A2-E50D-BD3D-5F4D41BBC2E3}"/>

...在字体定义中包含以下颜色xl/styles.xml

<color indexed="81"/>

我从 ECMA 标准中了解到<indexedColors>xl/styles.xml如果有这样的集合,这个颜色索引是指其中的集合,否则它是指标准中显示的默认调色板。我的问题是这个文档不包含任何<indexedColors>元素,默认调色板只有66个条目,所以我不知道81指的是什么。还有人吗?

有趣的是,谷歌搜索color indexed="81"返回了一些包含相同内容的示例 OpenXML 片段,但可惜没有解释。

4

3 回答 3

0

MSDN 文档将OpenXMLindexed中类的属性指定为:Color

Indexed color value. Only used for backwards compatibility. References a color in indexedColors.
The possible values for this attribute are defined by the W3C XML Schema unsignedInt datatype.

它是更大的DocumentFormat.OpenXml.Spreadsheet命名空间的一部分。

您描述的文件是通过包含 81 值的源代码构建的。它可能看起来像这个Java 代码,从一个不相关的颜色索引中定义了一个带有 81U 的 Color() 实例。

如果您需要找出原因,我会在 MSDN 上创建一个帐户并回复 Jack9999 的帖子,询问他为什么使用该值。我猜这是他的一个错误,熟悉一个单独的并且可能与 JAVA 相关的颜色索引。

Excel - 无法识别它 - 只是使用它们的默认注释颜色值。

干杯

于 2013-02-13T20:33:21.260 回答
0

索引 0x51 是系统工具提示文本颜色。(即 ::GetSysColor(COLOR_INFOTEXT) )。

于 2017-08-25T17:45:18.960 回答
0

NECRO 回答:来自 Vincent Tan 的SpreadsheetOpenXmlFromScratch

对于颜色,如果您正在处理 DocumentFormat.OpenXml.Color 类,则有 3 种设置颜色值的方法:

  • 索引颜色
  • RGB 颜色
  • 主题色

Color 类有一个名为 Auto 的属性。我没有找到它的用途,您可能可以忽略它。如果您在任何情况下都不设置,Excel 不会因错误而窒息……</p>

索引颜色是为了向后兼容,所以我不会教你怎么做。基本上,它是存储在电子表格样式表中的调色板的索引值。我们将在下一章处理 Stylesheet 类。您可以自行探索 IndexedColors 类,它是 Colors 类的子类,而 Colors 类又是 Stylesheet 的子类。

于 2017-09-28T20:21:38.877 回答