2017-11-22
2020-04-09 更新
(零) 前言
微軟官方並不建議在伺服器端使用直接存取 Excel 物件模型的方式來控制 Excel 檔案,除了上述的資源無法釋放的問題外,還有像是權限的問題,以及安全性問題等等,詳細的資料請參考: Considerations for server-side Automation of Office - Microsoft Support http://support.microsoft.com/default.aspx/kb/257757 |
Office 伺服器端自動化的考量因素 - Microsoft Support
https://support.microsoft.com/zh-tw/help/257757/considerations-for-server-side-automation-of-office
Considerations for server-side Automation of Office
https://support.microsoft.com/fi-fi/help/257757/considerations-for-server-side-automation-of-office
在 Server 端存取 Excel 檔案的利器:NPOI Library
https://msdn.microsoft.com/zh-tw/ee818993.aspx
也就是最好不要在 Web Server 或網頁上做 Excel 檔案的匯出、匯入等行為。
****************************************
(一) 以Html方式輸出
[研究][C#][ASP.NET] GridView 匯出成 Excel (.xls)(以Html方式輸出)
http://shaurong.blogspot.tw/2016/03/caspnet-gridview-excel-xlshtml.html
優點:不需要安裝任何元件
缺點:Office 2007(含)以後,開啟檔案時候會有警告,因為檔案格式實際上是 HTML,不是真正的 .xls
****************************************
(二) 使用 Microsoft XML SDK 2.5 for Office
歡迎使用 Open XML SDK 2.5 for Office
https://msdn.microsoft.com/zh-tw/library/office/bb448854.aspx
Open XML SDK 2.5 for Microsoft Office
https://www.microsoft.com/en-us/download/details.aspx?id=30425
[研究][C#][ASP.NET] GridView 匯出成 Excel (.xlsx) (使用 OpenXML SDK 2.5)
http://shaurong.blogspot.tw/2016/03/caspnet-gridview-excel-xlsx-openxml-sdk.html
優點:微軟官方推出的免費元件
缺點:
1.Web Server 要另外安裝元件
2.可能只支援 .xlsx (可能不支援 .xls)
3.元件更新可能沒有 Office 快
4.可能有資源無法釋放的問題、權限的問題、安全性問題等等。
2017-11-22,目前 NuGet 提供的 OpenXML 已經到 v2.7.2 版,但獨立下載的仍只有 v2.5 版。
****************************************
(三) 使用 Microsoft Office
[研究][C#][ASP.NET] GridView 匯出成 .xls (使用 Excel )
http://shaurong.blogspot.tw/2016/03/caspnet-gridview-xls-excel.html
優點:直接操作 Excel 軟體去處理檔案,相容性最佳
缺點:
1.Web Server 必須安裝商業版 Microsoft Office,必須付費,免費版 Office Viewer 不支援。
2.可能有資源無法釋放的問題、權限的問題、安全性問題等等。
****************************************
(四) 使用 NPOI
這不是微軟官方提供的,但是在微軟的 MSDN 網站上有介紹。
[研究][C#][ASP.NET] 用 NPOI v2.2.1 在 Server 端存取 Excel 檔案 (從官方下載安裝)
http://shaurong.blogspot.com/2017/11/caspnet-npoi-v221-server-excel.html
[研究][C#][ASP.NET] 用 NPOI v2.3.0 在 Server 端存取 Excel 檔案 (NuGet安裝)
http://shaurong.blogspot.com/2017/11/caspnet-npoi-server-excel-nuget.html
****************************************
(五) 使用 ClosedXML
這不是微軟官方提供的,它使用了 OpenXML 和一些其他套件,程式開發聽說比 OpenXML 要簡易點。
[研究] [C#] 用 ClosedXML 在 Server端操作 Excel,安裝與試用 (NuGet安裝)
http://shaurong.blogspot.com/2017/11/c-closedxml-server-excel-nuget.html
PS:
[研究] [C#] [WinForm] 取得 Excel 的所有 工作表 名稱,及儲存格內容 (使用Access Database Engine 2010)
http://shaurong.blogspot.tw/2016/11/c-winform-excel.html
相關文章 (匯出)
[研究] 匯出、匯入 Excel 檔案 (.NET)
https://shaurong.blogspot.com/2017/11/excel-net.html
[研究][C#][ASP.NET][WebForm] 用 ClosedXML 把 GridView1 匯出成 Excel (.xlsx)
https://shaurong.blogspot.com/2020/04/caspnetwebform-closedxml-gridview1.html
[研究][C#][ASP.NET][WebForm] 用 OpenXML SDK 把資料庫查詢結果匯出 Excel (.xlsx)
[研究][ASP.NET][C#]使用 NPOI 的 RenderDataTableToExcel 匯出資料成 Excel (.xls) 檔案
[研究][C#][ASP.NET][WebForm] 用 ClosedXML 把 DataTable 匯出成 Excel (.xlsx)ClosedXML
[研究][C#][ASP.NET] GridView 匯出成 Excel (.xls)(以Html方式輸出)
http://shaurong.blogspot.tw/2016/03/caspnet-gridview-excel-xlshtml.html
[研究][C#][ASP.NET] GridView 匯出成 Excel (.xlsx) (使用 OpenXML SDK 2.5)
http://shaurong.blogspot.tw/2016/03/caspnet-gridview-excel-xlsx-openxml-sdk.html
[研究][C#][ASP.NET] GridView 匯出成 .xls (使用 Excel )
http://shaurong.blogspot.tw/2016/03/caspnet-gridview-xls-excel.html
[研究][C#][ASP.NET] 用 NPOI v2.2.1 在 Server 端存取 Excel 檔案 (從官方下載安裝)
http://shaurong.blogspot.com/2017/11/caspnet-npoi-v221-server-excel.html
[研究][C#][ASP.NET] 用 NPOI v2.3.0 在 Server 端存取 Excel 檔案 (NuGet安裝)
http://shaurong.blogspot.com/2017/11/caspnet-npoi-server-excel-nuget.html
[研究] [C#] 用 ClosedXML 在 Server端操作 Excel,安裝與試用 (NuGet安裝)
http://shaurong.blogspot.com/2017/11/c-closedxml-server-excel-nuget.html
[研究] [C#] [WinForm] 取得 Excel 的所有 工作表 名稱,及儲存格內容 (使用Access Database Engine 2010)
http://shaurong.blogspot.tw/2016/11/c-winform-excel.html
相關文章 (匯入)
[研究][C#] OpenXML SDK 匯入 Excel .xlsx 方法
https://shaurong.blogspot.com/2020/02/c-openxml-sdk-excel-xlsx.html
[研究] Excel 2016 (.xlsx) 匯入 SQL Server 2019
https://shaurong.blogspot.com/2019/12/excel-2016-xlsx-sql-server-2019.html
沒有留言:
張貼留言