source

C#로 셀 배경 변경

ittop 2023. 10. 14. 10:37
반응형

C#로 셀 배경 변경

저는 엑셀 문서를 조작하기 위해 C#을 사용한 프로그램을 개발하고 있고, 사용하고 있습니다.

    Microsoft.Office.Interop.Excel._Worksheet worksheet;

x,y 셀에 무엇인가를 삽입할 때 사용합니다.

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

이제 저는 그 시스템을 변경하는 것이 가능한지 알고 싶습니다.backColorC#의 Cell[x,y]에 대한.

감사해요.

해라

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

의 색상을 사용할 수 없습니다.직접적으로, 그들은 번역을 필요로 할 것입니다.

다음을 사용하는 것이 좋습니다(분명히 은색에서 변경).

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;

여기서 xl워크시트는 객체 excel 워크시트 객체입니다.

get_Range는 시작 셀과 종료 셀 중 2개의 변수를 사용합니다.

따라서 두 값을 모두 동일하게 지정하면 하나의 셀만 색이 표시됩니다.

xlWorkSheet.cells[행,]은 셀을 지정하는 데 사용됩니다.

시스템. 도면.색 변환기.ToOle(시스템 도면).Color.Green)은 OLE 형식으로 색상을 정의하는 데 사용됩니다.

Excel.XlRgbColor.rgbRed는 셀에 색을 입히는 훌륭한 방법입니다. 이 방법은 여기 색상 목록에서 찾을 수 있는 많은 색상에 접근할 수 있게 해줍니다.

이렇게 할 수 있습니다.

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;

(currRow는 행을 시트에 쓸 때마다 증가합니다.)

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

16진수 색상을 배경으로 설정하려는 사용자는 다음을 사용할 수 있습니다.

worksheet.get_Range("A1", "F1").Interior.Color = ColorTranslator.FromHtml("#52b69a");

언급URL : https://stackoverflow.com/questions/6059339/change-the-background-of-cells-with-c-sharp

반응형