Change the background of Cells with C#

旧时模样 提交于 2019-12-21 07:19:31

问题


I'm developing an program using C# to manipulate an Excel document, and I'm using

    Microsoft.Office.Interop.Excel._Worksheet worksheet;

When I insert something to a x,y cell I use :

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

Now I want to know if it's possible to change the backColor of the Cells[x,y] from C#.

Thank you.


回答1:


Try

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

You won't be able to use the Colors in .Net directly, they will require a translation.

It is recommended to use the following (obviously change from silver) :

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



回答2:


Yes you can color a cell or a entire column or entire row.

The below code will help you out.

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

else

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

Here xlWorksheet is the object excel Worksheet object.

get_Range takes 2 variable one start cell and other is end cell.

so if you specify both the values same then only one cell is colored.

xlWorkSheet.cells[row, column] is used to specify a cell.

System.Drawing.ColorTranslator.ToOle(SystemDrawing.Color.Green) is used to define the color in OLE format.

Excel.XlRgbColor.rgbRed is a excel way of coloring the cells This method gives access to large number of colors which can be found here list of colors




回答3:


You can do it like this:

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 gets incremented each time a row is written to the sheet.)

// 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;


来源:https://stackoverflow.com/questions/6059339/change-the-background-of-cells-with-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!