• 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("导出成功");
             });
         }
    

      

  • 相关阅读:
    树系列学习--树的定义(-)
    idea live template高级知识, 进阶(给方法,类,js方法添加注释)(二)
    mysql 查询所有子节点的相关数据
    maven util 类 添加 service
    idea live template高级知识, 进阶(给方法,类,js方法添加注释)
    idea live template
    eclipse 好用的插件总结
    Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建
    Mac OS 的命令行 总结
    jsp,jquery,spring mvc 实现导出文件
  • 原文地址:https://www.cnblogs.com/Angel-szl/p/10405538.html
Copyright © 2020-2023  润新知