Изменение цвета ячейки в 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;
Другие вопросы по тегам