一般处理程序 —— 导出Excel
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; namespace _2_一般处理程序 { /// <summary> /// 导出Excel 的摘要说明 /// </summary> public class 导出Excel : IHttpHandler { public void ProcessRequest(HttpContext context) { //设置ContentType context.Response.ContentType = "application/x-excel"; //增加Content-Disposition是告诉浏览器,这个返回的内容是“附件形式”要给用户保存 //filename是建议的文件名 context.Response.AddHeader("Content-Disposition", "attachment;filename=" + context.Server.UrlEncode("导出Excel.xls")); DataTable dt = SQLHelper.ExecuteQuery("select top 100 id,code,parentId,name,level from Area"); IWorkbook workbook = new HSSFWorkbook(); //创建sheet ISheet sheet = workbook.CreateSheet("Area"); //创建表头 IRow row_H = sheet.CreateRow(0); ICell cell_H_id = row_H.CreateCell(0, CellType.String); cell_H_id.SetCellValue("id"); ICell cell_H_code = row_H.CreateCell(1, CellType.String); cell_H_code.SetCellValue("code"); ICell cell_H_parentId = row_H.CreateCell(2, CellType.String); cell_H_parentId.SetCellValue("parentId"); ICell cell_H_name = row_H.CreateCell(3, CellType.String); cell_H_name.SetCellValue("name"); ICell cell_H_level = row_H.CreateCell(4, CellType.String); cell_H_level.SetCellValue("level"); //遍历所有行 for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; IRow row = sheet.CreateRow(i + 1); ICell cell_id = row.CreateCell(0, CellType.Numeric); cell_id.SetCellValue(Convert.ToInt32(dr["id"])); ICell cell_code = row.CreateCell(1, CellType.String); cell_code.SetCellValue(dr["code"].ToString()); ICell cell_parentId = row.CreateCell(2, CellType.String); cell_parentId.SetCellValue(dr["parentId"].ToString()); ICell cell_name = row.CreateCell(3, CellType.String); cell_name.SetCellValue(dr["name"].ToString()); ICell cell_level = row.CreateCell(4, CellType.Numeric); cell_level.SetCellValue(Convert.ToInt32(dr["level"])); } //写入流 workbook.Write(context.Response.OutputStream); } public bool IsReusable { get { return false; } } } }