2011-02-02 1 views
1

다음 코드가 있습니다.C#을 사용하여 I 셀 A1 : A5에 색상을 채우는 방법은 무엇입니까?

Excel.Range chartRange; 
chartRange = xlWorkSheet.get_Range("A3", "R3"); 

이 셀 범위에 채우기를 원합니다. 나는 이미 다음을 시도했다.

System.Drawing.Color = "yellow" 

하지만 객체 참조가 필요하다는 예외가 발생한다.

이 셀을 색상으로 채우기 위해 코드를 수정하려면 어떻게해야합니까?

답변

9

이 시도 :

chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow); 
5

위 코드의 문제는 당신이 System.Drawing.Color 유형에 문자열 값 "노란색"을 할당 할 수 있다는 것입니다. 대신 표준 색상은 Color 구조를 통해 액세스 할 수있는 읽기 전용 속성으로 표시됩니다. 전체 목록은 documentation에 나와 있습니다.

Excel interop은 색상 값을 OLE 색상으로 변환해야하기 때문에 작업을 좀 더 복잡하게 만듭니다. ColorTranslator.ToOle method을 사용하면됩니다.

그래서, 예를 들어, 당신은 당신의 원본 코드에 다음 줄을 추가해야합니다 : 자세한 내용은

Excel.Range chartRange; 
chartRange = xlWorkSheet.get_Range("A3", "R3"); 
chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow); 

, 또한 MSDN에 this how-to article를 참조하십시오.

+0

이쁜를 찾을 수 있습니다이 방법은 색상의 많은 수에 대한 액세스를 제공하는 세포 착색의 엑셀 방법입니다 Excel.XlRgbColor.rgbRed !!!! 그것은 잘 작동. – Harikasai

0

Excel interop cant가 이해할 수있는 워크 시트 변수에 직접 색을 지정하고 있습니다.

colorTranslator.ToOle 메서드를 사용하여 색상 값을 OLE 값으로 변환하거나 Excel로 색상을 지정해야합니다. 두 가지 방법을 모두 제공했습니다.

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

다른

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 [행, 열]은 셀을 지정하는 데 사용됩니다.

System.Drawing.ColorTranslator.ToOle (SystemDrawing.Color.Green)은 OLE 형식의 색을 정의하는 데 사용됩니다.

여기 list of colors

관련 문제