2010-03-16 51 views
47

Tôi đang sử dụng ứng dụng Windows để xuất bảng dữ liệu sang Excel. Nó hoạt động. Bây giờ tôi muốn đưa ra một số màu cho văn bản cụ thể trong ô. Làm thế nào tôi sẽ làm điều này?Thay đổi màu ô trong Excel bằng C#

Trả lời

104

Đối với văn bản:

[RangeObject].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); 

Đối với tế bào nền

[RangeObject].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); 
+0

Điều đó là tốt, chỉ xóa nội bộ b orders :( – Yola

+12

Bạn có thể tránh sự lộn xộn của 'System.Drawing.ColorTranslator' bằng cách sử dụng' Excel.XlRgbColor.rgbRed' để thay thế. – kmote

+0

Làm cách nào để sắp xếp theo màu ô? – Si8

8

Lưu ý: Điều này giả định rằng bạn sẽ khai báo các hằng cho chỉ số hàng và cột tên COLUMN_HEADING_ROW, FIRST_COL, và LAST_COL, và rằng _xlSheet là tên của số ExcelSheet (sử dụng Microsoft.Interop.Excel)

Thứ nhất, xác định phạm vi:

var columnHeadingsRange = _xlSheet.Range[ 
    _xlSheet.Cells[COLUMN_HEADING_ROW, FIRST_COL], 
    _xlSheet.Cells[COLUMN_HEADING_ROW, LAST_COL]]; 

Sau đó, thiết lập màu nền của phạm vi đó:

columnHeadingsRange.Interior.Color = XlRgbColor.rgbSkyBlue; 

Cuối cùng, thiết lập màu chữ:

columnHeadingsRange.Font.Color = XlRgbColor.rgbWhite; 

Và đây là mã kết hợp :

var columnHeadingsRange = _xlSheet.Range[ 
    _xlSheet.Cells[COLUMN_HEADING_ROW, FIRST_COL], 
    _xlSheet.Cells[COLUMN_HEADING_ROW, LAST_COL]]; 

columnHeadingsRange.Interior.Color = XlRgbColor.rgbSkyBlue; 

columnHeadingsRange.Font.Color = XlRgbColor.rgbWhite; 
Các vấn đề liên quan