1. /// <summary>
  2. /// IList导出Excel
  3. /// </summary>
  4. /// <typeparam name="T"></typeparam>
  5. /// <param name="list">集合</param>
  6. /// <param name="dataColumn">字段</param>
  7. /// <param name="fileName"></param>
  8. public static void ListToExcel<T>(IList list, string[] dataColumn, string fileName)
  9. {
  10. HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
  11. HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
  12. HttpContext.Current.Response.Charset = "Utf-8";
  13. HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName + ".xls", System.Text.Encoding.UTF8));
  14. StringBuilder sbHtml = new StringBuilder();
  15. sbHtml.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
  16. sbHtml.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
  17. //写出列名
  18. sbHtml.AppendLine("<tr style=\"background-color: #FFE88C;font-weight: bold; white-space: nowrap;\">");
  19. foreach (string item in dataColumn)
  20. {
  21. string[] stritem = item.Split(':');
  22. sbHtml.AppendLine("<td>" + stritem[] + "</td>");
  23. }
  24. sbHtml.AppendLine("</tr>");
  25. //写数据
  26. foreach (T entity in list)
  27. {
  28. Hashtable ht = HashtableHelper.GetModelToHashtable<T>(entity);
  29. sbHtml.Append("<tr>");
  30. foreach (string item in dataColumn)
  31. {
  32. string[] stritem = item.Split(':');
  33. sbHtml.Append("<td>").Append(ht[stritem[]]).Append("</td>");
  34. }
  35. sbHtml.AppendLine("</tr>");
  36. }
  37. sbHtml.AppendLine("</table>");
  38. HttpContext.Current.Response.Write(sbHtml.ToString());
  39. HttpContext.Current.Response.End();
  40. }
  41.  
  42. /// <summary>
  43. /// DataTable导出Excel
  44. /// </summary>
  45. /// <param name="data">集合</param>
  46. /// <param name="dataColumn">字段</param>
  47. /// <param name="fileName">文件名称</param>
  48. public static void DataTableToExcel(DataTable data, string[] dataColumn, string fileName)
  49. {
  50. HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
  51. HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
  52. HttpContext.Current.Response.Charset = "Utf-8";
  53. HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName + ".xls", System.Text.Encoding.UTF8));
  54. StringBuilder sbHtml = new StringBuilder();
  55. sbHtml.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
  56. sbHtml.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
  57. //写出列名
  58. sbHtml.AppendLine("<tr style=\"background-color: #FFE88C;font-weight: bold; white-space: nowrap;\">");
  59. foreach (string item in dataColumn)
  60. {
  61. sbHtml.AppendLine("<td>" + item + "</td>");
  62. }
  63. sbHtml.AppendLine("</tr>");
  64. //写数据
  65. foreach (DataRow row in data.Rows)
  66. {
  67. sbHtml.Append("<tr>");
  68. foreach (string item in dataColumn)
  69. {
  70. sbHtml.Append("<td>").Append(row[item]).Append("</td>");
  71. }
  72. sbHtml.AppendLine("</tr>");
  73. }
  74. sbHtml.AppendLine("</table>");
  75. HttpContext.Current.Response.Write(sbHtml.ToString());
  76. HttpContext.Current.Response.End();
  77. }

