C#导出Exel

 

asp.net里导出excel表方法汇总 

 

1、由dataset生成 

 

 

 

 

2、使用微软的C++写的ACTIVEX控件:http://download.microsoft.com/download/OfficeXPDev/sample/1.0/WIN98MeXP/EN-US/Dsoframerctl.exe 

3、由datagrid生成: 

 

 

 

用法:ToExcel(datagrid1); 

 

 

4、这个用dataview ,代码好长 

 

 

 

----------------------------------------------------------------

 

 

 

SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); 
   SqlDataAdapter da=new SqlDataAdapter("select * from tb1",conn); 
   DataSet ds=new DataSet(); 
   da.Fill(ds,"table1"); 
   DataTable dt=ds.Tables["table1"]; 
   StringWriter sw=new StringWriter(); 
   sw.WriteLine("自动编号,姓名,年龄"); 
   foreach(DataRow dr in dt.Rows) 
   { 
    sw.WriteLine(dr["ID"]+","+dr["vName"]+","+dr["iAge"]); 
   } 
   sw.Close(); 
   Response.AddHeader("Content-Disposition", "attachment; filename=test.csv"); 
   Response.ContentType = "application/ms-excel"; 
   Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312"); 
   Response.Write(sw); 
   Response.End();

对方法一,二补充一点,如果你希望导出的是xls文件分隔符用\t就能了,不要用逗号

代码修改如下: 
sw.WriteLine("自动编号\t姓名\t年龄"); 
   foreach(DataRow dr in dt.Rows) 
   { 
    sw.WriteLine(dr["ID"]+"\t"+dr["vName"]+"\t"+dr["iAge"]); 
   } 
另外,修改输出的文件扩展名为xls即可。
 

---------------------------------项目实践--yx---1

------------2

 


--------------------------------群里人发 据说效率很高

   /// <summary>
        /// 把dset输入为html table
        /// </summary>
        /// <param name="ds">数据</param>
        /// <returns></returns>
        private static string ExportHtmTable(System.Data.DataSet dset)
        {


            System.Text.StringBuilder data = new System.Text.StringBuilder();
            data.Append("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">");
            data.Append("<head>");
            data.Append("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=GB2312\"/>");
            data.Append("<!--[if gte mso 9]><xml>");
            data.Append("<x:ExcelWorkbook>");
            data.Append("<x:ExcelWorksheets>");
            data.Append("<x:ExcelWorksheet>");
            data.Append("<x:Name>模板</x:Name>");
            data.Append("<x:WorksheetOptions>");
            data.Append("<x:Print>");
            data.Append("<x:ValidPrinterInfo />");
            data.Append("</x:Print>");
            data.Append("</x:WorksheetOptions>");
            data.Append("</x:ExcelWorksheet>");
            data.Append("</x:ExcelWorksheets>");
            data.Append("</x:ExcelWorkbook>");
            data.Append("</xml>");
            data.Append("<![endif]-->");
            data.Append("</head>");
            data.Append("<body>");
            //data = ds.DataSetName + "\n";


            foreach (System.Data.DataTable tb in dset.Tables)
            {
                //data += tb.TableName + "\n";
                data.Append("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\">");
                //写出列名
                data.Append("<tr style=\"font-weight: bold; white-space: nowrap;\">");


                foreach (System.Data.DataColumn column in tb.Columns)
                {
                    data.Append("<td>" + column.ColumnName + "</td>");
                }
                data.Append("</tr>");


                //写出数据


                foreach (System.Data.DataRow row in tb.Rows)
                {
                    data.Append("<tr>");
                    foreach (System.Data.DataColumn column in tb.Columns)
                    {
                        data.Append("<td>" + row[column].ToString() + "</td>");
                    }
                    data.Append("</tr>");
                }
                data.Append("</table>");
            }


            data.Append("</body>");
            data.Append("</html>");
            return data.ToString();
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值