在.NET平臺,操做Excel文件是一個很是經常使用的需求,目前比較常規的方法有如下幾種:html
1.Office Com組件的方式:這個方式很是累人,微軟的東西老是這麼的複雜,使用起來可能很是不便,須要安裝Excel,對於服務器,有時候還須要爲配置IIS權限。折騰人,看到不少人在羣裏面使用這個東西,出現各類抓狂的錯誤;數據庫
2.開源.NET組件NPOI方式:這個方式應該是不少人都在使用的,這個開源的組件相比第一種,雖然稍微簡單了點(2003支持比較好,新版本也支持Xlsx),但仍是很是好用的;最近在瀏覽NPOI的開源網站的時候,忽然發現Spire竟然是NPOI的贊助商。。贊一個吧,互相幫助,服務大衆,不像國內的什麼 百毒,企鵝,一天到晚打架,互抨,還要封殺,真是可憐啊。服務器
今天給你們介紹的.NET平臺操做Excel組件Spire.XLS,應該來講比上面2種方法要更好更穩定,功能也更多,先看看基本介紹:工具
1.Spire.Office for .NET 測試
Spire.Office for .NET是E-iceblue開發的一種企業級.NET Office編輯的軟件集合,包括Spire.Doc,Spire XLS,Spire.PDF,Spire.BarCode等等。.NET平臺的開發人員可使用Spire.Office for .NET輕鬆的操做含有文檔編輯功能的應用程序,還能夠導出爲MS Word/Excel/RTF/Acces、PDF、XPS、HTML、XML等格式,使用Spire.Office,不須要安裝Microsoft Office。雖然Spire.Office for .NET是商業產品,但它的每個基礎功能組件都提供了免費版本。能夠去官網看看:http://www.e-iceblue.com/。雖然有一些限制,但簡單的東西仍是能夠試一試。本文介紹的Spire.XLS只是Spire.Office下面的一個操做Excel的組件。網站
2.Spire.XLS特色 加密
Spire.XLS for .NET 支持全部Excel格式類型(97-2003, 2007, 2010)文件。經過Spire.XLS for .NET,開發人員能夠快速方便的查看,生成,讀寫以及自定義編輯Excel文件。Spire.XLS for .NET有如下主要功能:spa
1.支持Excel文件的新建,修改編輯,單元格拆分合並,屬性設置,加鎖加密等等;component
2.支持數據庫導出到Excel工做表,或者把數據從Excel數據導入到數據庫;htm
3.提供強大的設置單元格格,格式化數字,文字縮進,定位調整,單元格填充以及保護等;
4.支持向Excel文件裏面寫入公式,表格,圖片,不一樣類型的文字,連接,註釋甚至VBA等內容;
5.支持將Excel文件轉換成PDF, HTML, CSV, Text, XML以及圖片格式。
支持的Excel文件版本不少,看看下面這個圖就瞭解了,下面是枚舉類型ExcelVersion的成員列表:
Spire.XLS也提供了免費版本,下載地址:http://www.e-iceblue.com/Introduce/free-xls-component.html,稍微有一些限制,主要限制是單個workbook最多5個sheet,且每一個sheet最多支持150行。因爲我使用的是正版,因此下面的演示沒有這個問題。
3.寫個Hello Excel
因爲微軟的Office太過龐大,我早就拋棄了,這幾年一直在用國產的WPS,效果還能夠能夠,主要是小,才幾十M,經常使用功能也絲絕不遜色與Office。一直的確方便,還免費,二是如今的軟件都在爭用戶,軟件大得不得了,佔用內存也不斷增大,其實受苦的是用戶。龐大的Office不是特殊要求,儘可能就不要整了,受罪。
我使用的是Spire.Office 2.1版本,由於單位有正版,全部沒有用免費版,系統win7-32bit+WPS最新的搶鮮版。工具用的是VS2013,項目類型.NET 4.0(固然組件自己支持的環境不少,如.NET 2.0,3.5,4.0,4.0 ClientProfile,Silverlight3/4/5,WPF等等)。
1.基本準備
第一個步驟,新建項目就不說了,主要是引用相應版本的dll文件,以及添加命名空間的引用:
2.編寫基本代碼
如今都流行Hello world,使用這個以前,先簡單體驗一把Hello Excel。代碼很是簡單,有註釋。
using System;
using Spire.Xls;//這是一個最主要的命名空間
namespace XlsTest
{
class Program
{
static void Main(string[] args)
{
HelloExcel();
Console.ReadLine();
}
static void HelloExcel()
{
//建立1個工做簿,至關於1個Excel文件
//Excel的文檔結構是 Workbook->Worksheet(1個book能夠包含多個sheet)
Workbook workbook = new Workbook();
//獲取第一個sheet,進行操做,下標是從0開始
Worksheet sheet = workbook.Worksheets[0];
//固然你也能夠本身添加1個命名的Worksheet到book中
workbook.Worksheets.Add("測試sheet");
//向A1單元格寫入文字
sheet.Range["A1"].Text = "Hello,World!";
//將Excel文件保存到指定文件,還能夠指定Excel版本
workbook.SaveToFile("Sample.xls", ExcelVersion.Version97to2003);
}
}
}
3.看看效果
代碼很簡單,看看實際效果。2個地方,一個是文字,1個是新建的一個Sheet,默認的Excel文件是3個Sheet。
4.與微軟Com操做和NPOI區別
目前來講使用微軟com操做方式和NPOI組件是最廣泛的,固然也有不少網友分享過使用商業組件的文章。本文前開頭也已經介紹過了,微軟com操做,最頭疼的是依賴office,對環境要求挺大,不少人都是由於這個東西放棄了,而採用開源或者商業的,獨立於Office環境的操做組件,例如NPOI,Spire等等。因爲我沒有使用過微軟Office的com方式來操做過文檔,因此在這裏不作過多比較,重點比較我之前使用NPOI和如今這個Spire.XLS的一點區別。
1.NPOI在2.0版本(應該是2014年發佈的)之後開始支持Office 2007版本的Excel,不少功能還相對較弱;對Office 2003的支持是比較完善的,我之前工做中也只用到2003;
2.Spire.XLS對Excel版本的支持就完善得多,上述也有說明,支持版本Office 2010/2013很是完善,這也是此次使用它的主要緣由;
3.在之前使用NPOI 2.0以前的版本的時候,用NPOI作過很複雜的報表,可是有一個很深的感覺,NPOI的命名空間比較多,並且比較難記,例如HSSF,POIFS,SS等等搞不懂啥意思,不夠直觀,因此常常是找不到在哪裏,特別是後期維護的時候,要加點功能;
4.NPOI在對Excel生成圖表的支持上不夠,貌似2.0之前的版本根本就不行,如今新的版本我也沒試過,不知道狀況怎麼樣。我使用Spire.XLS的一個緣由就是自動生成的報表裏面要生成圖表功能,這一點Spire.XLS支持很是好;
5.NPOI在功能上把握很準確,很核心,其實做爲開源組件,已經很是好了。對與Excel文件的一些輔助操做,如文件格式轉換,數據導出導入等等,Spire.XLS是好一點,固然這些經過NPOI的擴展也是能夠完成的。
6.其餘優缺點和使用的問題,在這個項目完成以後,有更加深刻的對比,到時候再分享給你們吧,也歡迎你們補充。