复制和粘贴Excel数据时,颜色会丢失

时间:2012-07-16 21:58:58

标签: c# asp.net excel infragistics netadvantage

冒着将这个问题视为遗忘或被关闭为“太本地化”的风险,我想我会发布这个问题,因为我的老板经常抱怨它而且让我摸不着头脑。

我们使用Infragistics NetAdvantage Excel control即时创建Excel报告。有些单元格,我们添加填充颜色,如下所示:

sheet.Rows[i].Cells[0].CellFormat.FillPattern = FillPatternStyle.Solid;
sheet.Rows[i].Cells[0].CellFormat.FillPatternForegroundColor = Color.FromArgb(127, 127, 127);

这很有效,报告看起来很好:

Working Image

但是,如果我的经理选择Excel中的所有单元格,将数据复制到剪贴板,然后那些单元格粘贴到另一个Excel文件中,所有颜色都会转换为一些奇怪的3位调色板:< / p>

enter image description here

现在,每种填充颜色都是纯红色(#FF0000),纯绿色(#00FF00),纯蓝色(#0000FF)或黄色(#FFFF00)。这是任何给定颜色的全部或全部。那个深灰色的标题甚至变成了白色。

有一件有趣的事情是,如果我去Excel中手动更改其中一个单元格的填充颜色,然后复制并粘贴它,我手动设置的颜色将被完美复制,同时Infragistics生成的单元格将被抖动。

仅在Excel文件之间复制时才会发生这种情况,而不是在Excel文档中的工作表之间复制。有没有人遇到这个问题,或者从技术的角度来看,任何Excel专家都知道可能导致这种情况的原因吗?

这是Excel 2007,Infragistics Build 8.2.20082.1000。

5 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

本文http://answers.officewriter.com/workbook-colors-are-not-displayed-as-expected-in-older-versions-of-excel

对此进行了详细解释

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

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

enter image description here

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

答案 3 :(得分:0)

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

Workbook b = new Workbook(WorkbookPaletteMode.StandardPalette);

将解决问题。但是,显然你将无法使用任何完全自定义的颜色。它们将四舍五入到最接近的标准颜色,在我们的情况下完全没问题。

答案 4 :(得分:0)

好的我想我在这里和其他地方描述了同样的问题后想出了这个问题.......检查出来!首先转到您粘贴的页面并突出显示整个页面,转到打印区域和&#34;清除打印区域&#34;。然后去粘贴区域并删除细胞,即使那里没有任何东西!突出显示行(即使没有任何内容)。删除行。现在从头开始复制和粘贴,你应该能够粘贴所有原始颜色和公式!