天天看點

【原創】.NET讀寫Excel工具Spire.Xls使用(3)單元格控制1.Excel單元格概述2.單元格内容的讀寫3.單元格的内容格式與樣式4.資源代碼

  以前在使用npoi的時候,其實印象最深的還是單元格的操作,因為以前使用npoi的主要任務是生成一個複雜的統計報表,不僅表頭比較複雜,而且行類别的控制也比較複雜,不是固定的,要動态的進行。并且不同單元格的邊框還不一樣,是以當初使用 npoi 也走了不少彎路。對單元格的控制是寫入excel檔案的最核心的東西。是以本篇文章就介紹我在使用spire.xls過程中相關單元格的控制總結。

  excel單元格是表格的最小編輯單元,也是操作的主體,日常涉及到的相關功能有:

1.對指定單元格讀寫内容:讀寫内容的時候,有一些操作可以和格式控制,如單元格的類型進行合并;

2.對單元格的格式進行控制,如數字,字元串,文字顔色,字型大小等等;對于自定義報表等檔案,這個要求是比較常見的;

3.對單元格的樣式進行控制,如邊框線條(樣式,顔色),内容對齊,合并單元格等等,也是很常見的;

4.單元格的相關統計,如一些函數,求和統計功能等等;

  接下來的内容主要對上述4個主要用途進行示範,附一些實際代碼。如果有需要補充的,請留言。

  在spire.xls中讀寫單元格,主要的一個對象不可不知,那就是cellrange,代表是單元格的一個範圍集合,可以根據單元格的名稱如a1,b2來傳回單元格集合,也可以根據行号和列号(下标從1開始)來通路。例如下面的代碼,直接對a1單元格指派,然後對第一行第2個單元格指派。相比npoi,不停的create再指派,這确實友善不少。看代碼:

看效果:

【原創】.NET讀寫Excel工具Spire.Xls使用(3)單元格控制1.Excel單元格概述2.單元格内容的讀寫3.單元格的内容格式與樣式4.資源代碼

而如果要通路對應單元格的值,也是可以直接通過上述cellrange擷取單元格對象後,直接通路其屬性value,或者text,numbervalue來擷取你想要類型的值,不需要自己轉換。但是前提你要知道單元格的格式。如下面代碼:

  在使用npoi的過程中,不僅單元格要頻繁create,對寫入的資料格式也要設定,而在spire.xls中,這些變得更簡單了。直接根據資料類型給指定屬性就ok了,非常簡潔明了。例如,下面的代碼,直接向單元格寫入雙精度,日期和布爾類型的資料,給numbervalue,datetimevalue,booleanvalue屬性直接指派就好了。

   是不是非常簡單,一行代碼搞定的東西,以前可能要幾行,多了之後也有些頭疼。

  以前的npoi樣式的控制,要單獨建立樣式對象進行設定,而在spire.xls中,更加直接,直接對range的屬性進行設定就好了,非常簡單明了,看看我們對範圍内的單元格是如何控制字型格式的,隻列舉了幾個屬性,其他屬性以此類推:

看看效果:

【原創】.NET讀寫Excel工具Spire.Xls使用(3)單元格控制1.Excel單元格概述2.單元格内容的讀寫3.單元格的内容格式與樣式4.資源代碼

  是不是更簡單,range的範圍選擇也很靈活。

  合并單元格在用excel做報表的時候很有用,在c#中操作合并單元格,其實也非常容易。

這裡要注意:合并一行的話,不是把所有一行單元格都合并掉,而是預設合并到最後一列(取最大有值的列)。效果如下:

【原創】.NET讀寫Excel工具Spire.Xls使用(3)單元格控制1.Excel單元格概述2.單元格内容的讀寫3.單元格的内容格式與樣式4.資源代碼

  有的時候需要取消合并單元格,其實和上面原理是一樣的,用的是unmerge方法。這裡就不再示範。