返回顶部

收藏

asp.net将DataSet中的数据导出Execl并提供下载

更多

asp.net将DataSet中的数据导出Execl并提供下载

那么把DataSet中的数据导出,也就是把DataSet中的表中的各行信息,以ms-excel的格式Response到http流,这样就OK了。说明:参数d s应为填充有数据表的DataSet,文件名是全名,包括后缀名,如execl2013.xls

public void CreateExcel(DataSet ds, 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 = "";

           //定义表对象与行对象,同时用DataSet对其值进行初始化 
           DataTable dt = ds.Tables[0];
           DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
           int i = 0;
           int cl = dt.Columns.Count;

           //取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符 
           for (i = 0; i < cl; i++)
           {
               if (i == (cl - 1))//最后一列,加n
               {
                   colHeaders += dt.Columns[i].Caption.ToString() + "n";
               }
               else
               {
                   colHeaders += dt.Columns[i].Caption.ToString() + "t";
               }

           }
           resp.Write(colHeaders);
           //向HTTP输出流中写入取得的数据信息 

           //逐行处理数据   
           foreach (DataRow row in myRow)
           {
               //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据     
               for (i = 0; i < cl; i++)
               {
                   if (i == (cl - 1))//最后一列,加n
                   {
                       ls_item += row[i].ToString() + "n";
                   }
                   else
                   {
                       ls_item += row[i].ToString() + "t";
                   }

               }
               resp.Write(ls_item);
               ls_item = "";

           }
           resp.End();
       }
//该片段来自于http://outofmemory.cn

标签:c#,.net,Excel

收藏

0人收藏

支持

0

反对

0

发表评论