使用NPOI导出数据库到Excel文件

简介: 教程地址:http://www.cnblogs.com/atao/category/209358.html NPOI文件包:http://u.115.com/file/aqr5pjb7 程序源码:http://u.

教程地址:http://www.cnblogs.com/atao/category/209358.html

NPOI文件包:http://u.115.com/file/aqr5pjb7

程序源码:http://u.115.com/file/bhvr12dq

 

代码中数据库链接字符串自己修改,还有对应的字段名之类的信息;

新建一个Handler.ashx(一般处理程序) 代码如下:

 

using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Data;
using  System.Data.SqlClient;
using  NPOI.HSSF.UserModel;


namespace  ExportToExcelWeb
{
    
///   <summary>
    
///  ExportToExcel 的摘要说明
    
///   </summary>
     public   class  ExportToExcel : IHttpHandler
    {

        
public   void  ProcessRequest(HttpContext context)
        {
            context.Response.ContentType 
=   " application/x-excel " ;
            
string  fileName  =  HttpUtility.UrlEncode( " 数据库文备份.xls " );
            context.Response.AddHeader(
" Content-Disposition " " attachment; fileName= "   +  fileName);   // 添加http协议报文;

            HSSFWorkbook workbook 
=   new  HSSFWorkbook();  // 创建一个xls;
            HSSFSheet sheet  =  workbook.CreateSheet();  // 创建一个Sheet页

            
string  connectString  =   @" server=localhost\sql2008;database=MyBlog; uid=sa; pwd=sql2008 " ;
            SqlConnection connection 
=   new  SqlConnection(connectString);
            connection.Open();

            
using  (IDbCommand cmd  =  connection.CreateCommand())  // 接口编徎;
            {
                cmd.CommandText 
=   " select * from Users " ;
                
using  (IDataReader reader  =  cmd.ExecuteReader())
                {
                    
int  rowsNum  =   0 ;   // 行号
                     while  (reader.Read())
                    {
                        
// 根据字段名找出ID
                         string  LoginId  =  reader.GetString(reader.GetOrdinal( " LoginId " ));
                        
string  LoginPwd  =  reader.GetString(reader.GetOrdinal( " LoginPwd " ));
                        
string  Name  =  reader.GetString(reader.GetOrdinal( " Name " ));
                        
string  QQ  =  reader.GetString(reader.GetOrdinal( " QQ " ));
                        
string  Mail  =  reader.GetString(reader.GetOrdinal( " Mail " ));

                        
/* *****************以上代码对应数据库表中的字段******************** */

                        HSSFRow row 
=  sheet.CreateRow(rowsNum);
                        row.CreateCell(
0 , HSSFCell.CELL_TYPE_STRING).SetCellValue(LoginId);
                        row.CreateCell(
1 , HSSFCell.CELL_TYPE_STRING).SetCellValue(LoginPwd);
                        row.CreateCell(
2 , HSSFCell.CELL_TYPE_STRING).SetCellValue(Name);
                        row.CreateCell(
3 , HSSFCell.CELL_TYPE_STRING).SetCellValue(QQ);
                        row.CreateCell(
4 , HSSFCell.CELL_TYPE_STRING).SetCellValue(Mail);

                        
/* *****************以上代码对应Excel文件的列*********************** */
                        rowsNum
++ ;
                    }
                }
            }

            workbook.Write(context.Response.OutputStream);  
// 输出到流中

        }

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

 

Aspx页面代码:

 

<% @ Page Language = " C# "  AutoEventWireup = " true "  CodeBehind = " Default.aspx.cs "  Inherits = " ExportToExcelWeb.Default "   %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head  runat ="server" >
    
< title ></ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
    
< href ="ExportToExcel.ashx" > 下载备份数据库文件到Excel格式 </ a >
    
</ div >
    
</ form >
</ body >
</ html >

 

目录
相关文章
|
3天前
|
数据格式 Python
【Python】已解决:Excel无法打开文件test.xIsx“,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
【Python】已解决:Excel无法打开文件test.xIsx“,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
29 0
|
16天前
|
存储 关系型数据库 MySQL
|
18天前
|
SQL XML 数据库
后端数据库开发高级之通过在xml文件中映射实现动态SQL
后端数据库开发高级之通过在xml文件中映射实现动态SQL
20 3
|
18天前
|
SQL XML Java
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
31 3
|
8天前
|
数据库
提取本地路径Jpg或者mp4文件的名字,导入mp4的名字,并导入数据库的源码
提取本地路径Jpg或者mp4文件的名字,导入mp4的名字,并导入数据库的源码
|
8天前
|
数据库
获取本地某文件中的以.jpg文件的名字,并导入数据库的测试代码
获取本地某文件中的以.jpg文件的名字,并导入数据库的测试代码
|
8天前
|
SQL 关系型数据库 MySQL
Navicate,数据库,Mysql,改表,4月29日Finished - Unsuccessfully,导出数据不妨,右键,备份一下Mysql数据库的内容,你想导入和导出数据不如,用查询的方式去做
Navicate,数据库,Mysql,改表,4月29日Finished - Unsuccessfully,导出数据不妨,右键,备份一下Mysql数据库的内容,你想导入和导出数据不如,用查询的方式去做
|
10天前
|
JSON JavaScript 数据格式
vue 电子表格Excel的上传导入、导出下载、读取本地Excel、json转Excel
vue 电子表格Excel的上传导入、导出下载、读取本地Excel、json转Excel
13 0
|
16天前
|
easyexcel Java API
Apache POI与easyExcel:Excel文件导入导出的技术深度分析
Apache POI与easyExcel:Excel文件导入导出的技术深度分析
|
17天前
如何使用Navicat导出Excel
如何使用Navicat导出Excel
12 0