設置Excel的自動篩選功能
最新導出數據需要使用Excel的篩選功能,網上多方查找,終於在一個繁體的網站上找到了方法,呃,這個網站還是Java的,講的是POI,不過.NET的NPOI也就一樣用了。
CellRangeAddress c = CellRangeAddress.ValueOf("A1"); sheet.SetAutoFilter(c);
通過設置要進行自動篩選的單個單元格或者多個單元格,然后在sheet上進行設置自動篩選。
(參考:http://www.javaworld.com.tw/jute/post/view?bid=11&id=301435)
順便一起說一個
單元格數字格式的問題
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); }
最終的效果顯示:

更多NPOI相關:http://www.cnblogs.com/xwgli/category/467970.html
