web-dev-qa-db-ja.com

C#でセルの背景を変更する

私はC#を使用してExcelドキュメントを操作するプログラムを開発しており、

    Microsoft.Office.Interop.Excel._Worksheet worksheet;

X、yセルに何かを挿入するとき、私は使用します:

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

ここで、Cells [x、y]のbackColorをC#から変更できるかどうかを知りたいと思います。

ありがとうございました。

14
Wassim AZIRAR

試してみてください

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

.NetのColorsを直接使用することはできません。翻訳が必要になります。

以下を使用することをお勧めします(明らかにシルバーから変更):

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

はい、セルまたは列全体または行全体に色を付けることができます。

以下のコードはあなたを助けるでしょう。

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;

ここでxlWorksheetはオブジェクトExcelワークシートオブジェクトです。

get_Rangeは、2つの変数を取ります。1つは開始セルで、もう1つは終了セルです。

したがって、両方の値を同じに指定すると、1つのセルだけが色付けされます。

xlWorkSheet.cells [row、column]は、セルを指定するために使用されます。

System.Drawing.ColorTranslator.ToOle(SystemDrawing.Color.Green)は、OLE形式で色を定義するために使用されます。

Excel.XlRgbColor.rgbRedは、セルに色を付けるExcelの方法です。このメソッドを使用すると、ここにある多数の色にアクセスできます リスト色の

2
Tejaswi Pandava

あなたはこのようにそれを行うことができます:

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;
0
B. Clay Shannon