/// <summary>
/// IList导出Excel
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list">集合</param>
/// <param name="dataColumn">字段</param>
/// <param name="fileName"></param>
public static void ListToExcel<T>(IList list, string[] dataColumn, string fileName)
{
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.Charset = "Utf-8";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName + ".xls", System.Text.Encoding.UTF8));
StringBuilder sbHtml = new StringBuilder();
sbHtml.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
sbHtml.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
//写出列名
sbHtml.AppendLine("<tr style=\"background-color: #FFE88C;font-weight: bold; white-space: nowrap;\">");
foreach (string item in dataColumn)
{
string[] stritem = item.Split(':');
sbHtml.AppendLine("<td>" + stritem[] + "</td>");
}
sbHtml.AppendLine("</tr>");
//写数据
foreach (T entity in list)
{
Hashtable ht = HashtableHelper.GetModelToHashtable<T>(entity);
sbHtml.Append("<tr>");
foreach (string item in dataColumn)
{
string[] stritem = item.Split(':');
sbHtml.Append("<td>").Append(ht[stritem[]]).Append("</td>");
}
sbHtml.AppendLine("</tr>");
}
sbHtml.AppendLine("</table>");
HttpContext.Current.Response.Write(sbHtml.ToString());
HttpContext.Current.Response.End();
} /// <summary>
/// DataTable导出Excel
/// </summary>
/// <param name="data">集合</param>
/// <param name="dataColumn">字段</param>
/// <param name="fileName">文件名称</param>
public static void DataTableToExcel(DataTable data, string[] dataColumn, string fileName)
{
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.Charset = "Utf-8";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName + ".xls", System.Text.Encoding.UTF8));
StringBuilder sbHtml = new StringBuilder();
sbHtml.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
sbHtml.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
//写出列名
sbHtml.AppendLine("<tr style=\"background-color: #FFE88C;font-weight: bold; white-space: nowrap;\">");
foreach (string item in dataColumn)
{
sbHtml.AppendLine("<td>" + item + "</td>");
}
sbHtml.AppendLine("</tr>");
//写数据
foreach (DataRow row in data.Rows)
{
sbHtml.Append("<tr>");
foreach (string item in dataColumn)
{
sbHtml.Append("<td>").Append(row[item]).Append("</td>");
}
sbHtml.AppendLine("</tr>");
}
sbHtml.AppendLine("</table>");
HttpContext.Current.Response.Write(sbHtml.ToString());
HttpContext.Current.Response.End();
}

将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. bcp导入导出sybase、sqlserver数据库数据

    常用数据备份格式为: bcp dbname..tablename out c:\temp\filename -Usa -Ppassword -Sservername -c 其中 dbname为数据库名 ...

  2. 解决ubuntu的screen已经处于Attached状态,无法再打开窗口

    Attached表示该窗口已经被上一登录用户使用,需要重新登录 1. 先查询窗口id screen -ls 3606.node (11/26/2019 07:31:49 PM) (Attached) ...

  3. maven工程指定jdk版本,maven全局配置jdk的版本

  4. linux系统编程--进程间通信

    IPC方法 Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间.任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问, 要交换数据必须通过内核,在内核中开 ...

  5. [Luogu] trip

    https://www.luogu.org/problemnew/show/T28848#sub #include <iostream> #include <cstdio> u ...

  6. JavaWeb_(Spring框架)Spring配置文件

    一.什么是spring IOC IOC(Inversion of Control)即控制反转,在我们以往的编程中如果需要一个bean往往需要去手动去new一个出来.而spring帮我们解决了这个问题, ...

  7. centos7下面安装tomcat

    前言 对于一个新安装的 centos 系统来说,是没有 tomcat 服务器的.用下面的命令可以查看 tomcat 服务的状态. systemctl status tomcat.service//或者 ...

  8. mysql 从一个表中查数据并插入另一个表实现方法

    类别一. 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法: INSERT INTO  目标表  SELECT  * FROM  来源表 ; 例如,要将 articles ...

  9. Leetcode题目206.反转链表(简单)

    题目描述: 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: ...

  10. Ubuntu 安装 JDK1.8

    以下是Ubuntu 14.04安装JDK1.8.0_25与配置环境变量过程笔记. 1.源码包准备: 首先到官网下载jdk,http://www.oracle.com/technetwork/java/ ...