博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
判断整除
查看>>
[saiku] 登陆/选择cube 时发生了什么
查看>>
iOS 知识点
查看>>
redis引发的一系列生产问题
查看>>
ubuntu16.04 自建源
查看>>
C#基础知识
查看>>
Javascript之DOM的三大节点及部分用法
查看>>
鼠标滑动、文本添加(倒计时)
查看>>
大四了,转换到工作模式,总结一下自己
查看>>
matlab中的常用的函数——在稀疏表示中学习到的
查看>>
swift 语法中容易出的问题
查看>>
jade和ejs两者的特点
查看>>
HDU 1872:稳定排序
查看>>
2017秋-软件工程第四次作业(3)-四则运算出题
查看>>
二进制 中 1 的 个数
查看>>
Poj 2092 Grandpa is Famous(基数排序)
查看>>
什么是Dojo?与Jquery宏观对比,结果如何?
查看>>
Symfony2学习笔记之HTTP Cache
查看>>
Symfony2学习笔记之事件分配器
查看>>
Xstream序列化实体
查看>>