博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ashx导出dataTable为Excel
阅读量:4640 次
发布时间:2019-06-09

本文共 2750 字,大约阅读时间需要 9 分钟。

一,datatable导出Excel,用户可以选择路径,方法如下:

///     /// DataTable导出到Excel    ///     /// DataTable类型的数据源    /// 文件名    /// httpcontext    public void CreateExcel(DataTable dt, string FileName, HttpContext httpContext)    {        httpContext.Response.Clear();        httpContext.Response.Charset = "UTF-8";        httpContext.Response.Buffer = true;        httpContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");        httpContext.Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls\"");        httpContext.Response.ContentType = "application/ms-excel";        string colHeaders = string.Empty;        string ls_item = string.Empty;        DataRow[] myRow = dt.Select();        int i = 0;        int cl = dt.Columns.Count;        for (int j = 0; j < dt.Columns.Count; j++)        {            ls_item += dt.Columns[j].ColumnName + "\t"; //栏位:自动跳到下一单元格        }        ls_item = ls_item.Substring(0, ls_item.Length - 1) + "\n";        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";                }            }            httpContext.Response.Output.Write(ls_item);            ls_item = string.Empty;        }        httpContext.Response.Output.Flush();        httpContext.Response.End();    }

前端页面调用方法如下:

二,datatable导出Excel,保存到服务器上。方法如下:

///     /// DataTable导出到Excel    ///     /// DataTable类型的数据源    /// 需要导出的文件路径    public void dataTableToCsv(DataTable table, string file)    {        string title = "";        FileStream fs = new FileStream(file, FileMode.OpenOrCreate);        StreamWriter sw = new StreamWriter(new BufferedStream(fs), System.Text.Encoding.Default);        for (int i = 0; i < table.Columns.Count; i++)        {            title += table.Columns[i].ColumnName + "\t"; //栏位:自动跳到下一单元格        }        title = title.Substring(0, title.Length - 1) + "\n";        sw.Write(title);        foreach (DataRow row in table.Rows)        {            string line = "";            for (int i = 0; i < table.Columns.Count; i++)            {                line += row[i].ToString().Trim() + "\t"; //内容:自动跳到下一单元格            }            line = line.Substring(0, line.Length - 1) + "\n";            sw.Write(line);        }        sw.Close();        fs.Close();    }

前端调用方法:

导出Excel     function Import() {         $.post("Import.ashx", {}, function (data) {             alert("导出成功");         });     }

  

 

转载于:https://www.cnblogs.com/Angel-szl/p/10405538.html

你可能感兴趣的文章
整理chinaUnix上【你职业生涯中最难忘的误操作】
查看>>
iOS - 事件处理全过程(补充)
查看>>
js基本概述
查看>>
5天学会fx-5800计算器测量编程(二) fx-5800函数学习
查看>>
Android 开发之 ---- bootloader (LK)
查看>>
android获取周围AP信息(下)
查看>>
linux 网络设备驱动
查看>>
使用 JDBC 驱动程序
查看>>
transform 属相拉伸变形
查看>>
用USBasp下载程序
查看>>
【数据库】oracle基本操作
查看>>
16.2.2 Space Needed for keys
查看>>
Codeforces Round #270(利用prim算法)
查看>>
选择排序
查看>>
怎样设计接口?
查看>>
Rabbitmq 加入用户訪控制台(guest无法登陆控制台问题)
查看>>
数据挖掘十大经典算法
查看>>
MDI窗体
查看>>
两个有序数组中找中位数或者第K大的元素
查看>>
使用 SP_OAXXX 创建文件夹,注意区别于 xp_cmdshell --mkdir xxx
查看>>