NPOI导出

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();
                }
            }
复制代码

转载于:https://www.cnblogs.com/cjm123/p/8564170.html

你可能感兴趣的:(NPOI导出)