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