[.NET开发] NPOI导出

  //导出全部

  expertPara = GetExpetPara();

  expertPara.BeginIndex = pager.CurrentPageIndex;

  expertPara.EndIndex = int.MaxValue;

  DataSet ds = ExpertBLL.GetPriMngExpertDate(expertPara);

  DataTable dt = ds.Tables[0];

  //判断加载哪个模板

  string tempath = "~/Templates/专家录入管理表.xls";

  //1、获取数据。

  using (FileStream file = new FileStream(HttpContext.Current.Server.MapPath(tempath), FileMode.Open, FileAccess.Read))

  {

  string ReportFileName = Server.MapPath("out.xls");

  HSSFWorkbook hssfworkbook = new HSSFWorkbook(file);

  HSSFSheet sheet1 = hssfworkbook.GetSheetAt(0) as HSSFSheet;

  sheet1.ForceFormulaRecalculation = true;

  sheet1.IsPrintGridlines = true;

  sheet1.DisplayGridlines = true;

  HSSFCellStyle _style = sheet1.Workbook.CreateCellStyle() as HSSFCellStyle;

  _style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;

  _style.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;

  int rowIndex = 0;

  {

  rowIndex = 2;

  int i = 1;

  foreach (DataRow row in ds.Tables[0].Select())

  {

  int cellIndex = 0;

  HSSFRow fr = GetRow(sheet1, rowIndex++);

  GetCell(fr, cellIndex++, _style).SetCellValue(i.ToString());

  GetCell(fr, cellIndex++, _style).SetCellValue(row["C_Name"].ToString());

  GetCell(fr, cellIndex++, _style).SetCellValue(DelHTML(row["C_Sex"].ToString()));

  GetCell(fr, cellIndex++, _style).SetCellValue(DelHTML(row["C_WorkUnit"].ToString()));

  GetCell(fr, cellIndex++, _style).SetCellValue(row["C_expert_type"].ToString());

  GetCell(fr, cellIndex++, _style).SetCellValue(row["C_position"].ToString());

  GetCell(fr, cellIndex++, _style).SetCellValue(row["C_title"].ToString());

  GetCell(fr, cellIndex++, _style).SetCellValue(row["C_Tel"].ToString());

  GetCell(fr, cellIndex++, _style).SetCellValue(row["C_BusinessOutlets"].ToString());

  GetCell(fr, cellIndex++, _style).SetCellValue(row["C_BankAccount"].ToString());

  i++;

  }

  sheet1.ForceFormulaRecalculation = true;

  using (FileStream filess = File.OpenWrite(ReportFileName))

  {

  hssfworkbook.Write(filess);

  }

  System.IO.FileInfo filet = new System.IO.FileInfo(ReportFileName);

  Response.Clear();

  Response.Charset = "GB2312";

  Response.ContentEncoding = System.Text.Encoding.UTF8;

  // 添加头信息,为"文件下载/另存为"对话框指定默认文件名

  string name = DateTime.Now + ".xls";

  Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(name));

  // 添加头信息,指定文件大小,让浏览器能够显示下载进度

  Response.AddHeader("Content-Length", filet.Length.ToString());

  // 指定返回的是一个不能被客户端读取的流,必须被下载

  Response.ContentType = "application/ms-excel";

  // 把文件流发送到客户端

  Response.WriteFile(filet.FullName);

  // 停止页面的执行

  Response.End();

  }

  }

  复制代码

  (编辑:雷林鹏 来源:网络)

posted @ 2018-06-22 10:17  雷林鹏  阅读(165)  评论(0编辑  收藏  举报