zoukankan      html  css  js  c++  java
  • dataset 导出 Excel

        protected void DtToExcel(DataSet ds, string tableName, bool containColumName,string fileName)   
        {
            if (ds == null || (!ds.Tables.Contains(tableName) && ds.Tables.Count < int.Parse(tableName)))
            {
                return ;
            }
            DataTable tb = !ds.Tables.Contains(tableName) ? ds.Tables[int.Parse(tableName)] : ds.Tables[tableName];

            StringBuilder strb = new StringBuilder();   
            strb.Append(" <html xmlns:o=\"urn:schemas-microsoft-com:office:office\"");   
            strb.Append("xmlns:x=\"urn:schemas-microsoft-com:office:excel\"");   
            strb.Append("xmlns=\"http://www.w3.org/TR/REC-html40/"");   
            strb.Append(" <head> <meta http-equiv='Content-Type' content='text/html; charset=gb2312'>");   
            strb.Append(" <style>");   
            strb.Append(".xl26");   
            strb.Append(" {mso-style-parent:style0;");   
            strb.Append(" font-family:\"宋体\", serif;");   
            strb.Append(" mso-font-charset:0;");   
            strb.Append(" mso-number-format:\"@\";}");   
            strb.Append(" </style>");   
            strb.Append(" <xml>");   
            strb.Append(" <x:ExcelWorkbook>");   
            strb.Append("  <x:ExcelWorksheets>");   
            strb.Append("  <x:ExcelWorksheet>");   
            strb.Append("    <x:Name>Sheet1 </x:Name>");  
            strb.Append("    <x:WorksheetOptions>");   
            strb.Append("    <x:DefaultRowHeight>285 </x:DefaultRowHeight>");   
            strb.Append("    <x:Selected/>");   
            strb.Append("    <x:Panes>");   
            strb.Append("      <x:Pane>");   
            strb.Append("      <x:Number>3 </x:Number>");   
            strb.Append("      <x:ActiveCol>1 </x:ActiveCol>");   
            strb.Append("      </x:Pane>");   
            strb.Append("    </x:Panes>");   
            strb.Append("    <x:ProtectContents>False </x:ProtectContents>");   
            strb.Append("    <x:ProtectObjects>False </x:ProtectObjects>");   
            strb.Append("    <x:ProtectScenarios>False </x:ProtectScenarios>");   
            strb.Append("    </x:WorksheetOptions>");   
            strb.Append("  </x:ExcelWorksheet>");   
            strb.Append("  <x:WindowHeight>6750 </x:WindowHeight>");   
            strb.Append("  <x:WindowWidth>10620 </x:WindowWidth>");   
            strb.Append("  <x:WindowTopX>480 </x:WindowTopX>");   
            strb.Append("  <x:WindowTopY>75 </x:WindowTopY>");   
            strb.Append("  <x:ProtectStructure>False </x:ProtectStructure>");   
            strb.Append("  <x:ProtectWindows>False </x:ProtectWindows>");   
            strb.Append(" </x:ExcelWorkbook>");   
            strb.Append(" </xml>");   
            strb.Append("");   
            strb.Append(" </head> <body> <table align=\"center\" style='border-collapse:collapse;table-layout:fixed'>");
            if (containColumName)
            {
                strb.Append("<tr>");
                //写列标题   
                int columncount = tb.Columns.Count;
                for (int columi = 0; columi < columncount; columi++)
                {
                    strb.Append(" <td> <b>" + tb.Columns[columi] + " </b> </td>");
                }

                strb.Append(" </tr>");   
            }
            //写数据   
            for (int i = 0; i < tb.Rows.Count; i++)   
            {   
                strb.Append(" <tr>");  
                for (int j = 0; j < tb.Columns.Count; j++)   
                {   
                    strb.Append(" <td class='xl26'>" + tb.Rows[i][j].ToString() + " </td>");   
                }   
                strb.Append(" </tr>");   
            }      
            strb.Append(" </body> </html>");   
            Response.Clear();   
            Response.Buffer = true;   
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(fileName));   
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文   
            Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。   
            this.EnableViewState = false;   
            Response.Write(strb);   
            Response.End();   
        }


    =============

     调用     DataSet ds = new DataSet();
               DataTable dt = new DataTable();
                DataColumn dc;
                DataRow dr;

                //---------------------添加字段----------------

                //建立字段1
                dc = new DataColumn();
                dc.DataType = System.Type.GetType("System.Int32");
                dc.ColumnName = "id";
                dc.AutoIncrement = true;//标识
                dc.AutoIncrementSeed = 1;//标识种子
                dc.AutoIncrementStep = 1;//标识递增量
                dt.Columns.Add(dc);
                //建立字段2
                dc = new DataColumn();
                dc.DataType = System.Type.GetType("System.String");
                dc.ColumnName = "sitename";
                dc.AllowDBNull = true;
                dt.Columns.Add(dc);
                //建立字段3
                dc = new DataColumn();
                dc.DataType = System.Type.GetType("System.String");
                dc.ColumnName = "url";
                dc.AllowDBNull = true;
                dt.Columns.Add(dc);
                //设置主键
                DataColumn[] newdc = new DataColumn[1];//可设置多个字段为主键
                newdc[0] = dt.Columns["id"];
                dt.PrimaryKey = newdc;

                //---------------------添加记录----------------

                //记录1
                dr = dt.NewRow();
                dr["sitename"] = "尚网";
                dr["url"] = "http://www.jjshang.com/";
                dt.Rows.Add(dr);
                //记录2
                dr = dt.NewRow();
                dr["sitename"] = "木子屋";
                dr["url"] = "http://www.mzwu.com/";
                dt.Rows.Add(dr);
                //记录3
                dr = dt.NewRow();
                dr["sitename"] = "网易";
                dr["url"] = "http://www.126.com/";
                dt.Rows.Add(dr);
                ds.Tables.Add(dt);
                ds.Tables[0].TableName = "HomePage";
                DtToExcel(ds,"HomePage",true, "好好学习.xls");

  • 相关阅读:
    POJ 2752 Seek the Name, Seek the Fame
    POJ 2406 Power Strings
    KMP 算法总结
    SGU 275 To xor or not to xor
    hihocoder 1196 高斯消元.二
    hihoCoder 1195 高斯消元.一
    UvaLive 5026 Building Roads
    HDU 2196 computer
    Notions of Flow Networks and Flows
    C/C++代码中的笔误
  • 原文地址:https://www.cnblogs.com/xianzuoqiaoqi/p/1576256.html
Copyright © 2011-2022 走看看