1. 程式人生 > >NPOI之Excel——自動篩選、數字格式

NPOI之Excel——自動篩選、數字格式

設定Excel的自動篩選功能

最新匯出資料需要使用Excel的篩選功能,網上多方查詢,終於在一個繁體的網站上找到了方法,呃,這個網站還是Java的,講的是POI,不過.NET的NPOI也就一樣用了。

CellRangeAddress c = CellRangeAddress.ValueOf("A1");
sheet.SetAutoFilter(c);

通過設定要進行自動篩選的單個單元格或者多個單元格,然後在sheet上進行設定自動篩選。

順便一起說一個

單元格數字格式的問題

NPOI向Excel檔案中插入數值時,可能會出現數字當作文字的情況(即左上角有個綠色三角),這樣單元格的值就無法參與運算。這是因為在SetCellValue設定單元格值的時候使用了字串進行賦值,預設被轉換成了字元型。如果需要純數字型的,請向SetCellValue中設定數字型變數。

以上兩個問題的示例程式碼如下:

//建立空白工作薄
IWorkbook workbook = new HSSFWorkbook();

//在工作薄中建立工作表
ISheet sheet = workbook.CreateSheet();

//填充篩選的內容
sheet.CreateRow(0).CreateCell(0).SetCellValue("省份");
sheet.CreateRow(1).CreateCell(0).SetCellValue("河北省");
sheet.CreateRow(2).CreateCell(0).SetCellValue("湖南省");

//驗證數字格式問題
sheet.GetRow(1).CreateCell(2).SetCellValue(
"123"); sheet.GetRow(2).CreateCell(2).SetCellValue(123); //設定Excel的自動篩選 CellRangeAddress c = CellRangeAddress.ValueOf("A1"); sheet.SetAutoFilter(c); //寫檔案 using (FileStream fs = new FileStream("haha.xls", FileMode.Create, FileAccess.Write)) { workbook.Write(fs); }

最終的效果顯示:

QQ截圖20130708153031