一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - .net客戶端導出Excel實現代碼及注意事項

.net客戶端導出Excel實現代碼及注意事項

2019-10-24 11:55asp.net技術網 ASP.NET教程

將DataGrid導出為Excel文件及導出dgData中0-3列的數據到excel文件中的優缺點介紹,感興趣的朋友可以了解下,希望本文對你有所幫助

客戶端導出excel 

復制代碼代碼如下:


/* 
* 將DataGrid導出為Excel文件 

* @param strTitle  文件標題 
* @param dgData    待導出的DataGrid 
* @param iStartCol  起始列序號 
* @param iEndCol  結束列序號 

* 創建人:  calvin 
* 創建日期: 2005-10-08 
* 修改人:   
* 修改日期:
**/ 
function DataGrid2Excel(strTitle, dgData, iStartCol, iEndCol) 

   // 定義Excel Applicaiton Object 
   var appExcel = null; 
   // 當前激活的工作簿 
   var currentWork = null; 
   var currentSheet = null; 
    
   try 
   { 
     // 初始化application 
     appExcel = new ActiveXObject("Excel.Application"); 
     appExcel.Visible = true; 
   } 
   catch(e) 
   { 
     window.alert("Please Install Excel First"); 
      
     return; 
   } 
    
   // 獲取當前激活的工作部 
   currentWork = appExcel.Workbooks.Add(); 
   currentSheet = currentWork.ActiveSheet; 
  
   // 填充excel內容 
   // 設置標題 
   currentSheet.Cells(1,1).Value = strTitle; 
   currentSheet.Cells(1,1).Value = dgData.innerText; 
   window.alert(dgData.innerHTML); 
  
   // 填充內容 
   for (var iRow = 0; iRow < dgData.rows.length - 1; iRow++) 
   { 
     // 顯示指定列的內容 
     for (var iCol = iStartCol; iCol <= iEndCol; iCol++) 
     { 
       currentSheet.Cells(iRow + 2, iCol + 1).Value =  
         dgData.rows[iRow].cells[iCol].innerText; 
     } 
   } 


/**************************************************************************/ 
/** 
* 導出dgData中0-3列的數據到excel文件中 
**/ 
function ToExcel() 

   DataGrid2Excel("使用javascript導出excel的例子", document.getElementsById("dgData"), 0, 3); 
} 這種方法的缺點是: 
  (1)了能夠在客戶端調用Excel.Application,需要把IE的安全級別設為“低”。 
  (2)與方法一相同,還是只能導出當前顯示在datagrid里面的數據,無法導出分頁的數據。 
  -------------------------------------------------------------------------------- 
  終極解決方案:將DataTable導出為excel 
  好,讓我們快點結束這篇無聊的post。一般來說,頁面上的datagrid是以查詢得到的一個DataTable為數據源的。那么為了把全部數據導入excel中,我們只要把DataTable數據源輸出為excel就可以了。 

復制代碼代碼如下:


/**//// <summary> 
    /// 把DataTable內容導出偉excel并返回客戶端 
    /// </summary> 
    /// <param name="dgData">待導出的DataTable</param> 
    /// 創 建 人:陳文凱 
    /// 創建日期:2005年10月08日 
    /// 修 改 人: 
    /// 修改日期: 
    public static void DataTable2Excel(System.Data.DataTable dtData) 
    { 
      System.Web.UI.WebControls.DataGrid dgExport = null; 
      // 當前對話 
      System.Web.HttpContext curContext = System.Web.HttpContext.Current; 
      // IO用于導出并返回excel文件 
      System.IO.StringWriter strWriter = null; 
      System.Web.UI.HtmlTextWriter htmlWriter = null; 
      if (dtData != null) 
      { 
        // 設置編碼和附件格式 
        curContext.Response.ContentType = "application/vnd.ms-excel"; 
        curContext.Response.ContentEncoding =System.Text.Encoding.UTF8; 
        curContext.Response.Charset = ""; 
         
        // 導出excel文件 
        strWriter = new System.IO.StringWriter(); 
        htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter); 
        // 為了解決dgData中可能進行了分頁的情況,需要重新定義一個無分頁的DataGrid 
        dgExport = new System.Web.UI.WebControls.DataGrid(); 
        dgExport.DataSource = dtData.DefaultView; 
        dgExport.AllowPaging = false; 
        dgExport.DataBind(); 
        // 返回客戶端 
        dgExport.RenderControl(htmlWriter);   
        curContext.Response.Write(strWriter.ToString()); 
        curContext.Response.End(); 
      } 
    } 


需要注意的是,導出excel之前要把datatable的列名更改為客戶要求的文字,就ok了。因為是從DataTable導出的,所以這種方法解決了分頁數據的問題,堪稱終極解決方案。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本免费久久久久久久网站 | 日韩精品在线一区二区 | 风间由美被义子中文字幕 | 男人懂得网站 | 亚洲AV无码乱码国产麻豆穿越 | 国产精品原创巨作无遮挡 | 动漫美女胸被狂揉扒开吃奶动态图 | 校草让我脱了内裤给全班看 | 亚洲欧洲综合 | 久久国产视频网 | 亚洲国产欧美目韩成人综合 | 任我行视频在线观看国语 | 国产欧美日韩视频在线观看一区二区 | 天堂樱桃bt在线www | 四虎影院在线免费观看视频 | 国产精品原创永久在线观看 | 美女张开下身让男人桶 | 12一14性水蜜桃 | 亚洲一区二区三区久久精品 | 欧美草逼网站 | 色狠狠色狠狠综合天天 | 欧美日韩精品一区二区三区视频 | 日韩精品中文字幕视频一区 | 国产成人精品999在线 | 母乳在线| 日韩欧美一区二区在线 | sao虎在线精品永久在线 | 日本免费播放 | 欧美一级高清片免费一级 | 免费理伦片在线观看全网站 | 日本人成动漫网站在线观看 | a人片| 国产成人精品在线观看 | 国产精品成人一区二区 | 日韩免费一级 | 国产一级片免费视频 | 西野翔全部作品在线观看 | 麻豆资源 | 色综合久久夜色精品国产 | 2020年国产精品午夜福利在线观看 | 亚洲 色 欧美 爱 视频 日韩 |