Стили ячеек в SpreadsheetGear C# .NET

Я пытаюсь создать документ Excel через SpreadsheetGear. И я хотел бы применить некоторые стили к заголовкам, шрифтам и т. д., как на скриншоте:

введите здесь описание изображения

Я написал следующий код:

 static string[] fieldsName =
    {
        "Name",
        "LastName",
        "Address",
        "Phone"

    };       
private static void Main(string[] args)
 {
        var workbook = Factory.GetWorkbook();
        IWorksheet worksheet = workbook.ActiveWorksheet;
        IRange cells = worksheet.UsedRange;
        cells["A1:C1"].Style.Font.Bold = true;
        cells["A1:C1"].Font.Color = Color.FromArgb(255, 255, 255);
        cells["A1:C1"].Interior.Color = Color.FromArgb(0, 204, 0);

        cells["A1"].Value = " ";
        cells["B1"].Value = "My demo excel file";
        cells["C1"].Value = " ";

        cells["A2:C2"].Style.Font.Bold = true;
        cells["A2"].Value = "Field";
        cells["B2"].Value = "Description";
        cells["C2"].Value = "Value";
       
        FillDecisionCells(cells);
        
        workbook.SaveAs(@"D:\test.xlsx", FileFormat.OpenXMLWorkbook);
 } 

Затем я пытаюсь заполнить столбец Field без жирного шрифта:

private static void FillDecisionCells(IRange cells)
    {
        for (var i = 2; i < fieldsName.Length; i++)
        {
            cells[i, 0].Value = fieldsName[i];
        }
    }

Но в итоге весь текст будет выделен жирным шрифтом:

введите здесь описание изображения


person JDo    schedule 24.06.2021    source источник


Ответы (1)


См. https://stackoverflow.com/a/28533330/233365 для объяснения этого. Но в итоге вам нужно установить шрифт ячейки напрямую, например…

cells["A2:C2"].Font.Bold = true;  // Good

…а не шрифт стиля ячейки:

cells["A2:C2"].Style.Font.Bold = true;  // Bad

Установка стиля ячейки повлияет на все другие ячейки, использующие тот же стиль, который в случае «Обычного» стиля (вероятно, стиля, установленного в вашем случае) обычно относится к большинству, если не ко всем другим ячейкам. Отсюда смелость везде.

person Tim Andersen    schedule 24.06.2021