zoukankan      html  css  js  c++  java
  • Java 利用poi把数据库中数据导入Excel

    Java 利用poi把数据库中数据导入Excel

    效果:

    image

    使用时先把poi包导入工程的path,注意只需要导入poi包即可,下载后有三个jar包

    核心代码:

    连接数据库:DBConnection.java

    package org.xg.db;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    public class DBConnection {
    private final String DBUrl ="jdbc:mysql://localhost:3306/notebook" ;
    private final String DBDriver ="com.mysql.jdbc.Driver" ;
    private final String username ="root" ;
    private final String password ="riskfitfeng" ;
    private Connection con ;
    public DBConnection()
    {
    try {
    Class.forName(DBDriver) ;
    con = DriverManager.getConnection(DBUrl,username,password) ;
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    public Connection getDB()
    {
    return con ;
    }
    public void closeDb(ResultSet rs,PreparedStatement ps)
    {
    if(rs!=null)
    {
    try {
    rs.close() ;
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    
    e.printStackTrace(); } }
    if(ps!=null) { try { ps.close() ; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }

    导入excel类:MySql2Excel.java

    package org.xg.db;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFRichTextString;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    public class MySql2Excel {
    public MySql2Excel() throws Exception
    {
    Connection con = null ;
    DBConnection db = new DBConnection() ;
    con = db.getDB() ;
    String sql ="select * from students" ;
    ResultSet rs = con.createStatement().executeQuery(sql) ;
    // 获取总列数
    int CountColumnNum = rs.getMetaData().getColumnCount() ;
    int i =1 ;
    // 创建Excel文档
    HSSFWorkbook wb = new HSSFWorkbook() ;
    // sheet 对应一个工作页
    HSSFSheet sheet = wb.createSheet("student表中的数据") ;
    HSSFRow firstrow = sheet.createRow(0); //下标为0的行开始
    HSSFCell[] firstcell = new HSSFCell[CountColumnNum];
    String[] names = new String[CountColumnNum];
    names[0] ="ID";
    names[1] ="学号";
    names[2] ="姓名";
    names[3] ="性别";
    names[4] ="班级";
    for(int j= 0 ;j<CountColumnNum; j++){
    firstcell[j] = firstrow.createCell((short)j);
    firstcell[j].setCellValue(new HSSFRichTextString(names[j]));
    }
    while(rs.next())
    {
    // 创建电子表格的一行
    HSSFRow row = sheet.createRow(i) ; // 下标为1的行开始
    for(int j=0;j<CountColumnNum;j++)
    {
    // 在一行内循环
    HSSFCell cell = row.createCell((short) j) ;
    // 设置表格的编码集,使支持中文
    //// 先判断数据库中的数据类型
    // 将结果集里的值放入电子表格中
    cell.setCellValue(new HSSFRichTextString(rs.getString(j+1))) ;
    }
    i++ ;
    }
    // 创建文件输出流,准备输出电子表格
    OutputStream out = new FileOutputStream("E:\\person.xls") ;
    wb.write(out) ;
    out.close() ;
    System.out.println("数据库导出成功") ;
    rs.close() ;
    con.close() ;
    }
    public static void main(String[] args)
    {
    try {
    @SuppressWarnings("unused")
    MySql2Excel excel = new MySql2Excel() ;
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    

    例如你可以在前端jsp中这样调用:

    <a href="ReportServlet" onclick="return confirm('确认数据导出到E:/下?');">导出数据到Excel</a>

    后台servlet写上上面的代码,注意最后需要response.sendRedirect("") 返回前端

    源码下载:

    http://www.namipan.com/d/98cf9d03ab8f39ce3c107bb5b44b642dcb3ba581382a1400

    poi包下载:

    http://www.namipan.com/d/e0493749dd5e3a1f2e28a0a32493e5e026fae4aa1ac69c00

  • 相关阅读:
    MFC知识点总结
    fopen函数打开文件总是返回NULL错误
    四.Windows I/O模型之重叠IO(overlapped)模型
    三.Windows I/O模型之事件选择(WSAEventSelect )模型
    二.Windows I/O模型之异步选择(WSAAsyncSelect)模型
    6.openldap客户端安装
    5.openldap设置用户本身修改密码
    4.openldap创建索引
    3.openldap生成LDAP用户
    2.openldap安装
  • 原文地址:https://www.cnblogs.com/hongten/p/java_poi.html
Copyright © 2011-2022 走看看