Как можно заполнить ячейки A1: A5 цветом, используя C #? - PullRequest
1 голос
/ 02 февраля 2011

У меня есть следующий код:

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

Я хочу заполнить этот диапазон ячеек цветом. Я уже пробовал с:

System.Drawing.Color = "yellow"

но возникает исключение, что ссылка на объект обязательна.

Как я могу исправить свой код, чтобы заполнить эти ячейки цветом?

Ответы [ 3 ]

10 голосов
/ 02 февраля 2011

Попробуйте это:

chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow);
5 голосов
/ 02 февраля 2011

Проблема с вашим кодом, показанным выше, заключается в том, что вы не можете присвоить строковое значение «Желтый» типу System.Drawing.Color.Вместо этого стандартные цвета отображаются как свойства только для чтения, к которым можно получить доступ через структуру Color.Полный список приведен в документации .

. Взаимодействие с Excel немного усложняет задачу, поскольку вам необходимо преобразовать эти значения цвета в цвета OLE.Вы делаете это, используя ColorTranslator.ToOle метод .

Так, например, вам нужно добавить следующую строку в ваш исходный код:

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

Для получения дополнительной информацииинформацию, также обратитесь к этой статье с инструкциями на MSDN.

0 голосов
/ 20 марта 2017

Вы непосредственно назначаете цвет переменной рабочего листа, который не может понять взаимодействие Excel.

Таким образом, вам необходимо преобразовать эти значения цвета в значения OLE с помощью метода colorTranslator.ToOle или использовать его в Excel для раскраски. При условии обоих способов.

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 с таблицей Excel.

get_Range принимает 2 переменные одну начальную ячейку, а другая - конечную ячейку.

поэтому, если вы укажете оба значения одинаково, тогда будет окрашена только одна ячейка.

xlWorkSheet.cells [строка, столбец] используется для указания ячейки.

System.Drawing.ColorTranslator.ToOle (SystemDrawing.Color.Green) используется для определения цвета в формате OLE.

Excel.XlRgbColor.rgbRed - превосходный способ окраски клеток Этот метод дает доступ к большому количеству цветов, которые можно найти здесь список цветов

...