zoukankan      html  css  js  c++  java
  • ashx导出dataTable为Excel

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

     /// <summary>
        /// DataTable导出到Excel
        /// </summary>
        /// <param name="dt">DataTable类型的数据源</param>
        /// <param name="FileName">文件名</param>
        /// <param name="httpContext">httpcontext</param>
        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 + "	"; //栏位:自动跳到下一单元格
            }
            ls_item = ls_item.Substring(0, ls_item.Length - 1) + "
    ";
            foreach (DataRow row in myRow)
            {
                for (i = 0; i < cl; i++)
                {
                    if (i == (cl - 1))
                    {
                        ls_item += row[i].ToString() + "
    ";
                    }
                    else
                    {
                        ls_item += row[i].ToString() + "	";
                    }
                }
                httpContext.Response.Output.Write(ls_item);
                ls_item = string.Empty;
            }
            httpContext.Response.Output.Flush();
            httpContext.Response.End();
        }

    前端页面调用方法如下:

                    <a  href="Import.ashx" >导出Excel</a>

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

     /// <summary>
        /// DataTable导出到Excel
        /// </summary>
        /// <param name="table">DataTable类型的数据源</param>
        /// <param name="file">需要导出的文件路径</param>
        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 + "	"; //栏位:自动跳到下一单元格
            }
            title = title.Substring(0, title.Length - 1) + "
    ";
            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() + "	"; //内容:自动跳到下一单元格
                }
                line = line.Substring(0, line.Length - 1) + "
    ";
                sw.Write(line);
            }
            sw.Close();
            fs.Close();
        }
    

    前端调用方法:

                         <a onclick="Import()">导出Excel</a>
         function Import() {
             $.post("Import.ashx", {}, function (data) {
                 alert("导出成功");
             });
         }
    

      

  • 相关阅读:
    阅读笔记二
    阅读笔记一
    2017年秋季个人阅读计划
    问题账户需求分析
    阅读笔记(一)《软件需求与分析》需要掌握的内容
    我们应该创新吗?
    让你的英文文章看起来高级的一些词汇
    让你的英文文章看起来高级的一些词汇
    Windows的任务管理器怎么显示进程的图标
    如何和不好相处的人一起工作
  • 原文地址:https://www.cnblogs.com/Angel-szl/p/10405538.html
Copyright © 2011-2022 走看看