我有一个由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片段,但不能解释。
答案 0 :(得分:0)
MSDN Documentation在OpenXML中指定类indexed
的{{1}}属性:
Color
它是较大的DocumentFormat.OpenXml.Spreadsheet命名空间的一部分。
您所描述的文件是通过包含81值的源代码构建的。它可能看起来像这个Java code,用不相关的颜色索引定义一个81U的Color()实例。
如果您需要找出原因,我会在MSDN上创建一个帐户并回复Jack9999的帖子,询问他为何使用该值。我猜这是他的一个错误,熟悉一个单独的,可能与JAVA相关的颜色索引。
Excel - 无法识别它 - 只是使用它们的默认注释颜色值。
干杯
答案 1 :(得分:0)
索引0x51是系统工具提示文本颜色。 (即:: GetSysColor(COLOR_INFOTEXT))。
答案 2 :(得分:0)
NECRO回答: 来自Vincent Tan的 SpreadsheetOpenXmlFromScratch :
对于颜色,如果您正在处理DocumentFormat.OpenXml.Color类, 有三种设置颜色值的方法:
- 索引颜色
- RGB颜色
- 主题色
有一个名为Auto of the Color类的属性。我没有找到它的用途,你可以忽略它。如果您在任何情况下都没有设置它,Excel将不会阻止错误...
索引颜色是为了向后兼容,所以我不会教你如何。基本上它是存储在电子表格样式表中的颜色调色板的索引值。我们将在下一章讨论Stylesheet类。您可以自己探索IndexedColors类,它是Colors类的子类,而该类又是样式表的子类。