Изменение цвета ячейки в Excel с использованием C#
Я использую приложение Windows для экспорта таблицы данных в Excel. Работает. Теперь я хочу дать цвет для определенного текста в ячейке. Как мне это сделать?
3 ответа
Для текста:
[RangeObject].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
Для фона клетки
[RangeObject].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
Примечание. Предполагается, что вы объявите константы для индексов строк и столбцов с именами COLUMN_HEADING_ROW
, FIRST_COL
, а также LAST_COL
и что _xlSheet
это имя ExcelSheet
(с помощью Microsoft.Interop.Excel
)
Сначала определите диапазон:
var columnHeadingsRange = _xlSheet.Range[
_xlSheet.Cells[COLUMN_HEADING_ROW, FIRST_COL],
_xlSheet.Cells[COLUMN_HEADING_ROW, LAST_COL]];
Затем установите цвет фона этого диапазона:
columnHeadingsRange.Interior.Color = XlRgbColor.rgbSkyBlue;
Наконец, установите цвет шрифта:
columnHeadingsRange.Font.Color = XlRgbColor.rgbWhite;
И вот код в сочетании:
var columnHeadingsRange = _xlSheet.Range[
_xlSheet.Cells[COLUMN_HEADING_ROW, FIRST_COL],
_xlSheet.Cells[COLUMN_HEADING_ROW, LAST_COL]];
columnHeadingsRange.Interior.Color = XlRgbColor.rgbSkyBlue;
columnHeadingsRange.Font.Color = XlRgbColor.rgbWhite;
Для C# использование класса Workbook (который реализует интерфейс Workbook) может предоставить множество инструментов для раскрашивания. Я использовал Workbook (templateWorkbook в приведенном ниже примере) для установки цветов следующим образом:
var copyFormating = templateWorkbook.Worksheets[sheetName].Cells[9,0].GetStyle();
copyFormating.ForegroundColor = System.Drawing.Color.Gold;
copyFormating.Font.Color = System.Drawing.Color.Black;
copyFormating.HorizontalAlignment = TextAlignmentType.Center;