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

将Dataset数据导出到Excel中(ASP.NET/C#)

2010-11-18 17:12 691 查看
将Dataset数据导出到Excel中(ASP.NET/C#)

 

http://www.cnblogs.com/nikytwo/archive/2008/05/28/1209105.html

 

     //由dataset导出Excel        


        public void CreateExcel(DataSet ds,string typeid,string FileName) 




        




            HttpResponse resp; 


            resp = Page.Response; 


            resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); 


            resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName); 


            string colHeaders= "", ls_item=""; 


            int i=0; 




            //定义表对象和行对像,同时用DataSet对其值进行初始化 


            DataTable dt=ds.Tables[0]; 


            DataRow[] myRow=dt.Select(""); 


            // typeid=="1"时导出为EXCEL格式文档;typeid=="2"时导出为XML格式文档 


            if(typeid=="1") 




            




                //取得数据表各列标题,各标题之间以/t分割,最后一个列标题后加回车符 


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




                

{                    


                    if(i==dt.Columns.Count-1)




                    

{


                        colHeaders +=dt.Columns[i].Caption.ToString() +"/n";    


                    }


                    else




                    

{


                        colHeaders+=dt.Columns[i].Caption.ToString()+"/t"; 


                    }


                }


                //向HTTP输出流中写入取得的数据信息 


                resp.Write(colHeaders); 


                //逐行处理数据 


                foreach(DataRow row in myRow) 




                




                    //在当前行中,逐列获得数据,数据之间以/t分割,结束时加回车符/n 


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




                    

{


                        


                        if(i==dt.Columns.Count-1)




                        

{


                            ls_item += row[i].ToString() +"/n"; 


                        }


                        else




                        

{


                            ls_item +=row[i].ToString() + "/t";  


                        }


                    }


                    //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据 


                    resp.Write(ls_item); 


                    ls_item=""; 


                } 


            } 


            else 




            




                if(typeid=="2") 




                




                    //从DataSet中直接导出XML数据并且写到HTTP输出流中 


                    resp.Write(ds.GetXml()); 


                } 


            } 


            //写缓冲区中的数据到HTTP头文档中 


            resp.End(); 


        } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dataset excel 文档 xml