内蒙古自治区精神文明建设网站,做婚姻网站流程,软文发布平台排名,小公司做网站需要注意什么我们在日常开发中对Excel的操作可能会比较频繁#xff0c;好多功能都会涉及到Excel的操作。在.Net Core中大家可能使用Npoi比较多#xff0c;这款软件功能也十分强大#xff0c;而且接近原始编程。但是直接使用Npoi大部分时候我们可能都会自己封装一下#xff0c;毕竟根据二…我们在日常开发中对Excel的操作可能会比较频繁好多功能都会涉及到Excel的操作。在.Net Core中大家可能使用Npoi比较多这款软件功能也十分强大而且接近原始编程。但是直接使用Npoi大部分时候我们可能都会自己封装一下毕竟根据二八原则我们百分之八十的场景可能都是进行简单的导入导出操作这里就引出我们的主角Npoi.Mapper了。
引入包 需要注意二者对版本要求很高需要对应
PackageReference IncludeNPOI Version2.5.6 /
PackageReference IncludeNpoi.Mapper Version4.1.0 /定义实体类 public class Person{[Column(姓名)]//对应excel中的列名就是姓名public string Name { get; set; }[Column(年龄)]public int Age { get; set; }[Column(出生日期, CustomFormat yyyy/MM/dd)]public DateTime Birthday { get; set; }}导入
[HttpPost]
public async TaskListPerson Upload(IFormFile formFile)
{var mapper new Mapper(formFile.OpenReadStream());ListPerson persons mapper.TakePerson(sheet1).Select(xx.Value).ToList();return persons;
}输出文件流
[HttpGet]
public ActionResult DownLoadFile()
{ListPerson persons new ListPerson{new Person(){Name hhh,Age100,Birthdaynew DateTime(1990,11,11)}};var mapper new Mapper();MemoryStream stream new MemoryStream();//将students集合生成的Excel直接放置到Stream中mapper.Save(stream, persons, sheet1, overwrite: true, xlsx: true);return File(stream.ToArray(), application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, person.xlsx);
}忽略操作 有时候我们的导出或导入数据可能想忽略某些列不导出Npoi.Mapper为了我们提供了类似EF的Ignore操作这样的话无论是导入还是导出都会忽略这个属性即导出不会显示这个列导入不会映射这一列的数据
[Ignore]
public string IgnoredProperty { get; set; }合并单元格 如果我们导入的数据有一列数据的值是大家都拥有的在Excel上可以通过合并单元格的操作来显示这一列对于合并单元格的列对于程序来讲就是等价于所有列都是同一个值Npoi.Mapper为我们做了这种处理
[UseLastNonBlankValue]
public string ClassName { get; set; }官网