2011-09-08 69 views
0

將我的表格導出爲Excel文件格式時出現大問題。asp.net - 導出表

首先我創建的代碼在服務器上運行,並允許我將數據導出到Excel。由於我的表是從數據庫動態創建的,因此該階段沒有任何內部表,因此沒有數據導出。

我的第二種方法是在客戶端使用javascript或稱爲「DataTables」(www.datatables.net)的非常好的jQuery插件來定位最終的編譯表。兩次嘗試失敗。 Javascript似乎對我來說很複雜,再加上它在Firefox中運行有困難,另一方面插件需要一個非常具體的表結構,這恐怕是我無法提供的。

因此,我的一個新想法是:在編譯並在服務器上構建它之後,在將其發送到瀏覽器之前抓取頁面。定位表格並使用服務器上的功能採集數據。最後將數據導出到Excel,並將頁面發送到瀏覽器。現在。可能嗎?如果是,那麼如何?

我是編程世界的初學者,所以任何建設性的建議和批評將不勝感激。我不介意任何硬代碼示例;)

回答

0

您需要做的是將您的查詢結果導出到.CSV文件中。在Excel中打開CSV文件完全沒有問題。 http://wiki.asp.net/page.aspx/401/export-to-csv-file/這會向您顯示如何導出爲.CSV格式。

+0

謝謝回答。我會研究這個話題。不幸的是,我的表格是使用兩個循環相互構建的,最重要的是我有一個查詢來檢查每個單元格的值。由於這是一個相當複雜的過程,因此這種方法可能相當困難。再次感謝您的幫助 – Bartosz

0

你會在這裏得到很多建議,而不是答案。我的建議是嘗試jQuery插件:table2csv以創建更通用的文件格式。但有一些方法可以定位一個實際的Excel格式,如this項目。

+0

這個table2csv看起來很有希望!!!希望它能完成這項工作。如果我能成功,我會寫。乾杯。 Bartosz – Bartosz

+0

您的代碼運行得非常好,但在流程的最後還有一個我需要的文件。有沒有可能修改你的代碼以使它能夠以.csv擴展名保存文件?問候。 Bartosz – Bartosz

+0

這實際上並不是我的代碼,但我希望我可以信賴它。你在嘗試選項3.1嗎?如果按照該方法嘗試,它應該嘗試保存爲.csv。 –

1

你可以嘗試做這樣的事情:

protected void btnExport_Click(object sender, EventArgs e) 
{  
    Response.Clear(); 
    Response.Buffer = true; 
    Response.ContentType = "application/vnd.ms-excel"; 
    Response.Charset = ""; 

    System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); 
    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); 

    //if you're exporting a table put the table in a placeholder and render 
    //the placeholder to the text writer here 
    grdJobs.RenderControl(oHtmlTextWriter); 

    Response.Write(oStringWriter.ToString()); 
    Response.End(); 
} 
0

如果你想出口到實際XLS或XLSX,而不是僅僅CSV或東西,只是「打開」,在Excel中,有第三方工具可以幫助你。一個例子在這裏:

http://www.officewriter.com