.net 根据List生成Excel

 

注:此功能依托于NPOI,需要引用NPOI包。

 

复制代码
/// <summary>
    /// 将List转化为Excel
    /// </summary>
    /// <typeparam name="T">类型</typeparam>
    /// <param name="source">数据源</param>
    /// <param name="SavePath">保存地址</param>
    public static void ToExcel<T>(this IEnumerable<T> source, string SavePath) where T : class
    {
      IWorkbook book = new XSSFWorkbook();//根据原模板初始化临时模板
      ISheet sheet1 = book.CreateSheet();//sheet页
      sheet1.CreateRow(0);

      int i = 0;
      foreach (PropertyDescriptor dp in TypeDescriptor.GetProperties(typeof(T)))
      {
        string a = dp.Name;
        sheet1.GetRow(0).CreateCell(i).SetCellValue(a);
        i++;
      }
      int j = 1;
      foreach (T item in source)
      {
        sheet1.CreateRow(j);
        int k = 0;
        foreach (PropertyDescriptor dp in TypeDescriptor.GetProperties(typeof(T)))
        {
          var val = dp.GetValue(item).ToString();
          sheet1.GetRow(j).CreateCell(k).SetCellValue(dp.GetValue(item)?.ToString());
          k++;
        }
        j++;
      }

      using (FileStream fileSave = new FileStream(SavePath, FileMode.Create, FileAccess.Write))
      {
        book.Write(fileSave);
      }
    }
复制代码

调用方法

 

          string filePath = AppDomain.CurrentDomain.BaseDirectory + $"Files/{DateTime.Now.ToString("yyyyMMdd")}";
          string SavePath = filePath + "\\" + fileName;
          var list = new List<test>();
          list.ToExcel(SavePath);

 

posted @   亦承  阅读(141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示