zoukankan      html  css  js  c++  java
  • asp.net(C#)中将DataTable导出Execl、Word、Xml

        /// <summary>
        /// 将DT转换为Execl的方法
        /// </summary>
        /// <param name="dt">需要导出的DT
        /// <param name="page">页面
        /// <param name="fileName">文件名
        public void ToExecl(DataTable dt, Page page, string fileName)
        {
            HttpResponse response = page.Response;
            response.Clear();
            response.ContentType = "application/x-excel";
            response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls");
            StringBuilder sB = new StringBuilder();
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                sB.Append(dt.Columns[j].Caption + "\t");
            }
            sB.Append("\n");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int k = 0; k < dt.Columns.Count; k++)
                {
                    sB.Append("=\"" + dt.Rows[i][k].ToString() + "\"\t"); //解决导出的单元格以科学计数法显示的问题
                }
                sB.Append("\n");
            }
            response.Write(sB.ToString());
            response.End();
        }
    

    public void ToWord(DataTable dt, Page page, string filName)  
       {  
           HttpResponse response = page.Response;  
           response.Clear();  
           response.ContentType = "application/msword";  
           response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");  
           response.AddHeader("Content-Disposition","attachment:filename="+System.Web.HttpUtility.UrlEncode(filName,System.Text.Encoding.UTF8)+".doc");  
           StringBuilder sBuilder = new StringBuilder();  
           for (int i = 0; i < dt.Rows.Count; i++)  
           {  
               sBuilder.Append(dt.Rows[i][1].ToString()+"\n");  
           }  
           response.Write(sBuilder.ToString());  
           response.End();  
       }  

    public void ToXML(DataTable dt, Page page, string filename)  
    {  
        HttpResponse response = page.Response;  
        //DataSet ds = new DataSet();  
        response.Clear();  
        response.ContentType = "application/x-excel";  
        response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");  
        response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(filename,System.Text.Encoding.UTF8) + ".xls");  
        System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding();  
        System.Xml.XmlTextWriter xw = new XmlTextWriter(response.OutputStream, utf8);  
        xw.Formatting = Formatting.Indented;  
        xw.Indentation = 4;  
        xw.IndentChar = ' ';  
        dt.TableName = "dd";  
        dt.WriteXml(xw);  
        dt = null;  
        GC.Collect();  
        xw.Flush();  
        xw.Close();  
        response.End();  
    }  

  • 相关阅读:
    ORA-30567: name already used by an existing
    vue router 需要go(-2)才能返回前一页
    MVC理解
    细说业务逻辑(后篇)
    细说业务逻辑(前篇)
    Python学习笔记-风变编程
    Python3 基础语法最常⻅报错类型&示意
    删除我的电脑/此电脑里的多余图标(坚果云、百度网盘、腾讯XX、WPS)
    vue 父组件传递方法 :和@的区别
    最全 Neo4j 可视化图形数据库的工具!
  • 原文地址:https://www.cnblogs.com/smartsmile/p/6234381.html
Copyright © 2011-2022 走看看