# Excel导入 **Repository Path**: xskj001/excel-import ## Basic Information - **Project Name**: Excel导入 - **Description**: 基于NPOI + 反射的excel导入帮助类,只需要标注属性,即可实现导入。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.cnblogs.com/LearningC - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-03-15 - **Last Updated**: 2024-11-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于 NPOI + 反射的Excel导入帮助类 因为比较简单,就直接贴怎么用吧。 # 直接上例子 需要将excel结构导入到实体类中。 ## Excel结构 ![输入图片说明](1.png) ## 实体类 ``` [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方法可以传两个参数,第二个参数是一个 委托,委托的输入是 已经实例化之后的实体类。* ## 结果 ![输入图片说明](4.png)