将IList、DataTable数据导出到Excel

/// <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[0] + "</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[1]]).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();
        }
时间: 2024-08-10 11:53:52

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

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

1.在非服务器控件的页面导出数据,需要借助一张temp空页面post回后台的数据. 前台:window.location.href = "../Temp.aspx"; 后台: try{ dtSource = Session["MyDataTable"] //假设数据在Session中 if (dtSource == null || dtSource.Rows.Count == 0)            {                return;       

C# 将内存中的datatable数据导出为Excel(方法一,以文件流方式导出)【转载】

上次做了以Excel文件为数据源,进行数据导入,今天,给大家分享一下如何将内存中的datatable以文件流的方式导出为Excel文件,而且个人觉得这个方法非常不错,高效,简单. 技术要点:1.创建文件流,用于写最终的文件StreamWriter sw = new StreamWriter(fileName, false,Encoding.GetEncoding("gb2312")); 2.使用  StringBuilder类把数据组合为长字符串插入到excel文件中,sb.Appen

C# 将内存中的datatable数据导出为Excel(方法二,创建Excel对象导出)【转载】

上次写了一个用文件流方式将Datatable导出Excel的方法,这个方法有局限性,比如没法对Excel进行一些增加列颜色等简单的操作,现在,给大家介绍另外一种方法,用微软的Excel类.既然要用到类,那必须是你的机子要装上Excel才行呢. public  void DataTabletoExcel(System.Data.DataTable[] tmpDataTable,string date1,string date2) { string saveFileName = ""; S

利用HttpResponse将DataTable数据导出为Excel/Word/Txt/Html文档

Web项目中,很多时候须要实现将查询的数据集导出为Excel.Word等文档的功能,很多时候不太希望在工程中添加对Office组件相关的DLL的引用,甚至有时候受到Office不同版本的影响,导致在不同的服务器上部署后功能受限,或和其它项目冲突,那么,使用这种简单粗暴的方式,可能会解决部分猿类的烦恼忧愁. public static bool DataTableToExcel(System.Data.DataTable dataTable, string fileName) { if (data

C# 获取DataTable数据导出到Excel

1 protected void ExportExcel(System.Data.DataTable dt) 2 { 3 if (dt == null || dt.Rows.Count == 0) return; 4 Microsoft.Office.Interop.Excel.Application xlsxApp = new Application(); 5 if (xlsxApp == null) return; 6 //System.Globalization.CultureInfo C

c# 将Datatable数据导出到Excel表格中

public FileResult GetExcelFile()        {            if (Session["beginDate"] != null)            {                string bdate = Session["beginDate"].ToString();                DateTime ld = Convert.ToDateTime(Session["lastDate&q

C#大量数据导出到Excel

工作过程中经常会用到将数据导出到Excel中,一般情况下需要导出的数据都是几百几千条或者上万条,这都没有什么问题,但有时候会遇到特殊的需求,客户要求把几十万条甚至上百万条的数据导出到Excel中,这就比较麻烦了.当数据量很大导出到Excel表格的时候通常会遇到两个问题:一个是内存溢出,由于需要处理的数据量比较大,导致Excel占用的内存过多从而导致数据还没有导出完就因为内存溢出而失败:另一个是每张Excel表单最多只能有65536行,所以当DataTable或DataSet中数据多于65536行

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

上篇提到如何从Excel界面上拿到用户的数据,另外反方向的怎样输出给用户数据,也是关键之处. VSTO最大的优势是,这双向的过程中,全程有用户的交互操作. 而一般IT型的程序,都是脱离用户的操作,只能让用户准备好数据,离开Excel,或生成数据,要重新打开某文件才能获取到数据结果. 在VSTO中,用户随时在Excel最强UI前端中生产数据,同时也在获得数据结果后,无缝地利用Excel强大的数据处理能力进行数据的再次加工如Vlookup一些其他信息进来,做个图表展示等等. VSTO程序在用户全程数

支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人员轻松快速的从各种主流数据库中导出数据并存储于各种文件格式中.他支持从SQL Command, DataTable,ListView中导出数据并存储于MS Excel,MS Word, HTML, XML, PDF, MS Access, DBF, SQL Script, SYLK, DIF, CS