基于 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方法可以传两个参数,第二个参数是一个 委托,委托的输入是 已经实例化之后的实体类。
结果
以上,项目代码下载,欢迎优化修改。