您的位置:首页 > 编程语言 > C#

C#数据导出到Excel文件

2016-07-01 14:08 381 查看
#region 数据导出为EXCEL //转载请注明来自 http://www.shang11.com
        public static void CreateExcel(DataTable dt, string fileName)

        {

            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=utf-8'>");

            strb.Append(" <style>");

            strb.Append(".xl26");

            strb.Append(" {mso-style-parent:style0;");

            strb.Append(" font-family:\"Times New Roman\", 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>" + fileName + "</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 (dt.Rows.Count > 0)

            {

                strb.Append("<tr>");

                //写列标题   

                int columncount = dt.Columns.Count;

                for (int columi = 0; columi < columncount; columi++)

                {

                    strb.Append(" <td style='text-align:center;'><b>" + ColumnName(dt.Columns[columi].ToString()) + "</b></td>");

                }

                strb.Append(" </tr>");

                //写数据   

                for (int i = 0; i < dt.Rows.Count; i++)

                {

                    strb.Append(" <tr>");

                    for (int j = 0; j < dt.Columns.Count; j++)

                    {

                        strb.Append(" <td class='xl26'>" + dt.Rows[i][j].ToString() + "</td>");

                    }

                    strb.Append(" </tr>");

                }

            }

            strb.Append("</table> </body> </html>");

            HttpContext.Current.Response.Clear();

            HttpContext.Current.Response.Buffer = true;

            HttpContext.Current.Response.Charset = "utf-8";

            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ".xls");

            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;// 

            HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 

            //HttpContext.Current.p.EnableViewState = false;

            HttpContext.Current.Response.Write(strb);

            HttpContext.Current.Response.End();

        }

        #endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息