将List下载到本地保存为Excel

  直接附上代码

 1     /// <summary>
 2     /// 将List保存为Excel
 3     /// </summary>
 4     /// <typeparam name="T">保存的类类型</typeparam>
 5     /// <param name="lt">需要保存的源数据</param>
 6     /// <param name="fileName">保存的文件名称</param>
 7     /// <param name="fields">对应于类的字段名称</param>
 8     /// <param name="titles">对应于Excel的列名</param>
 9     public static void Save<T>(List<T> lt, string fileName, string[] fields, string[] titles)
10     {
11         if (lt == null || lt.Count == 0)
12         {
13             throw new ArgumentNullException("数据为空");
14         }
15
16         var sb = new StringBuilder();
17         PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
18         const string next = "\t";
19
20         foreach (var title in titles)
21         {
22             sb.Append(title).Append(next);
23         }
24
25         var propertys = new List<PropertyInfo>();
26
27         foreach (var field in fields)
28         {
29             foreach (PropertyInfo prop in props)
30             {
31                 if (prop.Name.Equals(field))
32                 {
33                     propertys.Add(prop);
34                     break;
35                 }
36             }
37         }
38
39         sb.Append(Environment.NewLine);
40
41         foreach (T item in lt)
42         {
43             foreach (var property in propertys)
44             {
45                 object value = property.GetValue(item, null);
46
47                 if (property.PropertyType.BaseType == typeof(Enum))
48                 {
49                     sb.Append(GPMSKernel.Unility.Enums.GetEnumDescription(value));
50                 }
51                 else if (property.PropertyType == typeof(Boolean))
52                 {
53                     if ((bool)value)
54                     {
55                         sb.Append("是");
56                     }
57                     else
58                     {
59                         sb.Append("否");
60                     }
61                 }
62                 else
63                 {
64                     sb.Append(value);
65                 }
66
67                 sb.Append(next);
68             }
69
70             sb.Append(Environment.NewLine);
71         }
72
73         fileName = string.Format("{0}_{1}.xls", DateTime.Now.ToString("yyMMddHHmmss"), fileName);
74         HttpContext.Current.Response.ContentType = "application/octet-stream";
75         //通知浏览器下载文件而不是打开
76         HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;  filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8));
77         HttpContext.Current.Response.BinaryWrite(Encoding.UTF8.GetBytes(sb.ToString()));
78         HttpContext.Current.Response.Flush();
79         HttpContext.Current.Response.End();
80     }

    此方法是把List从Web服务器上下载到本地并保存为Excel的,其中lt是要保存的数据源,fileName是对应的文件名,可以直接写为要保存的类名,

fields对应于要保存的类的字段名,这个一定要正确,否则无法在类里找到该字段,titles是要保存的文件里面的列名,fields和titles必须一一对应,个数要相等。  保存之前有做特殊处理,比如如果要保存的类里面有枚举的话,直接保存到Excel里会变成英文的,这一般不是用户想看到的,那么需要在枚举的每个值前面标注[Description("***")],
GPMSKernel.Unility.Enums.GetEnumDescription可以获得枚举的Description值;如果是布尔值的话,直接保存就变成了"True"或"False"了,我把这种转换成了"是"或"否";如果要保存的类里面还有特殊的类,那么需要在这特殊的类里面重写ToString方法,保存的时候将会按照该ToString方法保存....

将List下载到本地保存为Excel

时间: 2024-10-29 04:06:35

将List下载到本地保存为Excel的相关文章

下载GridView(保存为Excel文件)

aspx页面前台:(使用用户控件) <uc1:DownExcel ID="DownExcel1" runat="server" /> aspx页面后台: protected void Page_Load(object sender, EventArgs e)    {                  DownExcel1.myEvent += new EventHandler(BindGV);            DownExcel1.sFileNa

将 Azure SQL 内数据下载到本地,满足企业的「数据收集」

嫌长不看版 本文介绍了通过复制和导出两个操作,将 Azure SQL 数据库中的内容转移至其他位置(例如本地环境)的具体做法.借此可以帮助用户在 Azure 中运行数据库的同时,在本地或指定的其他位置额外保留一个副本,满足制度或业务等各方面的要求. 操作细节版 很多用户向小编提出了这样一个问题:已经在使用 Azure SQL 数据库服务,虽然该服务有非常完善的数据备份和灾备机制,但出于公司制度或其他方面的要求,需要定期将数据库的完整内容下载到本地保存,哪怕手工操作也可以. 这当然是可以的,不过首

ASP.NET下载远程图片保存到本地的方法、保存抓取远程图片

ASP.NET下载远程图片保存到本地的方法.保存抓取远程图片 2012-05-16 11:25:51     我来说两句      收藏    我要投稿 以下介绍两种方法:1.利用WebRequest,WebResponse 类WebRequest wreq=WebRequest.Create("http://up.2cto.com/2012/0516/20120516112717995.gif");    HttpWebResponse wresp=(HttpWebResponse)

list数据导出excel并且下载到本地

最近做grid列表相关数据导出到excel功能,根据自己选择的列导出成excel 并且下载到本地.下载位置根据配置文件进行的配置.废话不说 直接上关键代码: 需要引入相关的包: compile 'net.sourceforge.jexcelapi:jxl:2.6.12'这是我项目中gradle的配置. @Override public void exportExcel(Integer[] ids,HttpServletResponse response) { List<WithdrawDepos

django 中下载文件与下载保存为excel

一.django 中下载文件 在实际的项目中很多时候需要用到下载功能,如导excel.pdf或者文件下载,当然你可以使用web服务自己搭建可以用于下载的资源服务器,如nginx,这里我们主要介绍django中的文件下载. 1.前端 实现方式:a标签+响应头信息(当然你可以选择form实现) <div class="col-md-4"><a href="{% url 'download' %}" rel="external nofollow

svg保存为图片下载到本地

今天给大家说一个将svg下载到本地图片的方法,这里我不得不吐槽一下,为啥博客园不可以直接上传本地文件给大家用来直接下载分享呢,好,吐槽到此为止! 这里需要用到一个js文件,名字自己起,内容如下: (function() { const out$ = typeof exports != 'undefined' && exports || typeof define != 'undefined' && {} || this || window; if (typeof defin

从网络下载图片,保存,并用UIImageView从保存中显示

代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. UIImageView *img=[[UIImageView alloc]initWithFrame:CGRectMake(50, 100, 200, 200)]; img.backgroundColor=[UIColor redColor]; [self.view addSubview:img]; /

如何开发应用程序将客户服务器数据库的备份,下载到本地的云服务上?

---恢复内容开始--- 如何做到将客户服务器数据库的备份,下载到本地的云服务上? 在开发这个程序中中途也遇到了一下问题,下面我将自己如何进解决的办法写出来供大家参考. 一.首先我需要进行描述一下问题: 1.比如有两台服务器A,B(云服务器) 将A中的服务器中的数据库的备份进行下载到B的云服务中并保存. 2.当然这台A服务器的外网是可以进行访问,如果外网访问不了的话,那也是没有办法的. 3.然后在B服务器中定期的进行删除数据库备份,定时的下载.并进行保存最新一个星期的数据库备份. 4.在云服务需

mysq将表数据导入文件并将文件从远程服务下载到本地

1,将mysql中某个表的数据导入到文件: 首先,将要执行的sql写在一个后缀为".sql"的文件(比如:sql20170720.sql,内容为:select * from db_deb.t_low where  create_time between "2017-06-19 00:00:00" and "2017-07-20 23:59:59" ;). 然后执行:mysql -h100.11.111.20 -Pabvf.--default-ch