.NET Core(C#)使用ExcelReport(NPOI)生成CSV报表

ExcelReport是一个Excel模板渲染引擎。 它基于关注点分离的理念,将数据与表格样式、字体格式分离。 其中模板承载的表格样式、字体格式在可视化的情况下编辑。开发人员只需要绑定数据与目标标签的对应关系。ExcelReport就可以以数据驱动的方式渲染出目标报表。本文主要介绍.NET Core(C#)中,使用ExcelReport(NPOI)通过CSV模板生成CSV报表,生成CSV文件中的数据表格,以及相关示例代码。

1、安装引用ExcelReport(NPOI)

1)使用Nuget界面管理器

搜索"ExcelReport"“ExcelReport.Driver.NPOI”,在列表中分别找到它,点击"安装"

相关文档VS(Visual Studio)中Nuget的使用

2)使用Package Manager命令安装

PM> Install-Package ExcelReport -Version 3.1.6
PM> Install-Package ExcelReport.Driver.NPOI -Version 2.0.3

3)使用.NET CLI命令安装

> dotnet add package ExcelReport --version 3.1.6
> dotnet add package ExcelReport.Driver.NPOI --version 2.0.3

2、使用ExcelReport(NPOI)生成CSV报表

using ExcelReport;
using ExcelReport.Driver.CSV;
using ExcelReport.Renderers;
using System;
namespace _4.CSV示例
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            // 项目启动时,添加
            Configurator.Put(".csv", new WorkbookLoader());
            try
            {
                var num = 1;
                ExportHelper.ExportToLocal(@"Template\test.csv", "out.csv",
                        new SheetRenderer("test",
                            new RepeaterRenderer<StudentInfo>("Roster", StudentLogic.GetList(),
                                new ParameterRenderer<StudentInfo>("No", t => num++),
                                new ParameterRenderer<StudentInfo>("Name", t => t.Name),
                                new ParameterRenderer<StudentInfo>("Gender", t => t.Gender ? "男" : "女"),
                                new ParameterRenderer<StudentInfo>("Class", t => t.Class),
                                new ParameterRenderer<StudentInfo>("RecordNo", t => t.RecordNo),
                                new ParameterRenderer<StudentInfo>("Phone", t => t.Phone),
                                new ParameterRenderer<StudentInfo>("Email", t => t.Email)
                                ),
                             new ParameterRenderer("Author", "hzx")
                            )
                        );
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            Console.WriteLine("finished!");
            Console.ReadKey();
        }
    }
}

示例代码CSV报表示例

源码地址https://github.com/hanzhaoxin/ExcelReport


推荐阅读
cjavapy编程之路首页