基于 NPOI + 反射的Excel导入帮助类


基于 NPOI + 反射的Excel导入帮助类

因为比较简单,就直接贴怎么用吧。

直接上例子

需要将excel结构导入到实体类中。

Excel结构

实体类

    [ExcelSheet(CheckPropertyName =true)]
    public class Student
    {
        public int ID { get; set; }

        [ExcelField(Name ="姓名",DataType = eFieldDataType.String)]
        public string Name { get; set; }

        [ExcelField(Name = "地址", DataType = eFieldDataType.String)]
        public string Address { get; set; }

        public string Tel { get; set; }

        public int Age { get; set; }

        [ExcelField(Name = "MasterCard", DataType = eFieldDataType.String)]
        public string IDCard { get; set; }

        public new void ToString()
        {
            Console.WriteLine($"ID:{this.ID},Name:{this.Name},Addr:{this.Address},Tel:{this.Tel},Age:{this.Age},IDCard:{this.IDCard}");
        }

    }

ExcelSheet 属性 可以标注类,如果 CheckPropertyName == true 则会检查每一个类里面的属性,

如果execel中有对应的字段,则把字段数据存放进去。

如果不设置这个属性,则需要将 Student类中的每个字段都加上 ExcelField 属性

调用方法

        static void Main(string[] args)
        { 
            AutomaticOperate automatic = new AutomaticOperate();
            List stu = automatic.ExcelToEntities(@"D:\Projects\WindowApp\ExcelImportDemo\Student.xlsx"); 
            stu.ForEach(s => { 
                s.ToString();
            }); 
            Console.ReadLine();
        }

ExcelToEntities方法可以传两个参数,第二个参数是一个 委托,委托的输入是 已经实例化之后的实体类。

结果

以上,项目代码下载,欢迎优化修改。