我有一个由Excel 2007创建的文档:
<fileVersion appName="xl" lastEdited="4" lowestEdited="4" rupBuild="4506" codeName="{B7FE6334-C1A2-E50D-BD3D-5F4D41BBC2E3}"/>..。它在xl/styles.xml的字体定义中包含以下颜色
<color indexed="81"/>我从ECMA标准中了解到,如果有这样的集合,这个颜色索引是指xl/styles.xml中的<indexedColors>集合,否则它是指标准中显示的默认调色板。我的问题是,这个文档不包含<indexedColors>元素,并且默认的调色板只有66个条目,所以我不知道81指的是什么。还有谁知道吗?
有趣的是,谷歌搜索color indexed="81"会返回一些包含相同内容的示例OpenXML片段,但却没有任何解释。
发布于 2013-02-14 04:33:21
MSDN Documentation将OpenXML中类Color的indexed属性指定为:
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 code,从一个不相关的颜色索引定义一个具有81U的Color()实例。
如果你需要找出原因,我会在MSDN上创建一个帐户,并回复Jack9999的帖子,询问他为什么使用这个值。我猜这是他的一个bug,因为他熟悉一个单独的可能与JAVA相关的颜色索引。
Excel--不识别它--只是使用它们默认的注释颜色值。
干杯
发布于 2017-08-26 01:45:19
索引0x51是系统工具提示文本颜色。(即::GetSysColor(COLOR_INFOTEXT) )。
发布于 2017-09-29 04:21:39
NECRO回答:来自文森特·陈的SpreadsheetOpenXmlFromScratch
对于颜色,如果你使用的是DocumentFormat.OpenXml.Color类,有3种方法可以设置颜色值:
Color类有一个名为Auto的属性。我没有找到它的用处,你可以忽略它。如果您在任何情况下都不对Excel进行设置,Excel将不会因错误而阻塞…
索引颜色是为了向后兼容,所以我不打算教你怎么做。基本上,它是存储在电子表格样式表中的颜色调色板的索引值。我们将在下一章处理Stylesheet类。您可以自己探索IndexedColors类,它是Colors类的子类,而Colors类又是Stylesheet的子类。
https://stackoverflow.com/questions/14710674
复制相似问题