ASP.Net如何發布便於安裝的帶Excel功能的網站?

現在有一個http://Asp.Net網站,裡面用到了導出Excel,在發布後,到其他電腦上總是要很複雜的部署才能用,請問有什麼方法能簡單點嗎?

總是有各種情況,比如可能安裝的非完全版Office,Office版本不對,Office操作許可權不足,等,這些情況,什麼辦法能解決嗎?

導出成*.cvs不行,因為Excel文件是有一個模板的。


這是一個常見的問題,但實際上是因為網上基本就沒有幾個人真正願意去研究一下,所以能搜到的解決方案不是餿的就是各種代碼一大抄。

簡單來說這個問題可以有兩大類解決方案:

第一類方案是利用OleDbProvider把Excel文件當做資料庫來操作。

個人推薦使用這個解決方案,對於導出簡單的Excel文件是非常簡便的。你只需要:

1、創建一個只包含表頭的Excel文件作為模板

2、在伺服器上安裝這個東西:

Microsoft Access 2010 資料庫引擎可再發行程序包

是的,只需要這個東西,根本不需要裝一個Office。

3、把你的模板複製一份到臨時目錄,準備寫數據。

4、根據你安裝的引擎配置好Excel的連接字元串,參考這裡:

http://www.connectionstrings.com/ace-oledb-12-0/

5、打開連接,直接把數據寫入到Excel文件

6、把寫好數據的Excel文件提供下載。

第二類方案即從無到有的創建一個Excel文件出來,可以分為幾種:

1、利用Excel的COM組件或者Excel自動化腳本等技術創建。

極其不推薦這個方案,因為這個做法需要在伺服器上安裝Excel。

2、NPOI

不推薦用這個工具,因為這個工具創建出來的也不是標準的Excel文檔,而且代碼之爛令人髮指。

3、HTML

直接用HTML格式創建Excel文檔,然後保存擴展名為xlsx,下載打開的時候,Excel會自動完成格式的轉換。

4、csv

缺點是幾乎沒有任何格式控制選項。

5、MHT

如果需要在Excel文件中嵌入圖片或者其他資源,則MHT是一個不錯的選擇,MHT本質上就是 HTML文件和資源的打包,所以下載後同樣需要Excel打開完成文檔格式轉換。


直接將整個table數據(可以自帶style)壓入一個.xls(excel後綴)的文件。打開的時候excel會自動幫你搞定,還帶樣式。

其他你看Ivony的了,很全面。


用npoi吧,這個庫脫離office框架的,而且速度快很多,不過唯一的缺點是無法寫入和讀取注釋,如果你不用這個功能,用起來還是還是很舒服的


推薦用EPPlus (http://epplus.codeplex.com/)

缺點是只支持Open Office Xml format (xlsx)格式


建議將你的應用程序部署到一台大家都能訪問到的伺服器上,在那台伺服器上安裝 Office 調試好給大伙兒用。

另外,開發上,現在可以用 Office Web App 的 API 了,不知道支不支持你要的模版導出功能,你自己研究一下 http://msdn.microsoft.com/en-us/library/e64de870-ce22-4331-92e7-76d35279bf91(Office.1501401)

這個好像是免費的。

另外,還可以試試 SpireDoc 的產品,他們對 Office 的支持做的不錯,不過是收費的,所以在購買之前先確定它確實提供你要的功能。


Open XML SDK就可以干這事吧?


推薦閱讀:

對於想學習MySQL高級查詢語句的人,有哪些優秀的圖書、網站推薦?
為什麼有些網站上漢語拼音字元高度不一致?該如何解決?
如何看待國內聚會網站?國外有 Meetup、Evite 或者 Facebook 中的 event,為什麼同類網站在中國非常少見?
社會學方面有哪些一流的研究、資訊、期刊網站?
21 世紀網的歷史是怎樣的,為何會被全員遣散?

TAG:編程 | 網站 | MicrosoftOffice | MicrosoftExcel | ASPNET |