SpreadsheetGear C# .NET 中的单元格样式

Cell styles in SpreadsheetGear C# .NET

我尝试通过 SpreadsheetGear 创建 excel 文档。我想在 headers?fonts 等上应用一些样式,与屏幕截图相同:

我写了下面的代码:

 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];
        }
    }

但最后所有的文字都是粗体:

请参阅 了解对此的解释。但是最重​​要的是,您需要直接设置单元格的字体,例如...

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

...而不是 单元格样式的 字体:

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

设置单元格的样式将影响使用相同样式的所有其他单元格,在“正常”样式的情况下(可能是在您的情况下设置的样式)通常是大多数(如果不是所有)其他单元格。因此到处都是粗体。