asp.Net学習ノート・データベースのデータをEXCELファイルに保存する
3176 ワード
データベースからデータを抽出し、EXCELファイルに保存し、ダウンロードを提供します.
EXCELファイルにデータベースデータを保存するコード
操作データベースのコード
EXCELファイルにデータベースデータを保存するコード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NPOI.HSSF.UserModel;
using good.DAl;
using System.Data;
namespace good
{
/// <summary>
/// excel
/// </summary>
public class excel : IHttpHandler
{
Sql sql = new Sql();
IDataReader reader;
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/x-excel"; //
string filename = HttpUtility.UrlEncode(" .xls");
context.Response.AddHeader("Content-Disposition","attachment;filename=" + filename);
reader = sql.GetReader();
HSSFWorkbook workbook = new HSSFWorkbook();// EXCEL
HSSFSheet sheet = workbook.CreateSheet();//
if (reader!= null )
{
while (reader.Read())
{
int i = 0;
string userName = reader.GetString(reader.GetOrdinal("Name"));
int id = (int)reader.GetValue(reader.GetOrdinal("ID"));
HSSFRow row = sheet.CreateRow(i); //
row.CreateCell(0, HSSFCell.CELL_TYPE_STRING).SetCellValue(userName);// cell Cell
row.CreateCell(1, HSSFCell.CELL_TYPE_NUMERIC).SetCellValue(id);
}
workbook.Write(context.Response.OutputStream);// EXCEL
}
else
{
}
//HSSFWorkbook workbook = new HSSFWorkbook();
//HSSFSheet sheet = workbook.CreateSheet();
//HSSFRow row1 = sheet.CreateRow(0);
//HSSFCell cell1 = row1.CreateCell(0, HSSFCell.CELL_TYPE_STRING);
//cell1.SetCellValue(" ");
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
操作データベースのコード
public IDataReader GetReader()
{
SqlConnection conn = new SqlConnection(strConn);
try
{
conn.Open();
string strCmd = "select * from Person";
SqlCommand cmd = new SqlCommand(strCmd,conn);
IDataReader reader = cmd.ExecuteReader();
return reader;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
}