NPOIによるexcelのエクスポート
3740 ワード
最近、データをexcelにエクスポートしています.ネットで見てみると、いろいろな方法があります.私もいくつか試してみました.以前javaでexcelをエクスポートしたことがあります.javaはpoiパッケージをインポートしていましたが、今.netはNPOIを追加するリファレンスで、基本的な方法とjavaの差はあまりありません.以下は私が作ったNPOIを追加するリファレンスでexcelをエクスポートする方法です. EXport.ashx:
Export.html:
$(document).ready(function () {
$("#btn").click(function () {
var str = 1;
window.location.href = "EXport.ashx?str="+ str;
});
});
<%@ 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;
});
});