NPOI之Excel——自動篩選、數字格式
阿新 • • 發佈:2019-01-11
設定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); }
最終的效果顯示: