NPOI 2.0 教程(三):EXCEL 基本格式設定之ICellStyle
阿新 • • 發佈:2018-12-30
轉載請註明出處 http://blog.csdn.net/fujie724
前兩篇,我們已經學習瞭如何用NPOI來建立和編輯Excel,並且已經熟悉了HSSFWorkbook,ISheet,IRow和ICell。
接下來我們把它變得漂亮一點。
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