2010-04-02 45 views
3

在C#ASP.NET 3.5 Web應用程序,我需要多個數據表(或數據集)出口與多個工作表Excel 2007文件,然後向用戶提供'打開/保存'對話框,而不保存Web服務器上的Excel文件。出口數據集到Excel用多張工作表文件中的ASP.NET

我以前使用過Excel Interop。我一直在閱讀它的效率不高並且不是實現這一目標的最佳方法,還有更多方法可以實現它,其中2個是:1)將數據表中的數據轉換爲Excel可以理解的XML字符串2)使用OPEN XML SDK 2.0。

它看起來像開放的XML SDK 2.0是更好的,請讓我知道。還有其他方法可以做到嗎?我不想使用任何第三方工具。

如果我使用Open XML SDK,它會創建一個Excel文件,對不對?我不想將它保存在(Windows 2003)服務器硬盤驅動器上(我不想使用Server.MapPath,這些Excel文件是動態創建的,並且它們在服務器上不需要,一旦客戶端獲得它們) 。我直接想要提示用戶打開/保存它。我知道如何在使用「XML字符串」方法時執行此操作。

請幫忙。 謝謝。

回答

1

絕對需要Excel 2007支持嗎?

我們已經使用了NPOI取得了巨大成功,它支持所有我們想要的功能(多個工作表,格式,公式)。它也很穩定。

它產生的文件是在Excel 2003,雖然格式,因此它們是二進制,而不是OOXML。

這個問題已經被問過,看到here獲得更好的討論。

1

您可以輕鬆地將XML響應作爲XML Excel文件傳輸給用戶。

任何網頁:

<a href="report.aspx" target="_blank"> Open excel Report</a> 

Report.aspx:

Response.Clear(); 
Response.ContentType = "application/vnd.ms-excel"; 
Response.AddHeader("Content-Disposition" 
        , "attachment;filename=" & _fileName & ".xml"); 
Response.Write("<?xml version=""1.0""?>"); 
Response.Write(excelXML); 
0

我也曾經碰到過類似的要求,以數據集導出到Excel中。我用this open source library。它基於Open XML標準,不使用Office Interop。它符合我的要求。但是,我的要求是基本的。所以,檢查它是否滿足您的要求。

相關問題