关于数据导入:csvHelper利器
- 工具使用
- 2022/1/21 11:08:00
- 人已阅读
简介以前我们将Excel的数据导入数据库总要进行字段的对比与验证,字段名称和数量是否与实体一致,现在可以无视这一条了,利用csvHelper利器的RegisterClassMap过滤器即可实现,找不到的字段一律不映射~~~
通过以下2方法得到数据List对象,然后使用框架的OperateMany方法即可完成批量数据事务提交,是不是很nice?
需要安装csvHelper包,程序包控制台运行:Install-Package CsvHelper 即可
温馨提示:Jabil快速开发框架已经集成此方法,至于是否需要此功能那是业务需求问题了
/// <summary> /// 将csv表格数据填充到List,仅映射部分字段提交 /// </summary> /// <param name="filePath">csv文件路径</param> /// <returns></returns> public static List<test2> GetSheetToListByMapFields(string filePath) { //csvHelper:其他方法可参考 https://joshclose.github.io/CsvHelper/examples/writing/write-class-objects/ try { using (var reader = new StreamReader(filePath)) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Context.RegisterClassMap<test2CustomClassMap>(); var records = csv.GetRecords<test2>(); return records.ToList(); } } catch (Exception ex) { LogHelper.ErrorLog(ex.Message, "csvHelper导入test2ListByMapFields报错"); return new List<test2>(); } } /// <summary> /// 映射部分字段 /// </summary> public sealed class test2CustomClassMap : CsvHelper.Configuration.ClassMap<test2> { public test2CustomClassMap() { //本类里至少要有一个Map Map(m => m.UserName); Map(m => m.UserPwd); Map(m => m.Id); //匹配不上or找不到的字段将自动被忽略Ignore //Map(m => m.OpDate).Ignore(); //Map(m => m.Id).Ignore(); //Map(m => m.OpId).Ignore(); //Map(m => m.UserNo).Ignore(); //Map(m => m.UserCardNo).Ignore(); //Map(m => m.UpdateId).Ignore(); //Map(m => m.UpdateDate).Ignore(); //Map(m => m.IsDel).Ignore(); } }
上一篇:RDPWrap远程桌面破解版,支持多人同时访问某电脑
下一篇:iisWeb管理器
文章评论
- 消灭零回复