2012-04-20 93 views
-1

我通常使用Response.Write將我的報告導出到Excel文件。ASP.Net在Excel中創建多個工作表Response.Write

E.g

Response.Clear(); 
Response.Buffer = true; 
Response.AddHeader("content-disposition", "attachment; filename=MyFile.xls"); 
Response.ContentType = "application/vnd.ms-excel"; 
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=UTF-8>"); 
Response.Write("<table>"); 
Response.Write("<tr>"); 
Response.Write("<td>"); 
Response.Write("Hello"); 
Response.Write("</td>"); 
Response.Write("</tr>"); 
Response.Write("</table>"); 
Response.End(); 

現在我要導出一個excel多個表格文件。 我該如何做到這一點?

+1

那如何代碼涉及到創建一個Excel文件? – Widor 2012-04-20 10:23:59

+0

我在用戶列表的網頁上有一個表格。每個用戶都有他/她自己的檔案(姓名,年齡等)。所以我想爲我的表中顯示的用戶導出配置文件。所以這意味着如果我有用戶(A,B,C),那麼在我導出的Excel文件中,我將會有工作表(A,B,C),並且每個工作表都包含特定用戶的配置文件。 – 2012-04-20 11:03:32

+0

你應該寫這個問題,你的代碼不會導出爲ex​​cel,它會寫HTML表並在請求中發送錯誤的內容類型。 – 2012-04-20 11:28:24

回答

2

從技術上講,這不會導出爲ex​​cel,但是您發送錯誤標題的html來欺騙瀏覽器使用excel打開此內容。

更好地使用NPOI(xls)或/和EPPlus(xlsx)並完全控制您的excel導出,然後您可以創建新的工作表和更多。

更新:在這個蘇答案你可以看到的例子,返回從數據表中創建Excel文件ashx的處理程序:

C# create/modify/read .xlsx files

+1

好的,謝謝。我只希望這個庫不會讓我的網絡服務器變慢,因爲我已經嘗試了微軟的API庫(Microsoft.Office.Interop.Excel),我聽到很多人批評它,說它會減慢Web服務器的速度。 – 2012-04-20 11:46:53

+0

他們是對的,Interop在服務器上的表現甚至不被MS支持,這些都是純粹的c#庫,而且速度相當快。 – 2012-04-20 11:53:17

+0

好的。我喜歡你的第一個解釋(「欺騙瀏覽器」)很清楚。非常感謝。 – 2012-04-20 11:59:46

相關問題