Epplus:如何将 Excel 样式库中的样式应用到 Excel 范围
Epplus: How to apply a style from the Excel Style Gallery to an ExcelRange
屏幕截图显示了 Epplus 将数据集导出到新 Excel 文件(文件类型 *.xlsx)的场景。
在这种情况下,我想将 Excel 样式库中的 "Bad" 样式应用到单元格 E1。我如何在 Epplus 中以编程方式执行此操作?
我已经查看了我能够找到的指导文档,here and here。我还没有找到展示如何将样式库中的 Excel 样式应用到 Excel 范围的示例。
这是我目前的情况。
private void FormatDataTable(ExcelWorksheet worksheet)
{
if(RowCount==0)
{
// How do I apply the "Bad" style to this range?
var range = worksheet.Cells["E1"];
}
}
据我所知是不行的。但始终存在
var cell = worksheet.Cells["E1"];
cell.Style.Font.Name = "Calibri";
cell.Style.Font.Size = 11;
cell.Style.Fill.BackgroundColor.SetColor(ColorTranslator.FromHtml("#ffc7ce"));
cell.Style.Fill.PatternType = ExcelFillStyle.Solid;
cell.Font.Color.SetColor(ColorTranslator.FromHtml("#be0006"));
这应该可以解决问题。
要仅修改背景颜色,请使用:
using System.Drawing;
并应用于范围
sheet.Cells["A1:BB1"].Style.Fill.BackgroundColor.SetColor(Color.Red);
EPPlus 支持命名样式。不幸的是,预定义的 Excel 样式并不容易获得。然而,重新创建它们相当容易。
可以这样定义命名样式:
ExcelNamedStyleXml ns = workBook.Styles.CreateNamedStyle("Good");
ns.Style.Font.Name = "Calibri";
ns.Style.Font.Family = 2;
ns.Style.Font.Size = 11;
ns.Style.Font.Color.SetColor(0xFF, 0x00, 0x61, 0x00);
ns.Style.Fill.PatternType = ExcelFillStyle.Solid;
ns.Style.Fill.BackgroundColor.SetColor(0xFF, 0xC6, 0xEF, 0xCE);
为了将它应用到一个范围内,您可以只使用
workSheet.Cells[2, 2].StyleName = "Good";
要获得与 Excel 中相同的样式,请创建一个新工作簿,并将您喜欢的样式应用于几个单元格。可以解压缩保存的 .xlsx 文件。它有一个 xl/styles.xml
文件,其中包含所有使用过的样式。如何发现重新创建样式所需的元素是很明显的。
<cellStyles>
节点拥有所有样式。其中的每个 <cellStyle>
节点都有一个 name
和 xfId
属性。 xfId
引用 <cellXfs>
节点中的样式,其中几个元素组合在一起形成样式。例如,fontId
属性指的是 <fonts>
节点中的第 n 个字体。
屏幕截图显示了 Epplus 将数据集导出到新 Excel 文件(文件类型 *.xlsx)的场景。
在这种情况下,我想将 Excel 样式库中的 "Bad" 样式应用到单元格 E1。我如何在 Epplus 中以编程方式执行此操作?
我已经查看了我能够找到的指导文档,here and here。我还没有找到展示如何将样式库中的 Excel 样式应用到 Excel 范围的示例。
这是我目前的情况。
private void FormatDataTable(ExcelWorksheet worksheet)
{
if(RowCount==0)
{
// How do I apply the "Bad" style to this range?
var range = worksheet.Cells["E1"];
}
}
据我所知是不行的。但始终存在
var cell = worksheet.Cells["E1"];
cell.Style.Font.Name = "Calibri";
cell.Style.Font.Size = 11;
cell.Style.Fill.BackgroundColor.SetColor(ColorTranslator.FromHtml("#ffc7ce"));
cell.Style.Fill.PatternType = ExcelFillStyle.Solid;
cell.Font.Color.SetColor(ColorTranslator.FromHtml("#be0006"));
这应该可以解决问题。
要仅修改背景颜色,请使用:
using System.Drawing;
并应用于范围
sheet.Cells["A1:BB1"].Style.Fill.BackgroundColor.SetColor(Color.Red);
EPPlus 支持命名样式。不幸的是,预定义的 Excel 样式并不容易获得。然而,重新创建它们相当容易。
可以这样定义命名样式:
ExcelNamedStyleXml ns = workBook.Styles.CreateNamedStyle("Good");
ns.Style.Font.Name = "Calibri";
ns.Style.Font.Family = 2;
ns.Style.Font.Size = 11;
ns.Style.Font.Color.SetColor(0xFF, 0x00, 0x61, 0x00);
ns.Style.Fill.PatternType = ExcelFillStyle.Solid;
ns.Style.Fill.BackgroundColor.SetColor(0xFF, 0xC6, 0xEF, 0xCE);
为了将它应用到一个范围内,您可以只使用
workSheet.Cells[2, 2].StyleName = "Good";
要获得与 Excel 中相同的样式,请创建一个新工作簿,并将您喜欢的样式应用于几个单元格。可以解压缩保存的 .xlsx 文件。它有一个 xl/styles.xml
文件,其中包含所有使用过的样式。如何发现重新创建样式所需的元素是很明显的。
<cellStyles>
节点拥有所有样式。其中的每个 <cellStyle>
节点都有一个 name
和 xfId
属性。 xfId
引用 <cellXfs>
节点中的样式,其中几个元素组合在一起形成样式。例如,fontId
属性指的是 <fonts>
节点中的第 n 个字体。