【发布时间】:2012-07-16 21:58:58
【问题描述】:
冒着让这个问题被否决或因“过于本地化”而被关闭的风险,我想我会发布这个问题,因为我的老板经常抱怨它,这让我摸不着头脑。
我们使用Infragistics NetAdvantageExcel control 即时创建 Excel 报告。一些单元格,我们像这样添加填充颜色:
sheet.Rows[i].Cells[0].CellFormat.FillPattern = FillPatternStyle.Solid;
sheet.Rows[i].Cells[0].CellFormat.FillPatternForegroundColor = Color.FromArgb(127, 127, 127);
这很好用,报告出来的效果很好:
但是,如果我的经理选择 Excel 中的所有单元格,将数据复制到剪贴板,然后将这些单元格 粘贴 到另一个 Excel 文件中,所有颜色都将转换为一些奇怪的 3 位调色板:
现在,每种填充颜色都是纯红色 (#FF0000)、纯绿色 (#00FF00)、纯蓝色 (#0000FF) 或黄色 (#FFFF00)。它是任何给定颜色的全部或全部。那个深灰色的标题甚至变成了全白。
一件有趣的事情是,如果我在 Excel 中手动更改其中一个单元格的填充颜色,然后复制并粘贴,我手动设置的颜色会被完美复制,而 Infragistics 生成的单元格会抖动。
这仅在 Excel 文件之间复制时发生,而不是在 Excel 文档内的工作表之间复制。有没有人遇到过这个问题,或者任何 Excel 专家从技术角度知道什么可能导致这个问题?
这是 Excel 2007,Infragistics Build 8.2.20082.1000。
【问题讨论】:
-
当我在 Excel 中通过宏创建颜色时,我做了噩梦。我个人的地狱是当我保存它们并将它们发送给另一个人时,它们在加载它们时会显示为不同的颜色。我没有答案,但我怀疑 Excel 与您的第 3 方加载项一样多。我已经有一段时间没有这样做了,但我似乎记得使用 vb 常量而不是 RGB 颜色更成功。
-
@PerryTew - 是的,使用
Color.Wheat代替Color.FromArgb()没有区别。我不希望它,除非 Excel 碰巧使用与 .NET Framework 相同的颜色常量。我敢打赌,所有内容都会在生成的文件中转换为 RGB,因为 Infragistics 控件无法知道您是否在代码中使用了颜色常量或 RGB 值。 -
如果您手动设置颜色而不是使用 VBA 代码,是否也会发生这种情况?
-
你玩过保存偏好下的颜色按钮吗?它似乎能够为以前的版本进行颜色替换。可能你可以尝试改变那里的东西,看看你是否有不同的结果。它还允许从似乎是文件位置的位置复制颜色,因此您可以更改此行为
-
它实际上是说保留工作簿的视觉外观并允许加载调色板
标签: c# asp.net excel infragistics netadvantage