使用NPOI操縱Excle,並輸入到客戶端

2022-05-15 02:38:14 字數 4486 閱讀 5495

匯入以下5個引用:

icsharpcode.sharpziplib.dll

npoi.dll

npoi.ooxml.dll

npoi.openxml4net.dll

npoi.openxmlformats.dll

1.將excle資料匯入到datatable中

新建工具類: 根據上傳檔案字尾名判斷 xls使用 importexcelfile2003方法 xlsx使用importexcelfile2007方法

using

npoi.xssf.usermodel;

using

npoi.ss.usermodel;

using

npoi.hssf.usermodel;

using

system;

using

system.collections.generic;

using

system.data;

using

system.io;

using

system.text;

using

npoi.ss.formula.eval;

//////

npoiexcelhelper 的摘要說明

///public

class

npoiexcelhelper

}catch

(exception e)

#endregion

npoi.ss.usermodel.isheet sheet = hssfworkbook.getsheetat(0

);; system.collections.ienumerator rows =sheet.getrowenumerator();;

datatable dt = new

datatable();;

rows.movenext();;

xssfrow row =(xssfrow)rows.current;

for (int j = 0; j < (sheet.getrow(0).lastcellnum); j++)

while

(rows.movenext())

else

}dt.rows.add(dr);;

}return

dt; }

public

static datatable importexcelfile2003(string

filepath)

}catch

(exception e)

#endregion

npoi.ss.usermodel.isheet sheet = hssfworkbook.getsheetat(0

);; system.collections.ienumerator rows =sheet.getrowenumerator();;

datatable dt = new

datatable();;

rows.movenext();;

hssfrow row =(hssfrow)rows.current;

for (int j = 0; j < (sheet.getrow(0).lastcellnum); j++)

while

(rows.movenext())

else

}dt.rows.add(dr);;

}return

dt; }

}

2.將資料匯出到excle引用命名空間:

using npoi.xssf.usermodel;

using npoi.ss.usermodel;

using npoi.hssf.usermodel;

using npoi.ss.formula.eval;

**例項:

//

建立工作簿

hssfworkbook workbook = new

hssfworkbook();

//建立標籤

isheet sheet = workbook.createsheet("

sheet1");

//新建表頭

irow rowhead = sheet.createrow(0

);rowhead.createcell(

0, celltype.string).setcellvalue("序號"

);rowhead.createcell(

1, celltype.string).setcellvalue("

學生姓名");

rowhead.createcell(

2, celltype.string).setcellvalue("性別"

);rowhead.createcell(

3, celltype.string).setcellvalue("

生源地"

);rowhead.createcell(

4, celltype.string).setcellvalue("

身份證"

);rowhead.createcell(

5, celltype.string).setcellvalue("

准考證"

);rowhead.createcell(

6, celltype.string).setcellvalue("

專業名稱");

rowhead.createcell(

7, celltype.string).setcellvalue("

專業方向");

rowhead.createcell(

8, celltype.string).setcellvalue("**"

);rowhead.createcell(

9, celltype.string).setcellvalue("

生源學校");

rowhead.createcell(

10, celltype.string).setcellvalue("

審核狀態");

rowhead.createcell(

11, celltype.string).setcellvalue("

錄取狀態");

//迴圈填充內容

for (int i = 0; i < table.rows.count; i++)

system.io.memorystream ms = new

system.io.memorystream();

//寫入記憶體

workbook.write(ms);

response.addheader(

"content-disposition

", string.format("

attachment; filename=.xls

", datetime.now.tostring("

yyyymmddhhmmssfff

")));

//輸出到客戶端

response.binarywrite(ms.toarray());

workbook = null

;ms.close();

ms.dispose();

匯出結果如圖:

3.將伺服器上的檔案輸出到客戶端

//

讀取檔案

~/uploads/test.xlsx

"), filemode.open);

long filesize =filestream.length;

byte filebuffer = new

byte

[filesize];

filestream.read(filebuffer,

0, (int

)filesize);

response.contenttype = "";

response.addheader(

"content-disposition

", string.format("

attachment; filename=.xlsx

", datetime.now.tostring("

yyyymmdd

")));

response.addheader(

"content-length

", filesize.tostring());

response.binarywrite(filebuffer);

response.flush();

response.close();

將伺服器上 /uploads/test.xlsx 檔案 輸出到客戶端並使用日期命名

C 使用NPOI對EXCle增 刪 改 查 方法

最近閒來無事封裝了使用npoi對excle檔案增刪改查的方法,親測可用附 根據路徑和表名得到dictionary資料字典 public dictionary int,dictionary string string getdictionarybysheetname string excelpath,...

使用NPOI讀取Excel到DataTable

一 npoi介紹 使用 npoi 你就可以在沒有安裝 office 或者相應環境的機器上對 word excel 文件進行讀寫。npoi是構建在poi 3.x版本之上的,它可以在沒有安裝office的情況下對word excel文件進行讀寫操作 二 安裝npoi 新建控制台應用程式 管理nuget程...

使用NPOI讀取Excel資料並寫入SQLite

首先,我們來建乙個資料庫,我們就叫hello.db 不一定是db字尾,你可以sqlite,sqlite3,db3 都可以作為識別,然後往裡面建乙個空的 如下圖所示 然後建乙個excel 往 裡面寫入一些資料,我這裡只是demo形式,可以根據自己的實際情況,稍作修改 然後開始建乙個新的專案,我這裡用的...