【问题标题】:What does <color indexed="81"> mean?<color indexed="81"> 是什么意思?
【发布时间】:2013-01-20 13:34:05
【问题描述】:

我有一个由 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中的&lt;indexedColors&gt;集合,否则是指标准中显示的默认调色板。我的问题是这个文档不包含&lt;indexedColors&gt;元素,默认调色板只有66个条目,所以我不知道81指的是什么。还有人吗?

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

【问题讨论】:

  • 我们可以得到 Excel 工作表吗?
  • @jsn,你是什么意思?这是完整的 excel 文档,但有未记录的“81”颜色索引。那么81是什么意思呢?经过一些实验后,我注意到如果将此颜色应用于单元格 - 文本将是白色的。但如果它被应用于在评论中运行 - 文本将是黑色的。
  • 我把那句话搞砸了,只有在我无法再编辑时才注意到。我们可以得到(物理的)Excel 工作表吗?
  • 来自msdn.microsoft.com/en-us/library/office/…“Excel 尝试随机应用与参数值相对应的颜色”,用于超出有效范围时。我的猜测是索引 81 是系统颜色。也许您可以尝试更改前景/背景/其他系统颜色,看看索引 81 是否给出不同的颜色(与您所说的颜色不同)。例如,OpenXML/ECMA 规范声明索引 64 是系统前景色。但是实际的RGB值会因电脑而异吧?
  • @VincentTan,你给了一个很好的方向,但我在 Windows、Excel 或 docoumet 中找不到这 81 种颜色与任何其他颜色之间的任何依赖关系......也许你有一些想法我到底是什么颜色必须改变吗?

标签: colors standards openxml spreadsheet ecma


【解决方案1】:

NECRO 回答: 来自 Vincent Tan 的 SpreadsheetOpenXmlFromScratch:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      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 的帖子,询问他为什么使用该值。我猜这是他的一个错误,熟悉一个单独的并且可能与 JAVA 相关的颜色索引。

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

      干杯

      【讨论】:

      • 虽然很难相信所有这些谷歌结果都来自一个错误。也许尝试将文档另存为 xml 并查看它是否显示为 indexed="81" 或者 excel 是否更改了值。
      猜你喜欢
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      • 2017-06-11
      • 2018-03-05
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多