经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
C#实现NPOI的Excel导出详解
来源:jb51  时间:2022/1/19 19:14:47  对本文有异议

技术点:

1.自定义attribute属性

2.通过反射取类及其属性的attribute属性值

3.NPOI包常用属性及方法(我也仅仅知道用到过的,陌生的要么见名知意,要么百度查)

实现功能点:

List类对象的模板导出,实用场景例子见最后代码块(emm...还是比较抽象,代码见)

EXCEL导出类DTO超类

定义继承导出类DTO的特性说明类

Excel帮助类

这部分要讲的点其实挺多的,关键就是EXCEL导出所用到的数据源是强类型的。

可以看出来list其实是EF的Queryable toList()后的类集合,作为数据源存在

里面的DTO DesWeeklyReportExcExp继承ExcelSuper,特性分别加在类及属性上。

  1. public class XXXXController : CoreController
  2. {
  3. // 控制器内部
  4. [HttpPost]
  5. public ActionResult export()
  6. {
  7. // 控制器接口
  8. var list = op
  9. .GetPagedQuery(PageModel)
  10. .Select(s => new DesWeeklyReportExcExp
  11. {
  12. col1 = s.Project.ProjName,
  13. col2 = s.ColAttROPDate1?.ToString("yyyy.MM.dd"),
  14. col3 = (s.ColAttROPDate2 == null ? "无" : s.ColAttROPDate2.Value.ToString("yyyy.MM.dd"))
  15. + "/"
  16. + (s.ColAttROPDate3 == null ? "无" : s.ColAttROPDate3.Value.ToString("yyyy.MM.dd")),
  17. col4 = s.ColAttROPDate4?.ToString("yyyy.MM.dd")
  18. }).ToList();
  19. string filePath = Server.MapPath("~/download/[这是模板名称].xlsx");
  20. string filename = Path.GetFileNameWithoutExtension(filePath);// 文件名称
  21. string extension = Path.GetExtension(filePath);// 后缀名 带点(.)
  22. string fileDownloadName = filename + extension;
  23.  
  24. var fs = ExcelHelper.ExportToExcel(list, filePath).ToArray();
  25. return File(fs, "application/ms-excel", fileDownloadName);
  26. }
  27. }
  28.  
  29. [ExcelExpClassAttribute(2, 0, 2, 0)]
  30. public class DesWeeklyReportExcExp : ExcelSuper
  31. {
  32. /// <summary>
  33. /// 列1
  34. /// </summary>
  35. [ExcelExp(SortIndex = 0, ColName = "列1")]
  36. public string col1 { get; set; }
  37.  
  38. /// <summary>
  39. /// 列2
  40. /// </summary>
  41. [ExcelExp(SortIndex = 0, ColName = "列2")]
  42. public string col2 { get; set; }
  43.  
  44. /// <summary>
  45. /// 列3
  46. /// </summary>
  47. [ExcelExp(SortIndex = 0, ColName = "列3")]
  48. public string col3 { get; set; }
  49.  
  50. /// <summary>
  51. /// 列4
  52. /// </summary>
  53. [ExcelExp(SortIndex = 0, ColName = "列4")]
  54. public string col4 { get; set; }
  55. }

到此这篇关于C#实现NPOI的Excel导出详解的文章就介绍到这了,更多相关C# NPOI的Excel导出内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号