【问题标题】:When copying and pasting Excel data, colors are lost复制粘贴 Excel 数据时,颜色丢失
【发布时间】: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


【解决方案1】:

这已在 NetAdvantage 2012 第 1 卷中得到解决,其中对 excel 引擎使用的颜色模型进行了更改。 Mike 在Infragistics forums 上的回复也提到了这一点。

解决此问题的最佳选择是使用 NetAdvantage 2012 第 1 卷中的 excel 引擎。

【讨论】:

  • 谢谢!不幸的是,我们目前没有升级的预算,但很高兴知道如果我们这样做,问题就会消失。
【解决方案2】:

所以我遇到了同样的问题,无法弄清楚为什么复制的格式不会延续到另一个工作表中。所以,没有官方的“修复”,但是,我意识到它并没有延续,因为我在一个完全独立的 Excel 文档中。本质上,您必须在同一个 Excel 表中复制和粘贴文档。因此,当您打开要复制的项目时,请从您的复制表中打开您的其他 Excel 表(文件、打开)。粘贴后,它将保存您的所有格式。希望这会有所帮助!

【讨论】:

    【解决方案3】:

    不同的版本会呈现不同的颜色,这似乎就是你所看到的

    这在这篇文章http://answers.officewriter.com/workbook-colors-are-not-displayed-as-expected-in-older-versions-of-excel中有很好的解释

    有一个用于创建自定义调色板的工具,它应该比创建自己的调色板更容易为您解决这个问题。

    http://excelcampus.com/tools/color-palette-conversion

    Excel 保存首选项允许您更改或保留使用的颜色

    【讨论】:

    • 那么解决方法是什么?在复制和粘贴之前,我的经理是否在 Excel 文件上运行了一些工具?
    • 链接确实可以很好地解释它,但我会尝试写一个摘要并编辑这个答案以包含它。
    • 链接似乎与 Excel 版本之间的兼容性有关。我们只使用 Excel 2007。
    • 如果是这种情况,那么这可能不是原因,但它似乎可以解释您看到的行为。我会试验性地下载调色板转换工具,看看它是否确实修复了事物的显示方式。或者,可能会为导致此问题的颜色设置替换。
    • 我用这个工具搞砸了一段时间,但它似乎没有做任何事情。我认为这只是 Infragistics 控件的某种错误。
    【解决方案4】:

    我还为那些不想(或负担不起)升级的人找到了解决方案。像这样简单地创建工作簿:

    Workbook b = new Workbook(WorkbookPaletteMode.StandardPalette);
    

    将解决问题。但是,显然您将无法使用任何完全自定义的颜色。它们将四舍五入到最接近的标准颜色,这在我们的例子中非常好。

    【讨论】:

      【解决方案5】:

      好的,我想在遇到此处和其他地方描述的相同问题后,我已经解决了这个问题......看看这个!首先转到您粘贴到的页面并突出显示整个页面,然后转到打印区域并“清除打印区域”。然后去粘贴区域删除单元格,即使那里什么都没有!突出显示行(即使那里什么都没有)。删除行。现在从头开始复制和粘贴,您应该能够粘贴所有原始颜色和公式!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多