国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET中使用開源組件NPOI快速導入導出Execl數據

2024-07-10 12:48:28
字體:
來源:轉載
供稿:網友

相信很多童鞋都開發過Execl的導入導出功能,最近產品中無論是后臺數據分析的需要,還是前端滿足用戶管理的方便,都有Execl導入導出的維護需求產生。

以前做這個功能,如果是web,利用HttpContext.Current.Response.ContentType =”application/ms-excel”;就可以導出html數據表格到execl中,這種方法的問題就是編碼格式的兼容性太差,用Mac OS之類的 office打開直接亂碼給你看。或者是調用office的COM組件,或宏腳本的方式操作Execl,這種方式的主要問題就是客戶端必須要安裝office,如果你裝的是wps還玩不轉。

最近產品中使用了NPOI這個開源組件后,上訴方法直接感覺太Out了。先感受一下代碼的魅力:

代碼如下:
/// <summary>
/// 導出Execl
/// </summary>
/// <returns></returns>
public FileResult DataExportToExecl()
{
  //創建Excel文件的對象
  NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
  NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1"); //添加一個sheet

  var _data = CardHelper.GetAllData(); //獲取list數據,也可以分頁獲取數據,以獲得更高效的性能
  //給sheet1添加第一行的頭部標題
  NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
  row1.CreateCell(0).SetCellValue("排名");
  row1.CreateCell(1).SetCellValue("CardID");
  row1.CreateCell(2).SetCellValue("姓名");
  row1.CreateCell(3).SetCellValue("手機");
  row1.CreateCell(4).SetCellValue("職位");
  row1.CreateCell(5).SetCellValue("所在公司");
  row1.CreateCell(6).SetCellValue("創建時間");

  //將數據逐步寫入sheet1各個行
  for (int i = 0; i < _data.Count; i++)
  {
      NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1);
      rowtemp.CreateCell(0).SetCellValue(i+1);
      rowtemp.CreateCell(1).SetCellValue(_data[i].ID);
      rowtemp.CreateCell(2).SetCellValue(_data[i].RealName);
      rowtemp.CreateCell(3).SetCellValue(_data[i].Cellphone);
      rowtemp.CreateCell(4).SetCellValue(string.IsNullOrEmpty(_data[i].WorTitle) ? "無" : _data[i].WorTitle);
      rowtemp.CreateCell(5).SetCellValue(string.IsNullOrEmpty(_data[i].Company) ? "無" : _data[i].Company);
      rowtemp.CreateCell(6).SetCellValue(_data[i].CreateDate.ToString());               
  }
  // 寫入到客戶端
  System.IO.MemoryStream ms = new System.IO.MemoryStream();
  book.Write(ms);
  ms.Seek(0, SeekOrigin.Begin);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和田市| 木兰县| 平谷区| 新巴尔虎左旗| 南昌市| 黄骅市| 图片| 兴宁市| 南郑县| 宕昌县| 罗平县| 宁晋县| 淅川县| 定西市| 兴安盟| 瓦房店市| 荥经县| 四子王旗| 北海市| 兴文县| 阿拉善盟| 黄骅市| 青神县| 武定县| 榆社县| 梧州市| 锡林郭勒盟| 兴隆县| 恩平市| 迭部县| 安塞县| 英德市| 喜德县| 宜宾市| 文昌市| 庆元县| 共和县| 兰溪市| 中阳县| 金堂县| 手机|