Web 中将DataSet的内容下载到本地EXCEL格式文件

/// <summary>
        
/// type=="1"时导出为EXCEL格式文件;type=="2"时导出为XML格式文件
        
/// </summary>
        
/// <param name="ds"></param>
        
/// <param name="typeid"></param>
        
/// <param name="FileName"></param>

        public void CreateExcel(DataSet ds,string type,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(type=="1")
            
{
                
//取得数据表各列标题,各标题之间以 分割,最后一个列标题后加回车符
                for(i=0;i<dt.Columns.Count-1;i++)
                    colHeaders
+=dt.Columns[i].Caption.ToString()+" ";
                colHeaders 
+=dt.Columns[i].Caption.ToString() +" ";            
                
//向HTTP输出流中写入取得的数据信息
                resp.Write(colHeaders);    
                
//逐行处理数据        
                foreach(DataRow row in myRow)
                
{
                    
//在当前行中,逐列获得数据,数据之间以 分割,结束时加回车符
                    for(i=0;i<row.Table.Columns.Count-1;i++)
                        ls_item 
+=row[i].ToString() + " ";                    
                    ls_item 
+= row[i].ToString() +" ";
                    
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据                
                    resp.Write(ls_item);
                    ls_item
="";
                }

            }

            
else
            
{
                
if(type=="2")
                
{    
                    
//从DataSet中直接导出XML数据并且写到HTTP输出流中
                    resp.Write(ds.GetXml());
                }
                
            }

            
//写缓冲区中的数据到HTTP头文件中
            resp.End();


        }
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章