2010-03-10 57 views
4

我正在使用Windows應用程序。我需要解決如何在Excel中使用不同顏色&樣式突出顯示數據。我正在使用C#將數據導出爲ex​​cel。在Excel中使用C#高亮顯示不同顏色的數據在Windows應用程序中使用C#

這是我使用到數據表導出到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; 
} 

回答

6

你需要得到小區或區域的「內部」對象,並設置顏色就可以了。

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.Font.Size = "20"; 
cellRange.Font.Bold = true; 

有:

cellRange.Interior.Color = ConvertColour(Color.Green); 

您可以使用.font屬性設置文本的風格是其他屬性,如Color,ItalicUnderline,您可以使用它來獲取您需要的樣式。

相關問題