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();
}
}
复制代码(编辑:雷林鹏 来源:网络)