Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VSTO(C#)将Excel颜色从一个模板复制到另一个模板时会失真_C#_.net_Excel_Vsto - Fatal编程技术网

使用VSTO(C#)将Excel颜色从一个模板复制到另一个模板时会失真

使用VSTO(C#)将Excel颜色从一个模板复制到另一个模板时会失真,c#,.net,excel,vsto,C#,.net,Excel,Vsto,我们正在尝试使用模板生成excel工作表。通常,我们会使用基本的“另存为”来保存文件,但文件大小太大了。因此,现在我们正在将原始工作簿的使用范围复制到新工作簿 将使用“粘贴”特殊命令复制数据以及验证和公式,除单元格背景和字体颜色外,所有数据和格式都是相同的。它们几乎完全颠倒过来了 请建议如何解决此问题。Excel使用56种颜色调色板中的颜色(在Excel 2007/2010中可能更多),这些颜色可以使用工具/选项/颜色进行更改 您可以使用以下方法将颜色从一个工作簿复制到另一个工作簿: Workb

我们正在尝试使用模板生成excel工作表。通常,我们会使用基本的“另存为”来保存文件,但文件大小太大了。因此,现在我们正在将原始工作簿的使用范围复制到新工作簿

将使用“粘贴”特殊命令复制数据以及验证和公式,除单元格背景和字体颜色外,所有数据和格式都是相同的。它们几乎完全颠倒过来了


请建议如何解决此问题。

Excel使用56种颜色调色板中的颜色(在Excel 2007/2010中可能更多),这些颜色可以使用工具/选项/颜色进行更改

您可以使用以下方法将颜色从一个工作簿复制到另一个工作簿:

Workbook1.Colors = Workbook2.Colors

通过复制调色板,您当然会影响目标工作簿中所有UI元素的颜色,而不仅仅是您要复制的范围。

它是这样工作的,属性工作簿。颜色不存在。愚蠢的声明帮了我的忙

wb2.set_Colors(Missing.Value, wb.get_Colors(Missing.Value));

谢谢大家的回复。

这是因为您使用的是.NET 3.5/VSTO 3.0或更早版本。如果是这种情况,请安装并引用Microsoft.Office.Interop.Excel.Extensions PIA,这样您就不需要调用类似方法的属性(如上所述)。如果使用VSTO 4+这将不是问题。