標籤:col 寬度 預設 出現 range 參考資料 輸入 寬高 樣式
首先建立一個空白的活頁簿用作測試,並在其中建立空白工作表,在表中建立空白行,在行中建立儲存格,並填入內容:
//建立空白活頁簿IWorkbook workbook = new HSSFWorkbook();//在活頁簿中:建立空白工作表ISheet sheet = workbook.CreateSheet();//在工作表中:建立行,參數為行號,從0計IRow row = sheet.CreateRow(0);
//在行中:建立儲存格,參數為列號,從0計ICell cell = row.CreateCell(0);//設定儲存格內容cell.SetCellValue("實習評鑑表");
設定儲存格樣式:設定儲存格樣式時需要注意,務必建立一個新的樣式對象進行設定,否則會將工作表所有儲存格的樣式一同設定,它們應該共用的是一個樣式對象:
ICellStyle style = workbook.CreateCellStyle();//設定儲存格的樣式:水平對齊置中style.Alignment = HorizontalAlignment.CENTER;//建立一個字型樣式對象
IFont font = workbook.CreateFont();//設定字型加粗樣式
font.Boldweight = short.MaxValue;//使用SetFont方法將字型樣式添加到儲存格樣式中
style.SetFont(font);//將新的樣式賦給儲存格cell.CellStyle = style;
設定儲存格寬高:
設定儲存格的高度實際是設定其所在行高,所以要在儲存格所在行上設定行高,行高設定數值好像是像素點的1/20,所以*20以便達到設定效果;
設定儲存格的寬度實際上是設定其所在列寬,所以要在儲存格所在列上設定(列的設定在工作表上),寬度數值好像是字元的1/256,所以*256以便達到設定效果。
//設定儲存格的高度row.Height = 30 * 20;//設定儲存格的寬度
sheet.SetColumnWidth(0, 30 * 256);
合併儲存格:合併儲存格實際上是聲明一個地區,該地區中的儲存格將進行合并,合并後的內容與樣式以該地區最左上方的儲存格為準。
//設定一個合併儲存格地區,使用上下左右定義CellRangeAddress地區//CellRangeAddress四個參數為:起始行,結束行,起始列,結束列sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 10));
添加公式:使用Cell的CellFormula來設定公式,是一個字串,公式前不需要加=號。
//通過Cell的CellFormula向儲存格中寫入公式//註:直接寫公式內容即可,不需要在最前加‘=‘ICell cell2 = sheet.CreateRow(1).CreateCell(0);cell2.CellFormula = "HYPERLINK(\"測試圖片.jpg\",\"測試圖片.jpg\")";
將活頁簿寫入檔案查看效果:
//將活頁簿寫入檔案using (FileStream fs = new FileStream("產生效果.xls", FileMode.Create, FileAccess.Write)){ workbook.Write(fs);}
最終效果:
參考資料:
NPOI的:http://npoi.codeplex.com/
NPOI的使用教程(中文):http://tonyqus.sinaapp.com/
出處:https://www.cnblogs.com/xwgli/archive/2013/05/03/3057824.html
設定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
出處:https://www.cnblogs.com/xwgli/p/3178153.html
NPOI之Excel——合併儲存格、設定樣式、輸入公式、設定篩選等