對於npoi操作excel前面已經有了簡單認識(
繼續來看如何將內容儲存至excel中。
根據前面的經驗npoi操作excel主要的幾個物件分別是:
workbook,sheet以及sheet內的row和cell。
所以儲存至excel也是對這幾個物件進行操作。當然我們平時使用excel時不光要在單元格中儲存內容,還要設定單元格的格式以及字型大小等,也就是格式和樣式。這些在npoi元件中都有對應的方法。
下面看乙個簡單的例子:講datatable內容連同表頭都儲存至excel中,從**中來看如何操作excel。
首先,準備工作,需要用到的dll,同前文一樣,只要引用至工程中即可。
然後我們看如何使用。
看下面這段**,
protected void btn_writeexcel(object sender, eventargs e)
//為了更好的看如何使用npoi,此處顯示兩行標題。
//顯示標題可以看如何合併單元格
string maintitle = "主標題";
string secondtitle = "副標題";
//儲存的excel路徑,檔名用guid生成
string tempexcel = fileindex + @"\excelfile\.xls";
tempexcel = string.format(tempexcel, system.guid.newguid());
int rowindex = 0;
//操作excel的幾個主要物件,此處宣告
hssfworkbook workbook = new hssfworkbook();
hssfsheet sheet = workbook.createsheet();
//row0和row1是兩行標題
hssfrow row0 = sheet.createrow(rowindex);
hssfcell cell0 = row0.createcell(0);
cell0.setcellvalue(maintitle);
hssfcellstyle style = workbook.createcellstyle();
style.alignment = cellhorizontalalignment.center;
hssffont font = workbook.createfont();
font.boldweight = short.maxvalue;
style.setfont(font);
cell0.cellstyle = style;
//此處合併單元格
sheet.addmergedregion(new npoi.hssf.util.cellrangeaddress(rowindex,rowindex,0,5));
rowindex++;
hssfrow row1 = sheet.createrow(rowindex);
hssfcell cell1 = row1.createcell(0);
cell1.setcellvalue(secondtitle);
cell1.cellstyle = style;
sheet.addmergedregion(new npoi.hssf.util.cellrangeaddress(rowindex, rowindex, 0, 5));
//因為列名已經指定,佔一行
rowindex++;
//這一行顯示表頭
hssfrow row2 = sheet.createrow(rowindex);
int row2cellindex = 0;
foreach (datacolumn col in dt.columns)
rowindex++;
//datatable的內容
for(int i= 0;i< dt.rows.count;i++)
rowindex++;
}//使用檔案流儲存
memorystream ms = new memorystream();
workbook.write(ms);
ms.flush();
ms.position = 0;
workbook = null;
sheet = null;
filestream fs = new filestream(tempexcel,filemode.create,fileaccess.readwrite);
ms.writeto(fs);
fs.close();
ms.close();
}
按照順序,
依次是:建立excel檔案,利用workbook,sheet找到當前的sheet頁面,然後建立行,列,並且在指定的行列上寫入內容;最後用檔案流儲存。
使用很簡單,只要記住幾個關鍵的物件:hssfworkbook,hssfsheet,hssfrow,hssfcell就可以對excel進行讀寫了。
如果想讓excel的排版和格式更好看,那就再使用一些比如hssfcellstyle,hssffont等進行修飾修飾。
最終儲存至excel中的內容效果如下:
NPOI操作Excel 一 NPOI基礎
用c 讀取excel的方法有很多中,由於近期工作需要,需要解析的excel含有合併單元格以及背景色等特殊要求,故在網上查了一些關於讀excel的方法的優缺點,覺得npoi能滿足我的需要,所以搜尋了一些資料做了一些測試,下面有些內容有些是 於別人的部落格,都備有出處,只是想把一些覺得對自己有用的記錄一...
利用NPOI操作excel匯出
npoi外掛程式要.netframe4.0 開啟excel按鈕事件 private void button1 click object sender,eventargs e private void button2 click object sender,eventargs e if datearr...
NPOI 初次操作(新建Excel)
1.由於在某些電腦上沒有安裝office,或者有許可權限制,使用com元件進行讀寫excel的話會出現問題,為此,npoi是乙個很好的選擇,npoi可以在上述環境中滿足office的操作需求,並且功能也很完善。2.初次接觸npoi,花了一些時間來學習一下,以下 功能是建立乙個工作簿,修改然後儲存。3...