zoukankan      html  css  js  c++  java
  • asp.net后台导出excel的方法:使用response导出excel

    完整程序:

    一:调用方法:CreateExcel(newDt, "application/ms-excel", "FileName");

    /// <summary>
        /// DataTable中的数据导出到Excel并下载
        /// </summary>
        /// <param name="dt">要导出的DataTable</param>
        /// <param name="FileType">类型</param>
        /// <param name="FileName">Excel的文件名</param>
        public void CreateExcel(DataTable dt, string FileType, string FileName)
        {
            Response.Clear();
            Response.Charset = "UTF-8";
            Response.Buffer = true;
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            Response.AppendHeader("Content-Disposition", "attachment;filename="" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls"");
            Response.ContentType = FileType;
    
            string colHeaders = string.Empty;
            string ls_item = string.Empty;
            DataRow[] myRow = dt.Select();
            int i = 0;
            int cl = dt.Columns.Count;
            
            //写入方法一
            //写入标题等信息
            ls_item +=  Label2.Text  + "			
    
    ";
            Response.Output.Write(ls_item);
            ls_item = string.Empty;
            ls_item +=  txtStart.Text + "			";
            ls_item +=  DropEnterprise.SelectedItem  + "
    ";
            Response.Output.Write(ls_item);
            ls_item = string.Empty;
            //写入段标题
            for (i = 0; i < cl; i++)
            {
                if (i == (cl - 1))
                {
                    ls_item += dt.Columns[i].ColumnName.ToString() + "
    ";
                }
                else
                {
                    ls_item += dt.Columns[i].ColumnName.ToString() + "	";
                }
            }
            Response.Output.Write(ls_item);
            ls_item = string.Empty;
    
            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() + "	";
                    }
                }
                //一行一行的写入
                Response.Output.Write(ls_item);
                ls_item = string.Empty;
            }
    
            Response.Output.Flush();
            Response.End();
        }
  • 相关阅读:
    设计模式学习笔记-观察者模式
    谈C#中的Delegate
    EF 增删改查 泛型方法、类
    什么是表达式树,它与表达式、委托有什么区别?
    查询出各个学科的前3名的同学信息的Sql
    row_number() OVER(PARTITION BY)函数介绍
    Asp.net WebApi 项目示例(增删改查)
    ASP.NET WebAPI从入门
    .net中的Queue和Stack
    Replication--数据库镜像阻塞复制日志读取器的解决的办法
  • 原文地址:https://www.cnblogs.com/sizhizhiyue/p/4825575.html
Copyright © 2011-2022 走看看