使用NPOI操作Excel 03 07

2021-09-08 10:56:52 字數 3416 閱讀 1685

1

using

system;

2using

system.collections.generic;

3using

system.linq;

4using

system.text;

5using

npoi.ss.usermodel;

6using

npoi.xssf.usermodel;

7using

npoi.hssf.usermodel;

8using

system.io;

9using

system.data;

10using

npoi.ss.util;

1112

namespace

common

1326

///27

///生成sheet物件

28///

29///

匯出excel檔案完整檔名

30///

要匯入的excel的sheet的名稱

31///

32public isheet generatesheet(string

sheetname)

3345

return

sheet;46}

47///

48///

將datatable資料匯入到excel中

49///

50///

所要操作excel的sheet物件

51///

要匯入的資料

52///

資料起始行索引

53///

匯入資料行數(包含列名那一行)

54public

int datatabletoexcel(isheet sheet, datatable data, int

datarowstart)

5569 ++datarowstart;70}

71 workbook.write(fs); //

寫入到excel72}

73return

datarowstart;74}

75catch

(exception ex)

7680}81

82///

83///

將excel中的資料匯入到datatable中

84///

85///

excel工作薄sheet的名稱

86///

資料起始行索引

87///

返回的datatable

88public datatable exceltodatatable(datatable tablemodel, string sheetname, int

datarowstart)

89107

}108

else

109112

if (sheet != null

)113

129data.rows.add(datarow);

130}

131}

132133

return

data;

134}

135catch

(exception ex)

136140

}141

///142

///設定表頭(支援單元格合併)

143///

144///

要合併單元格所在的sheet

145///

需要進行單元格合併的單元格索引陣列,陣列長度為4,第乙個為行起始位置,第二個為行結束為止,第三個為列起始位置,第四個為列結束為止

146///

單元格合併後值的集合,與合併單元格索引陣列集合一一對應

147//

public void setcellrangeaddress(isheet sheet, int rowstart, int rowend, int colstart, int colend, string value)

148public

void setexcelheader(isheet sheet, ilist mergearraylist, ilistvaluelist)

149156

int rowstart = mergearraylist[m][0

];157

int rowend = mergearraylist[m][1

];158

int colstart = mergearraylist[m][2

];159

int colend = mergearraylist[m][3

];160

string value = ""

;161

if (m

162165 icellstyle style =workbook.createcellstyle();

166 style.alignment =horizontalalignment.center;

167 ifont font =workbook.createfont();

168 font.boldweight = 700

;169 font.fontheight = 20 * 20

;170

style.setfont(font);

171for (int i = rowstart; i < rowend + 1; i++)

172178

for (int j = colstart; j < colend + 1; j++)

179184

}185

if (rowend - rowstart > 0 || colend - colstart > 0

)186

190}

191//

workbook.write(fs);

192}

193194

public

void

dispose()

195199

200protected

virtual

void dispose(bool

disposing)

201209

210 fs = null

;211 disposed = true

;212

}213

}214

}215 }

commenclass

使用NPOI進行Excel操作

一 npoi元件匯入 右鍵專案選單,管理nuget程式包 安裝完成後專案引用會出現以下幾項 二 基礎使用 新增引用 using npoi.hpsf using npoi.hssf.usermodel using npoi.ss.usermodel excel操作開始 hssfworkbook hss...

POI操作EXCEL03前後版本不相容問題解決

開發程式遇到讀取excel時,03前後的版本不相容,如下 workbook sheet row cell等為介面 hssfworkbook hssfsheet hssfrow hssfcell為97 2003版本對應的處理實現類 xssfworkbook xssfsheet xssfrow xssf...

NPOI操作Excel 一 NPOI基礎

用c 讀取excel的方法有很多中,由於近期工作需要,需要解析的excel含有合併單元格以及背景色等特殊要求,故在網上查了一些關於讀excel的方法的優缺點,覺得npoi能滿足我的需要,所以搜尋了一些資料做了一些測試,下面有些內容有些是 於別人的部落格,都備有出處,只是想把一些覺得對自己有用的記錄一...