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

如果把这个问题归咎于“太本土化”这个问题,我觉得自从我的老板不断抱怨这个问题,我就会提到这个问题,这让我挠了挠头。

我们使用Infragistics NetAdvantage Excel控件即时创buildExcel报表。 有些单元格,我们添加一个填充颜色,如下所示:

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

这工作很好,报告出来看起来很好:

工作图像

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

在这里输入图像说明

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

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

这只发生在Excel文件之间而不是Excel文档中的工作表之间时。 有没有人遇到这个问题,或任何Excel专家知道什么可能会导致这个从技术angular度?

这是Excel 2007和Infragistics Build 8.2.20082.1000。

这在NetAdvantage 2012第1卷中得到了解决,在这个版本中,excel引擎使用的颜色模型发生了变化。 Mike在Infragistics论坛上的回复也提到了这一点。

解决该问题的最佳select是使用NetAdvantage 2012卷1的Excel引擎。

所以我有同样的问题,不知道为什么复制的格式不会传递到另一个工作表。 所以,没有官方的“修复”,但是我意识到这并不是因为我在一个完全独立的Excel文件中而被遗留下来的。 实质上,您必须将您的复制和粘贴文档放在同一个Excel工作表中。 所以,当你想要复制的项目打开,从你的副本打开你的其他Excel工作表(文件,打开)。 一旦你粘贴,它现在将保存你所有的格式。 希望这可以帮助!

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

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

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

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

在这里输入图像说明

Excel保存偏好设置允许您更改或保留使用的颜色 在这里输入图像说明

我也为那些不想(或不能负担)升级的人find了一个解决scheme。 简单地创build如下的工作簿:

 Workbook b = new Workbook(WorkbookPaletteMode.StandardPalette); 

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

好吧,我想我有这个问题后有这个和其他地方描述相同的问题…….检查了这一点! 首先去你的粘贴页面,并突出显示整个页面,打印区域和“清除打印区域”。 然后去粘贴区域,并删除细胞,即使没有什么! 突出显示行(即使没有任何内容)。 删除行。 现在从头开始复制和粘贴,你应该能够粘贴所有的原始颜色和公式!