zoukankan      html  css  js  c++  java
  • C#Core查询数据库存储EXCEL文件

    1:安装EPPLUS的NUGET包

    实现源代码:

     1 using OfficeOpenXml;
     2 using System;
     3 using System.Collections.Generic;
     4 using System.IO;
     5 using System.Linq;
     6 
     7 namespace BigBeer.Core.Excel
     8 {
     9     public class Excel
    10     {
    11         /// <summary>
    12         /// 只针对2003以上版本
    13         /// </summary>
    14         /// <param name="data">需要存储的数据</param>
    15         /// <param name="path">存储地址</param>
    16         /// <param name="filename">文件名即可,后缀.xlsx</param>
    17         /// <param name="worksheetname">EXCEL文档下方的命名</param>
    18         public static void SaveExcel(IList<object> data,string path = null, string filename = null, string worksheetname = null)
    19         {
    20             int count = data[0].ToString().Split(',').Count();
    21             string sWebRootFolder = "D://Excel/";
    22             if (!string.IsNullOrEmpty(path)) sWebRootFolder = path;
    23             if (!Directory.Exists(sWebRootFolder))
    24             {
    25                 Directory.CreateDirectory(sWebRootFolder);
    26             }
    27             string sFileName = $"{Guid.NewGuid()}.xlsx";
    28             if (!string.IsNullOrEmpty(filename)) sFileName = $"{filename}.xlsx";
    29             FileInfo file = new FileInfo(Path.Combine(sWebRootFolder, sFileName));
    30             string worksheetName = "sheet";
    31             if (!string.IsNullOrEmpty(worksheetname)) worksheetName = worksheetname;
    32 
    33             using (ExcelPackage package = new ExcelPackage(file))
    34             {
    35                 // 添加worksheet
    36                 ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(worksheetName);
    37                 //添加头
    38                 for (int i = 0; i < count; i++)
    39                 {
    40                     var key = data.ToList()[i].ToString().Split(',')[i].Split('=')[0].Replace("{", "").Replace("}", "");
    41                     worksheet.Cells[1, i + 1].Value = key;
    42                 }
    43                 //添加值
    44                 for (int i = 0; i < data.Count; i++)
    45                 {
    46                     var list = data[i];
    47                     var shu = i + 2;
    48                     for (int t = 0; t < count; t++)
    49                     {
    50                         var c = Convert.ToChar('A' + t);
    51                         var value = list.ToString().Split(',')[t].Split('=')[1].Replace("{", "").Replace("}", "");
    52                         worksheet.Cells[$"{c}{shu}"].Value = value;
    53                     }
    54                 }
    55                 package.Save();
    56                 GC.Collect();
    57             }
    58         }
    59     }
    60 }

    3:使用方法:

    1             var data = result.ToList<object>(); //result为查询出来的数据
    2             data.SaveExcel();
  • 相关阅读:
    使用微软TFS代码管理工具和在金山快盘上搭建SVN的使用方法
    微软的Windows8安装体验
    软件注册码随笔
    软件注册码(算法一DES)
    PHP连接SAE平台MYSQL
    一点一滴《C++处理数据》
    BouncyCastle.Crypto的RSA算法调用源码
    一点一滴《C++学习》
    软件注册码(算法二Rijndael)
    Web 应用程序的程序常见安全防范
  • 原文地址:https://www.cnblogs.com/wujixiong/p/7966910.html
Copyright © 2011-2022 走看看