首先創建一個空白的工做簿用做測試,並在其中創建空白工做表,在表中創建空白行,在行中創建單元格,並填入內容:
//創建空白工做簿 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); }
最終效果:
參考資料:html
NPOI的下載地址:http://npoi.codeplex.com/
NPOI的使用教程(中文):http://tonyqus.sinaapp.com/