屏幕截图显示了Epplus导出到新Excel文件(文件类型* .xlsx)的数据集方案。
在这种情况下,我想将Excel样式库中的“坏”样式应用于单元格E1。我怎么能在Epplus中以编程方式执行此操作?
我查看了我能够找到的教学文件,here和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"];
}
}
答案 0 :(得分:2)
据我所知,没办法。但总是存在方式
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"));
这应该成功。
答案 1 :(得分:0)
要仅修改背景颜色,请使用:
using System.Drawing;
并应用于范围
sheet.Cells["A1:BB1"].Style.Fill.BackgroundColor.SetColor(Color.Red);
答案 2 :(得分:0)
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 个字体。