通过表达式EPPlus格式化条件
我正在使用带有条件格式的EPPlus创建excel。 我使用C#代码进行条件格式化,但它无法正常工作。
请检查我的下面的代码,让我知道我错在哪里:
ExcelPackage pck = new ExcelPackage(); var ws = pck.Workbook.Worksheets.Add("Sample1"); var _formatRangeAddress = new ExcelAddress("H16:K31,H33:K44,H46:K57,H59:K69,H71:K73"); string _statement = "=AND(COUNTA(H16:H16)0)"; var _cond4 = ws.ConditionalFormatting.AddExpression(_formatRangeAddress); _cond4.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid; _cond4.Style.Fill.BackgroundColor.Color = Color.Green; _cond4.Formula = _statement; pck.SaveAs(Response.OutputStream); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment; filename=Sample1.xlsx");
请试试这个:
ExcelPackage pck = new ExcelPackage(); var ws = pck.Workbook.Worksheets.Add("Sample1"); var _formatRangeAddress = new ExcelAddress("H16:K31,H33:K44,H46:K57,H59:K69,H71:K73"); string _statement = "AND(COUNTA(H16:H16)<2,COUNTA(H16:K16)>0)"; var _cond4 = ws.ConditionalFormatting.AddExpression(_formatRangeAddress); _cond4.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid; _cond4.Style.Fill.BackgroundColor.Color = Color.Green; _cond4.Formula = _statement; pck.SaveAs(Response.OutputStream); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment; filename=Sample1.xlsx");
在开头设置不带=
的公式字符串:
string _statement = "AND(COUNTA(H16:H16)<2,COUNTA(H16:K16)>0)"; [...] _cond4.Formula = _statement;
这里提到了解决方案: 使用EPPlus通过表达式进行条件格式化