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