DC娱乐网

使用ClosedXML.Report 通过Excel模板自动生成报表

前言


ClosedXML.Report是一款用于.NET应用程序中的报告生成和数据分析工具,通过利用Microsoft Excel的功能实现。它是一个.NET库,用于在无需在运行代码的机器上安装Excel的情况下生成Microsoft Excel报告。借助ClosedXML.Report,您可以轻松地将来自.NET类的任何数据导出到使用XLSX模板的Excel中。

安装ClosedXML.Report

在项目中使用ClosedXML.Report,可以直接从NuGet安装。只需在包管理器控制台中运行以下命令:

1Install-Package ClosedXML.Report

通过这种方式,你能够方便快捷地将ClosedXML.Report集成到你的.NET项目中,从而利用其强大的Excel报告生成功能。

特性清单

  • - 复制单元格格式化
  • - 传播条件格式化
  • - 垂直和水平表格及子范围
  • - 实现Excel公式的功能
  • - 使用具有C#和Linq语法的动态计算公式
  • - 对表格数据的操作:排序、分组、总计函数
  • - 数据透视表
  • - 子范围处理

使用步骤

要创建一份报告,首先需要创建一个报告模板。可以对工作簿中的任何单元格应用任何格式化,插入图片,并修改工作簿本身的任何参数。在这个例子中,我们已经关闭了零值的显示并隐藏了网格线。ClosedXML.Report将会保留对模板的所有更改。

1,创建模板

下面是一个模板示例,变量写在{{}}内,ClosedXML.Report在渲染模版的时候最终替换掉这些变量。

2,模板渲染

通过下面的代码渲染模板。

    protected void Report()    {        const string outputFile = @".\Output\report.xlsx";        var template = new XLTemplate(@".\Templates\report.xlsx");        using (var db = new DbDemos())        {            var cust = db.customers.LoadWith(c => c.Orders).First();            template.AddVariable(cust);            template.Generate();        }        template.SaveAs(outputFile);        //Show report        Process.Start(new ProcessStartInfo(outputFile) { UseShellExecute = true });    }

3,查看报表

运行代码后,最后报表效果如下: