天天看點

.NET讀寫Excel工具Spire.Xls使用入門介紹

在.NET平台,操作Excel檔案是一個非常常用的需求,目前比較正常的方法有以下幾種:

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有以下主要功能:

1.支援Excel檔案的建立,修改編輯,單元格拆分合并,屬性設定,加鎖加密等等;

2.支援資料庫導出到Excel工作表,或者把資料從Excel資料導入到資料庫;

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.其他優缺點和使用的問題,在這個項目完成之後,有更加深入的對比,到時候再分享給大家吧,也歡迎大家補充。 

版權聲明:本文為CSDN部落客「weixin_34177064」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_34177064/article/details/92578180