zoukankan      html  css  js  c++  java
  • 使用NPOI导出数据库到Excel文件

    教程地址: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>
  • 相关阅读:
    Effective Java 19 Use interfaces only to define types
    Effective Java 18 Prefer interfaces to abstract classes
    Effective Java 17 Design and document for inheritance or else prohibit it
    Effective Java 16 Favor composition over inheritance
    Effective Java 15 Minimize mutability
    Effective Java 14 In public classes, use accessor methods, not public fields
    Effective Java 13 Minimize the accessibility of classes and members
    Effective Java 12 Consider implementing Comparable
    sencha touch SortableList 的使用
    sencha touch dataview 中添加 button 等复杂布局并添加监听事件
  • 原文地址:https://www.cnblogs.com/zhuiyi/p/2037195.html
Copyright © 2011-2022 走看看