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