NPOIによるexcelのエクスポート


最近、データをexcelにエクスポートしています.ネットで見てみると、いろいろな方法があります.私もいくつか試してみました.以前javaでexcelをエクスポートしたことがあります.javaはpoiパッケージをインポートしていましたが、今.netはNPOIを追加するリファレンスで、基本的な方法とjavaの差はあまりありません.以下は私が作ったNPOIを追加するリファレンスでexcelをエクスポートする方法です.   EXport.ashx: 
<%@ WebHandler Language="C#" Class="EXport" %>

using System;
using System.Web;
using NPOI.HSSF.UserModel;
using ETL.BLL;
using System.Data;


public class aaaaa : IHttpHandler {

    BLLETL bll = new BLLETL();
    public void ProcessRequest(HttpContext context)
    {
        string aa = context.Request["str"];
        if (aa != null)
        {
            context.Response.Write(aa);
            string filename = DateTime.Now.ToString("yyyyMMdd");
            context.Response.ContentType = "application/x-excel";
            context.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xls");
            //  workbook
            HSSFWorkbook workbook = new HSSFWorkbook();
            //  sheet
            HSSFSheet sheet = workbook.CreateSheet();
            DataSet ds = bll.GetAllDataSet();

            int colHeaders = 0;
            //     
            HSSFRow Header = sheet.CreateRow(colHeaders);
            Header.CreateCell(0, HSSFCell.CELL_TYPE_STRING).SetCellValue("    ");
            Header.CreateCell(1, HSSFCell.CELL_TYPE_STRING).SetCellValue("    ");
            Header.CreateCell(2, HSSFCell.CELL_TYPE_STRING).SetCellValue("    ");
            Header.CreateCell(3, HSSFCell.CELL_TYPE_STRING).SetCellValue("    ");
            Header.CreateCell(4, HSSFCell.CELL_TYPE_STRING).SetCellValue("    ");
            Header.CreateCell(5, HSSFCell.CELL_TYPE_STRING).SetCellValue("    ");


            int rownum = 1;
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                HSSFRow roww = sheet.CreateRow(rownum);
                roww.CreateCell(0, HSSFCell.CELL_TYPE_STRING).SetCellValue(row[0].ToString());
                roww.CreateCell(1, HSSFCell.CELL_TYPE_NUMERIC).SetCellValue(row[1].ToString());
                roww.CreateCell(2, HSSFCell.CELL_TYPE_STRING).SetCellValue(row[2].ToString());
                roww.CreateCell(3, HSSFCell.CELL_TYPE_STRING).SetCellValue(row[3].ToString());
                roww.CreateCell(4, HSSFCell.CELL_TYPE_STRING).SetCellValue(row[4].ToString());
                roww.CreateCell(5, HSSFCell.CELL_TYPE_STRING).SetCellValue(row[5].ToString());
                rownum++;


            }
            workbook.Write(context.Response.OutputStream);
        }

    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}

 
 
  
   Export.html:
 
 





$(document).ready(function () {
$("#btn").click(function () {
var str = 1;
window.location.href = "EXport.ashx?str="+ str;
});
});