HttpHandler实现从数据库表导出Excel文件(使用NPOI库)

1.新建“导出Excel”asp.net Web应用程序 文件。

2.拷贝NPOI库文件到新建的“lib”目录下,添加引用把7个.dll选上。

3.添加一般处理程序,文件名DownloadExcel1.ashx

4.建数据库UserDB.mdf 字段为:UserName,Password

5.在Default.aspx文件中加上:

    <div>
    <a href ="DownloadExcel1.ashx">下载Excel</a>
    </div>

6.在DownloadExcel1.ashx.cs文件中添加以下代码:

 context.Response.ContentType = "application/x-excel";
            string filename = HttpUtility.UrlEncode("用户数据.xls");           
            context.Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
            HSSFWorkbook workbook = new HSSFWorkbook();
            HSSFSheet sheet = workbook.CreateSheet();
            using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\UserDB.mdf;Integrated Security=True;User Instance=True"))
               {
                conn.Open();
                using (IDbCommand cmd = conn.CreateCommand())
                {
                  cmd.CommandText = "select * from T_Users";
                  using (IDataReader reader = cmd.ExecuteReader())
                   {
                     int rownum = 0;
                     while (reader.Read())
                       {
                         string username = reader.GetString(reader.GetOrdinal("UserName"));
                         string password = reader.GetString(reader.GetOrdinal("Password"));
                         HSSFRow row = sheet.CreateRow(rownum);
                         row.CreateCell(0, HSSFCell.CELL_TYPE_STRING).SetCellValue(username);
                         row.CreateCell(1, HSSFCell.CELL_TYPE_STRING).SetCellValue(password);
                         rownum++;
                        }
                    }
                }
            }
            workbook.Write(context.Response.OutputStream);
        }

7.运行结果

2011062322174719.jpg

的打开后文件:

2011062322183770.jpg

http://down.51cto.com/ 下载NPOI包

8.代码下载http://files.cnblogs.com/hao1234/%E5%AF%BC%E5%87%BAexcel.rar

转载于:https://www.cnblogs.com/hao1234/archive/2011/06/23/2088497.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值