我正在开发一个使用 C# 来操作 Excel 文档的程序,我正在使用
Microsoft.Office.Interop.Excel._Worksheet worksheet;
当我在 ax,y 单元格中插入一些东西时,我使用:
worksheet.Cells[x, y] = "something";
现在我想知道是否可以backColor
从 C# 更改 Cells[x,y] 的。
谢谢你。
尝试
worksheet.Cells[x, y].Interior.Color
您将无法直接在 .Net 中使用颜色,它们需要翻译。
建议使用以下(显然是从银色改变):
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 Worksheet 对象。
get_Range需要 2 个变量,一个是起始单元格,另一个是结束单元格。
因此,如果您指定两个值相同,则只有一个单元格是彩色的。
xlWorkSheet.cells[row, column]用于指定一个单元格。
System.Drawing.ColorTranslator.ToOle(SystemDrawing.Color.Green)用于定义 OLE 格式的颜色。
Excel.XlRgbColor.rgbRed是一种为单元格着色的 excel 方法此方法可以访问大量颜色,可在此处找到颜色列表
对于任何想要将十六进制颜色设置为背景的人都可以使用:
worksheet.get_Range("A1", "F1").Interior.Color = ColorTranslator.FromHtml("#52b69a");
你可以这样做:
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;