1. 程式人生 > >NPOI 2.0 教程(三):EXCEL 基本格式設定之ICellStyle

NPOI 2.0 教程(三):EXCEL 基本格式設定之ICellStyle

轉載請註明出處 http://blog.csdn.net/fujie724

前兩篇,我們已經學習瞭如何用NPOI來建立和編輯Excel,並且已經熟悉了HSSFWorkbookISheetIRowICell

接下來我們把它變得漂亮一點。

ICellStyle——單元格樣式

當我們擁有了一個HSSFWorkbook例項之後。我們可以通過下面的方式來建立一個樣式變數。

HSSFWorkbook wk = new HSSFWorkbook();//你用來操作的HSSFWorkbook的例項
ICellStyle cellStyle = wk.CreateCellStyle();

這樣我們就建立好了一個樣式變數。

  • 注意:
  • 建立樣式是基於HSSFWorkbook而不是ISheet

這個ICellStyle裡有些什麼屬性可以設定呢?


沒錯,所有你能想到的對於單元格的格式樣式的設定都在裡面。種類非常多,命名也比較直白,比如:對齊方式,上下左右邊框線的顏色和樣式,字型等等。

寫個例子給大家看看。

ICellStyle cellStyle = wk.CreateCellStyle();
//設定單元格上下左右邊框線
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
//文字水平和垂直對齊方式
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
//是否換行
//cellStyle.WrapText = true;
//縮小字型填充
cellStyle.ShrinkToFit = true;

大部分的設定都有相應的列舉型別可以選擇,比如這個邊框樣式Thin,實際上就是我們最常見的單線最細的那種邊框,你也可以根據需要設定成虛線,點線,雙線等等。

  • 注意:
  • “是否換行”和“縮小字型填充”本身是互斥的兩個設定,如果同時設為True,則只有“是否換行”會生效。

設定好了格式變數,就可以把它應用到單元格上去。通過對ICell的CellStyle賦值實現。

ICell Cell = sheet.CreateRow(0).CreateCell(0);
Cell.CellStyle = cellStyle;
Cell.SetCellValue("測試格式效果");

設定格式就是這麼簡單。

你可能會問了,如果我需要設定一大片的單元格都是這個格式,該不會要一個一個的設定吧?

很悲催的告訴你,沒錯,目前暫未發現有直接批量設定格式的方法。不過考慮到本身你也需要一個一個去建立Cell,所以順便賦值上去也不是什麼很麻煩的事情。

  • 提到ICellStyle就不能不提到一個需要注意的地方:
  • 通過某些現象我們曾經觀察到,ICellStyle的建立是有數量限制的,換句話說,一個Excel檔案裡負責儲存樣式的空間是有限的,樣式也佔用一定的檔案大小。
  • 那麼我們就應該注意樣式的重複利用,相同的樣式儘量不要建立兩份,直接賦值同一個就可以了,在編寫程式碼的時候注意樣式變數的作用域。

對於只有少部分不相同的樣式,我們可以使用CloneStyleFrom()方法來克隆前一個樣式,而只修改需要修改的部分,減少重複程式碼。

ICellStyle newCellStyle = wk.CreateCellStyle();
newCellStyle.CloneStyleFrom(cellStyle);
newCellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Left;

關於ICellStyle已經講完,希望大家喜歡。下一篇繼續講解格式設定的其他內容。

轉載請註明出處 http://blog.csdn.net/fujie724