NPOI之Excel——合併儲存格、設定樣式、輸入公式、設定篩選等

來源:互聯網
上載者:User

標籤: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——合併儲存格、設定樣式、輸入公式、設定篩選等

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.