用C#改变单元格的背景

我正在开发一个使用C#处理Excel文档的程序,而且正在使用

Microsoft.Office.Interop.Excel._Worksheet worksheet; 

当我插入一些斧头,我使用的单元格:

 worksheet.Cells[x, y] = "something"; 

现在我想知道是否有可能从C#中更改Cells [x,y]的backColor

谢谢。

尝试

 worksheet.Cells[x, y].Interior.Color 

您将无法直接在.Net中使用颜色,他们将需要翻译。

build议使用以下(明显从银转换):

 worksheet.Cells[x, y].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Silver); 

是的,您可以为单元格或整列或整行着色。

下面的代码将帮助你。

 xlWorkSheet.get_Range(xlWorkSheet.Cells[2, 2], xlWorkSheet.Cells[2, 4]).Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green); 

其他

 xlWorkSheet.get_Range(xlWorkSheet.Cells[2, 3], xlWorkSheet.Cells[2, 3]).Interior.Color = Excel.XlRgbColor.rgbRed; 

这里的xlWorksheet是Excel工作表对象的对象。

get_Range需要2个variables,一个起始单元,另一个是终止单元。

所以如果你指定两个值相同,那么只有一个单元格被着色。

xlWorkSheet.cells [row,column]用来指定一个单元格。

System.Drawing.ColorTranslator.ToOle(SystemDrawing.Color.Green)用于定义OLE格式的颜色。

Excel.XlRgbColor.rgbRed是一个Excel单元格着色的方法这种方法可以访问大量的颜色,可以在这里find颜色列表

你可以这样做:

 private static readonly int DEL_PERF_FIRST_DATA_ROW = 10; private static readonly int SUN_ORDERS_COLUMN = 3; private static readonly int TUE_ORDERS_COLUMN = 5; private static readonly int THU_ORDERS_COLUMN = 7; private static readonly int SAT_ORDERS_COLUMN = 9; private static Color ALTERNATE_WEEKDAY_COLUMNS_COLOR = Color.LightGray; . . . int curRow = DEL_PERF_FIRST_DATA_ROW; 

(curRow在每一行被写入表单时递增。)

 // Pale Violetize (light gray, actually) Sun, Tues, Thurs, and Saturday columns var sundayColumnRange = _xlSheetDelPerf.Range[_xlSheetDelPerf.Cells[DEL_PERF_FIRST_DATA_ROW, SUN_ORDERS_COLUMN],_xlSheetDelPerf.Cells[curRow - 1, SUN_ORDERS_COLUMN]]; sundayColumnRange.Interior.Color = ALTERNATE_WEEKDAY_COLUMNS_COLOR; var tuesdayColumnRange = _xlSheetDelPerf.Range[_xlSheetDelPerf.Cells[DEL_PERF_FIRST_DATA_ROW, TUE_ORDERS_COLUMN],_xlSheetDelPerf.Cells[curRow - 1, TUE_ORDERS_COLUMN]]; tuesdayColumnRange.Interior.Color = ALTERNATE_WEEKDAY_COLUMNS_COLOR; var thursdayColumnRange = _xlSheetDelPerf.Range[_xlSheetDelPerf.Cells[DEL_PERF_FIRST_DATA_ROW, THU_ORDERS_COLUMN],_xlSheetDelPerf.Cells[curRow - 1, THU_ORDERS_COLUMN]]; thursdayColumnRange.Interior.Color = ALTERNATE_WEEKDAY_COLUMNS_COLOR; var saturdayColumnRange =_xlSheetDelPerf.Range[_xlSheetDelPerf.Cells[DEL_PERF_FIRST_DATA_ROW, SAT_ORDERS_COLUMN], _xlSheetDelPerf.Cells[curRow - 1, SAT_ORDERS_COLUMN]]; saturdayColumnRange.Interior.Color = ALTERNATE_WEEKDAY_COLUMNS_COLOR;