DataTable 导出 excel , 可以自定义列名,没有繁琐的引用

/// <summary>
        /// 由DataTable导出Excel
       /// </summary>
       /// <param name="p"></param>
       /// <param name="dt"></param>
       /// <param name="fileName"></param>
        /// <param name="b"> true为datatable列名  false为自定义列名</param>
       /// <param name="colHeaders"> 自定义列名 已|分割</param>
        public static void DataTableToExcel(Page p, DataTable dt, string fileName,bool b, string colHeaders)
        {
            HttpResponse resp;
            resp = p.Response;
            resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            resp.AppendHeader("Content-Disposition", "attachment;filename=" +  HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
            string  ls_item = "";
            int cl = dt.Columns.Count;
            ////定义表对象与行对象,同时用DataSet对其值进行初始化
            //DataTable dt = ds.Tables[0];
            DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
            int i = 0;

            //取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符

            //取datatable里的列名
            if (b)
            {
                for (i = 0; i < cl; i++)
                {
                    if (i == (cl - 1))//最后一列,加n
                    {
                        colHeaders += dt.Columns[i].Caption.ToString() + "\n";
                    }
                    else
                    {
                        colHeaders += dt.Columns[i].Caption.ToString() + "\t";
                    }
                }
            }
            else
            {
                string[] colHeaderList = colHeaders.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                colHeaders = "";
                //自定义列名
                for (i = 0; i < colHeaderList.Length; i++)
                {
                    if (i == (colHeaderList.Length - 1))
                    {
                        colHeaders += colHeaderList[i] + "\n";
                    }
                    else
                    {
                        colHeaders += colHeaderList[i] + "\t";
                    }

                }
            }
            resp.Write(colHeaders);

            //逐行处理数据
            foreach (DataRow row in myRow)
            {

                for (i = 0; i < cl; i++)
                {
                    if (i == (cl - 1))
                    {
                        ls_item += row[i].ToString() + "\n";
                    }
                    else
                    {
                        ls_item += row[i].ToString() + "\t";
                    }

                }
                resp.Write(ls_item);
                ls_item = "";

            }
            resp.End();
        }

  

时间: 2024-09-29 22:07:53

DataTable 导出 excel , 可以自定义列名,没有繁琐的引用的相关文章

Excel导入DataTable兼容2003-2012(请细心查看注释)以及 DataTable导出Excel(导出格式2003.xls)注释:需要引用NPOI

1.#region Excel导入DataTable兼容2003-2012(请细心查看注释)/// <summary> /// 读取Excel文件到DataSet中/// 注释1:2012导出如报错“ System.InvalidOperationException: 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序.”解决:下载2007 Office system 驱动程序:数据连接组件安装http://download.microsoft.com/downl

C# Datatable导出Excel方法

C# 导出Excel方法  先引用下System.IO;System.data; 具体函数如下: 1 public static bool ExportCSV(DataTable dt, string fileNmae) 2 { 3 bool Msg = false; 4 string con = ""; 5 foreach (DataColumn dc in dt.Columns) 6 { 7 con += dc.ColumnName + ","; 8 } 9 c

【转】C# DataTable 导出 Excel 进阶 多行表头、合并单元格、中文文件名乱码

本文原创地址:http://blog.csdn.net/ranbolwb/article/details/8083983 ,转载请保留本行. 本例子是上一篇 DataTable 导出 Excel 的进阶,除了上一篇提到的处理乱码问题,本例还添加了处理多行表头.合并单元格的功能及处理中文文件名乱码问题,应该可以满足日常开发的需要了. 废话不多说了,直接上代码: [C#] 可以写单独类 1 using System; 2 using System.Collections.Generic; 3 usi

asp.net DataTable导出 excel的方法记录(第三方)

官网:http://npoi.codeplex.com/ 简单应用,主要是可以实现我们想要的简单效果,呵呵 需要引入dll,可以在官网下载,也可在下面下载 C#代码   protected void getExcel(DataTable dt) { NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(); NPOI.SS.UserModel.Sheet sheet = book.CreateSh

C#中datatable导出excel(三种方法)

方法一:(拷贝直接可以使用,适合大批量资料, 上万笔)Microsoft.Office.Interop.Excel.Application appexcel = new Microsoft.Office.Interop.Excel.Application();SaveFileDialog savefiledialog = new SaveFileDialog();System.Reflection.Missing miss = System.Reflection.Missing.Value;ap

C#导出EXCEL(DataTable导出EXCEL)

using System; using System.Collections.Generic; using System.Text; using System.Data; using System.IO; using System.Web; using Microsoft.Office.Interop.Excel; using System.Reflection; /*  * 开发人员:Hisen  * 时间:2008年11月24日  * 功能:将数据导出Excel  *  */ namespa

DataTable导出Excel

string fileName = "出勤明细" + DateTime.Now.ToString("yyyyMMdd"); //导出成Excel var Result = officeHp.DtToExcel(attendDt, "XXX", new string[] { "序号", "班级名称", "学生姓名", "学生学号", "手机号", &

DataTable 更改在有数据列的类型方法+DataTable 导出excel功能

/// <summary> /// 导出功能 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btn_export_Click(object sender, EventArgs e) { try { string strSql = CreateStrWhere

DataTable ---导出Excel

//mscorlib.dll, v4.0.0.0&&Microsoft.Office.Interop.Excel.dll, v14.0.0.0 /// <summary> /// 导出Excel /// </summary> /// <param name="dt_data">要导出的数据表</param> public void ExcelPort(DataTable dt_data) { try { //表格控件对象(