2011-06-08 84 views
0

我需要導出HTMLTABLE爲XLS,使用jquery時無法將htmltable導出爲xls文件?

我有大量使用jQuery和有一個鏈接頁面觸發一個jQuery後

var downloadType = document.getElementById("downloadType");   
var downloadTypeValue = downloadType.options[downloadType.selectedIndex].value; 
var data = { 
    exportFormat: downloadTypeValue    
}; 
$.post("ajax.aspx",data); 

,你可以看到,該鏈接後的文件格式爲頁面命名ajax.aspx它運行下面的代碼

HtmlTable tableToExport = (HtmlTable)Session["tblReportResult"]; 
StringWriter stringWrite = new StringWriter(); 
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 
tableToExport.RenderControl(htmlWrite); 
Response.Clear(); 
Response.AddHeader("content-disposition", "attachment;filename=wateva.xls"); 
Response.ContentType = "application/ms-excel"; 
Response.Write(stringWrite.ToString()); 
Response.End(); 

所以從會話檢索HTMLTABLE控制和使用Response.Write生成文件,但是,它不工作...任何想法嗎?

回答

0

我結束了使用iframe來返回的偉大工程的文件!

+0

如果您發佈完整的答案,它可以幫助其他人...... – tostasqb 2013-08-07 17:12:30

0

jQuery是JavaScript的是前端。如果你正在傳遞到後端是一種格式,有可以對什麼是僅保存在前端,後端出口沒有可能的方式。

+0

要導出的數據存儲在會話[「tblReportResult」]我只需要用戶選擇他們想要的格式。 – walter 2011-06-08 02:00:57

+0

所以你試圖從AJAX請求返回一個文件?傳遞'exportFormat'有什麼意義,我沒有看到你使用它。 – 2011-06-08 02:16:35

+0

感謝重放,exportFormat可以被評價爲CSV,XLS和DOCX,鏈接,用戶點擊傳遞值,這樣我可以導出所要求的格式文件。它沒有被使用,因爲atm我只是在xls上進行實驗,你可以在Response.AddHeader(「content-disposition」,「attachment; filename = wateva.xls」)中看到。 – walter 2011-06-08 02:26:44