使用二维数组一次性彩色Excel单元格

有没有办法将颜色的二维数组直接分配给Excel单元格?

在一次拍摄中,我们可以使用Range.Value=Values[,]分配单元格值,但是我无法一次性将Colors[,]分配给这些单元格。 任何forms的帮助将不胜感激。

脚步:-

第1步:将Colors数组分配给Excel单元格。

 yourRangeObject.Value = Colors; 

步骤2:编写macros以在System.String中为所选颜色范围着色

  private static string GetMacro(int lastCellRowNum, int lastCellColNum) { StringBuilder sb = new StringBuilder(); sb.Append("Sub FormatSheet()" + "\n"); sb.Append(" Range(Cells(1, 1), Cells(" + lastCellRowNum + ", " + lastCellColNum + ")).Select " + "\n"); sb.Append(" For Each c In Selection" + "\n"); sb.Append(" c.Interior.Color = HEXCOL2RGB(c.Value)" + "\n"); sb.Append(" c.Borders.Color = HEXCOL2RGB(\"#FFDEDDDD\")" + "\n"); sb.Append(" Next" + "\n"); sb.Append(" Selection.ClearContents" + "\n"); sb.Append("End Sub" + "\n"); sb.Append("Public Function HEXCOL2RGB(ByVal HexColor As String) As String" + "\n"); sb.Append(" Dim Red As String, Green As String, Blue As String " + "\n"); sb.Append(" HexColor = Replace(HexColor, \"#\", \"\")" + "\n"); sb.Append(" Red = Val(\"&H\" & Mid(HexColor, 1, 2))" + "\n"); sb.Append(" Green = Val(\"&H\" & Mid(HexColor, 3, 2))" + "\n"); sb.Append(" Blue = Val(\"&H\" & Mid(HexColor, 5, 2))" + "\n"); sb.Append(" HEXCOL2RGB = RGB(Red, Green, Blue)" + "\n"); sb.Append("End Function"); return sb.ToString(); } 

步骤3:运行步骤2中写入的macros

 Microsoft.Vbe.Interop.VBComponent module = null; module = workbook.VBProject.VBComponents.Add( Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule ); module.CodeModule.AddFromString(GetMacro(lastCellRowNum, lastCellColNum)); workbook.Application.Run("FormatSheet", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

第4步:将Values数组分配给Excel单元格。

 yourRangeObject.Value = Values; 

多数民众赞成在两个镜头,你可以颜色代码你的Excel细胞。

在这样的大多数情况下,我使用复制和粘贴特殊格式的单元格块,但是如果您需要dynamic和任意改变的颜色,将无法正常工作。