2013-03-14 113 views
0

我從我的gridview中導出excel表格,我用虛擬數據綁定。我使用的是出口Excel的jquery mehod,但它不起作用。我在jQuery中有以下功能。從asp.net中的gridview導出excel表格

<script type="text/javascript"> 
    function exportToExcel() 
    { 
     var oExcel = new ActiveXObject("Excel.Application"); 
     var oBook = oExcel.Workbooks.Add; 
     var oSheet = oBook.Worksheets(1); 
     var detailsTable = document.getElementById('<%= gvSearchResult.ClientID %>'); 
     alert(detailsTable); 
     for (var y=0;y<detailsTable.rows.length;y++) 
     // detailsTable is the table where the content to be exported is 
     { 
      for (var x=0;x<detailsTable.rows(y).cells.length;x++) 
      { 
       var cellData = detailsTable.rows(y).cells(x).innerText; 
       var cellHTML = detailsTable.rows(y).cells(x).innerHTML; 

       if (cellHTML.toLowerCase().indexOf("<table") == -1 && cellHTML.toLowerCase().indexOf("schedule") == -1) // check to omit page numbers 
       { 
        oSheet.Cells(y+1,x+1) = cellData; 
       } 
      } 
     } 
     oExcel.Visible = true; 
     oExcel.UserControl = true; 
    } 

我使用上述功能。我有一個按鈕點擊我想導出Excel表。按鈕如下:

<asp:Button runat="server" ID="btnClickXport" Text="Xport2Xcel" OnClientClick="exportToExcel()" /> 

它不工作。我測試實際上新的ActiveXobject(「Excel.Application」);在開始導致問題。我需要做什麼?

+0

這是什麼意思**「我從我的gridview導出excel工作表」**?你試圖出口gridview到Excel或什麼? – coder 2013-03-14 06:52:36

+0

查看使用OpenXML和[ClosedXML](http://closedxml.codeplex.com/)。 – nunespascal 2013-03-14 07:03:06

+0

你檢查了答案嗎? – Arshad 2013-03-14 07:19:36

回答

0

你可以試試下面的代碼來導出datagridview擅長:

protected void ExportResultToExcel(string fileName) 
    { 
     Response.Clear(); 
     Response.Buffer = true; 
     Response.ContentType = "application/vnd.ms-excel"; 
     Response.AddHeader("content-disposition", "attachment;filename=" + fileName); 
     Response.Charset = ""; 
     this.EnableViewState = false; 

     System.IO.StringWriter sw = new System.IO.StringWriter(); 
     System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw); 

     gvSearchResult.RenderControl(htw); 

     Response.Write(sw.ToString()); 
     Response.End(); 
    } 
+0

他不想要C#代碼。 – 2013-03-14 07:23:59

+0

@Shekhar正好是 – 2013-03-16 07:48:29

+0

你可以在'UpdatePanel'中添加它。 – Arshad 2013-03-16 07:50:02

1

我已經使用這個jQuery插件HTML表格導出爲CSV: https://code.google.com/p/jqtable2csv/

用法示例:

$("#my-table").table2csv({ 
    callback: function (csv, name) { 
     jQuery.post(
      url, encodeURIComponent(csv), 
      function (data) { 
       location.href = "/file?csv=" + csv + "&name=" + name; 
      } 
     ); 
}); 

這就是說...如果你使用ASP.Net你可能想要處理這個服務器端,因爲有一些Java挑戰在舊版瀏覽器上啓動下載的腳本。

+0

他正在使用ASP.NET服務器控件--GridView不是jQUery插件jqtable。但是知道這是一件好事! – Prashant 2013-03-19 06:52:05