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;
}
}
}
}