NPOI操作Excel 003 寫入空Excel

2021-06-28 06:53:28 字數 2590 閱讀 7249

對於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...