NOPI匯入匯出

2021-09-26 04:12:06 字數 4600 閱讀 6577

using npoi.hssf.usermodel;

using npoi.ss.usermodel;

using system;

using system.data;

using system.io;

using system.windows.forms;

namespace excel匯出示例

private void btnin_click(object sender, eventargs e)

private void btnout_click(object sender, eventargs e)

#region 匯入

private void import(string filepath)

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

rows.movenext();//跳過第一行

while (rows.movenext())

else

}dt.rows.add(dr);

}this.datagridview1.datasource = dt;

this.datagridview1.refresh();

}catch (exception e)

}/ / excel檔案導成datatable

/ / excel檔案目錄位址

/ datatable表名

/ excel sheet index

/ //public static datatable xlstodatatable(string strfilepath, string strtablename, int isheetindex)

//// if (strextname.equals(".xls") || strextname.equals(".xlsx"))

//

// //寫入內容

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

// while (rows.movenext())

//

// datarow dr = dt.newrow();

// foreach (icell item in row.cells)

//

// else

//

// break;

// case celltype.string:

// string str = item.stringcellvalue;

// if (!string.isnullorempty(str))

//

// else

//

// break;

// case celltype.unknown:

// case celltype.blank:

// default:

// dr[item.columnindex] = string.empty;

// break;

// }

// break;

// case celltype.numeric:

// if (dateutil.iscelldateformatted(item))

//

// else

//

// break;

// case celltype.string:

// string strvalue = item.stringcellvalue;

// if (string.isnullorempty(strvalue))

//

// else

//

// break;

// case celltype.unknown:

// case celltype.blank:

// default:

// dr[item.columnindex] = string.empty;

// break;

// }

// }

// dt.rows.add(dr);

// }

// }

// }

// return dt;

//}#endregion

#region 匯出

//datatable匯出excel

private void outport(datatable dt, string filename)

icellstyle cellstyle = hssfworkbook.createcellstyle();

//為避免日期格式被excel自動替換,所以設定 format 為 『@』 表示一率當成text來看

cellstyle.dataformat = hssfdataformat.getbuiltinformat("@");

cellstyle.borderbottom = npoi.ss.usermodel.borderstyle.thin;

cellstyle.borderleft = npoi.ss.usermodel.borderstyle.thin;

cellstyle.borderright = npoi.ss.usermodel.borderstyle.thin;

cellstyle.bordertop = npoi.ss.usermodel.borderstyle.thin;

npoi.ss.usermodel.ifont cellfont = hssfworkbook.createfont();

cellfont.boldweight = (short)fontboldweight.normal;

cellstyle.setfont(cellfont);

//建立內容行

int irowindex = 1;

int icellindex = 0;

foreach (datarow rowitem in dt.rows)

icellindex = 0;

irowindex++;

}//自適應列寬度

for (int i = 0; i < icolindex; i++)

//寫excel

filestream file = new filestream(filename, filemode.openorcreate);

hssfworkbook.write(file);

file.flush();

file.close();

messagebox.show("匯出成功!");

}catch (exception ex)

finally

}#endregion

}}

NOPI實現匯入匯出泛型List,支援自定義列

業務上需要自定義列的excel的匯入匯出,在網上看了好多資料,很多都是有bug而且都是支援excel和datatable的轉換,所以自己總結了一下,應用.net平台上的npoi封裝了支援自定義列的excel匯入匯出到泛型list。list to excel 引數 泛型集合資料,需要匯出列名 根據提供...

NOPI實現匯入匯出泛型List,支援自定義列

業務上需要自定義列的excel的匯入匯出,在網上看了好多資料,很多都是有bug而且都是支援excel和datatable的轉換,所以自己總結了一下,應用.net平台上的npoi封裝了支援自定義列的excel匯入匯出到泛型list。引數 泛型集合資料,需要匯出列名 根據提供的列名過濾集合的字段,並新建...

C 利用NOPI匯出到Excel

匯出excel,對於大多數人來說應該是太簡單的了。並且,之前在弄機房收費的時候也用過,確實是沒有什麼難度。但是說了不怕笑話的,就這麼個功能,整整弄了兩天。開始的時候當然就是最傻的遍歷塞資料 不過,不得不說的是真的是慢,如果哪個公司用這種方式,真的那就別混了 更可笑的是,我還為此加了個多執行緒,亂七八...