我正在使用Windows应用程序.我需要弄清楚如何在Excel中突出显示不同颜色和样式的数据.我正在使用C#将数据导出到excel.
这是我用于将DataTable导出到Excel的代码,
private void btnExportexcel_Click(object sender, EventArgs e) { oxl = new Excel.Application(); oxl.Visible = true; oxl.DisplayAlerts = false; wbook = oxl.Workbooks.Add(Missing.Value); wsheet = (Excel.Worksheet)wbook.ActiveSheet; wsheet.Name = "Customers"; DataTable dt = clsobj.convert_datagrid_orderlist_to_datatable(dvgorderlist); int rowCount = 1; foreach (DataRow dr in dt.Rows) { rowCount += 1; for (int i = 1; i < dt.Columns.Count + 1; i++) { // Add the header the first time through if (rowCount == 2) { wsheet.Cells[1, i] = dt.Columns[i - 1].ColumnName; } wsheet.Cells[rowCount, i] = dr[i - 1].ToString(); } } range = wsheet.get_Range(wsheet.Cells[1, 1], wsheet.Cells[rowCount, dt.Columns.Count]); range.EntireColumn.AutoFit(); } wsheet = null; range = null; }
Simon P Stev.. 7
您需要获取单元格或范围的"内部"对象并在其上设置颜色.
Range cellRange = (Range)wsheet.Cells[rowCount, i]; cellRange.Interior.Color = 255;
Excel颜色是整数序列,因此您必须计算所需颜色的值.您可能会发现此方法很有用:
public static int ConvertColour(Color colour) { int r = colour.R; int g = colour.G * 256; int b = colour.B * 65536; return r + g + b; }
然后你可以这样做:
cellRange.Interior.Color = ConvertColour(Color.Green);
您可以使用.font属性设置文本的样式:
cellRange.Font.Size = "20"; cellRange.Font.Bold = true;
还有其他属性,如Color
,Italic
并且Underline
你可以用它来得到你所需要的风格.
您需要获取单元格或范围的"内部"对象并在其上设置颜色.
Range cellRange = (Range)wsheet.Cells[rowCount, i]; cellRange.Interior.Color = 255;
Excel颜色是整数序列,因此您必须计算所需颜色的值.您可能会发现此方法很有用:
public static int ConvertColour(Color colour) { int r = colour.R; int g = colour.G * 256; int b = colour.B * 65536; return r + g + b; }
然后你可以这样做:
cellRange.Interior.Color = ConvertColour(Color.Green);
您可以使用.font属性设置文本的样式:
cellRange.Font.Size = "20"; cellRange.Font.Bold = true;
还有其他属性,如Color
,Italic
并且Underline
你可以用它来得到你所需要的风格.