将IList、DataTable数据导出到Excel的更多相关文章

  1. DataTable数据导出到Excel,并发送到客户端进行下载

    本代码实现思路是:页面显示和导出分开,导出的数据和用于页面显示的是同一查询数据方式,所以也是同样的数据,只是在导出数据时从数据库重新捞了一次数据.此导出数据方式会先将数据保存到Excel中,然后将创建 ...

  2. C#将DataTable数据导出到EXCEL的两种方法

    1.在非服务器控件的页面导出数据,需要借助一张temp空页面post回后台的数据. 前台:window.location.href = "../Temp.aspx"; 后台: tr ...

  3. C# CLosedXML四句代码搞定DataTable数据导出到Excel

    最近用到DataTable导出到Excel,网上看了一下,都不怎么好使,逛了下GitHub一下完美解决了 用到的.net库CLosedXML,这个库用于读取,处理和写入Excel 2007+(.xls ...

  4. C# 获取DataTable数据导出到Excel

    protected void ExportExcel(System.Data.DataTable dt) { ) return; Microsoft.Office.Interop.Excel.Appl ...

  5. C#大量数据导出到Excel(转)

    工作过程中经常会用到将数据导出到Excel中,一般情况下需要导出的数据都是几百几千条或者上万条,这都没有什么问题,但有时候会遇到特殊的需求,客户要求把几十万条甚至上百万条的数据导出到Excel中,这就 ...

  6. Excel催化剂开源第15波-VSTO开发之DataTable数据导出至单元格区域

    上篇提到如何从Excel界面上拿到用户的数据,另外反方向的怎样输出给用户数据,也是关键之处. VSTO最大的优势是,这双向的过程中,全程有用户的交互操作. 而一般IT型的程序,都是脱离用户的操作,只能 ...

  7. 将C1Chart数据导出到Excel

    大多数情况下,当我们说将图表导出到Excel时,意思是将Chart当成图片导出到Excel中.如果是这样,你可以参考帮助文档中保存和导出C1Chart章节. 不过,也有另一种情况,当你想把图表中的数据 ...

  8. 数据导出至Excel文件--好库编程网http://code1.okbase.net/codefile/SerializeHelper.cs_2012122018724_118.htm

    using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; ...

  9. asp.net将数据导出到excel

    本次应用datatable导出,若用gridview(假设gridview设为了分页显示)会出现只导出当前页的情况. protected void btnPrn_Click(object sender ...

随机推荐

  1. url传参特殊字符问题(+、%、#等)

    这样的话,你传的大多数带特殊符号的参数,都能在后台拿到,但是, url中可能用到的特殊字符及在url中的经过编码后的值:(此表格借鉴) 字符   特殊字符的含义 URL编码 #   用来标志特定的文档 ...

  2. vs2015下载

    VS2015 专业版下载链接http://download.microsoft.com/download/B/8/9/B898E46E-CBAE-4045-A8E2-2D33DD36F3C4/vs20 ...

  3. PHP mysqli_fetch_array() 函数

    从结果集中取得一行作为数字数组或关联数组: <?php // 假定数据库用户名:root,密码:123456,数据库:RUNOOB $con=mysqli_connect("local ...

  4. 微信小程序填坑之旅(2)-wx.showLoading的时候,仍能点击穿透,造成重复点击button的问题

    解决办法:mask =true wx.showLoading({ title: '正在上传...', mask:true, })

  5. 【CUDA 基础】5.1 CUDA共享内存概述

    title: [CUDA 基础]5.1 CUDA共享内存概述 categories: - CUDA - Freshman tags: - CUDA共享内存模型 - CUDA共享内存分配 - CUDA共 ...

  6. codeforces316E3

    Summer Homework CodeForces - 316E3 By the age of three Smart Beaver mastered all arithmetic operatio ...

  7. C语言实现简单的哈希表

    这是一个简单的哈希表的实现,用c语言做的. 哈希表原理 这里不讲高深理论,只说直观感受.哈希表的目的就是为了根据数据的部分内容(关键字),直接计算出存放完整数据的内存地址. 试想一下,如果从链表中根据 ...

  8. hdu6568 Math (概率dp)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6568 题意: 在$0$到$L$的坐标轴运输货物,在每个整数点可能丢失货物,丢失概率为$p$,丢失后可 ...

  9. Codeforces Round #371 (Div. 2)

    之前做过E题,是一个DP. A题,水题,两线段求交集. B题,set一下判断即可. C题,水题.但是我写麻烦了,直接转化成二进制再做,比用字符串relize()以后再map要好写得多. D题,交互题, ...

  10. 定义了char**p,为什么能用p[i][j]的形式?p又不是二维数组?

    char **p;p[i][j]相当于*(*(p+i)+j) https://www.zhihu.com/question/63717863