java实现将数据库数据查询出来并导出成excel

大致思路:首先利用jxl-2.6.12.jar中的方法创建一个excel文件,并将sheet页和在第一行中将每一个列写好,然后连接数据库将查询结果放入List中(java集合类是一种特别有用的工具类,我们做项目或者做一些小程序也有可能用到它;可用于存储数量不等的对象,并且可以实现常用的数据结构,比如栈、队列等。Java集合大致可以分List、Set、Queue和Map四种体系,主要详细讲讲List集合。那么List集合的主要特点:List代表有序、重复的集合,即元素按进入先后有序保存,可重复),并将数据结果注入到表对应的对象中,在从对象中获取属性值赋值写到sheet中。

image.png

主要实现:
package com.excel;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class TranferExcel {
public static void main(String[] args) throws RowsExceededException, WriteException, IOException {

    //1. 导出Excel的路径
    String filePath = "E:/export.xls";
    WritableWorkbook wwb =null;

    try {
        wwb = Workbook.createWorkbook(new File(filePath));
    } catch (Exception e) {
        e.printStackTrace();
    }

    //创建Excel表的"学生"区域的数据
    WritableSheet sheet = wwb.createSheet("学生信息",0);//或者rwb.getSheet(0)获取第一个区域
    //设置titles
    String[] titles={"编号","姓名","地址"};
    //单元格
    Label label=null;
    //第一行设置列名
    for(int i=0;i list = new ArrayList<>();
        while(rs.next()){
            Student stu = new Student();
            stu.setId(rs.getInt("id"));
            stu.setName(rs.getString("name"));
            stu.setAddr(rs.getString("addr"));//不要写成rs.getAddr ,getAddr只是student对象才有的方法

            list.add(stu);
        }
        ps.close();
        con.close();
        for(int i = 0; i

}

实体类:


image.png

涉及jar包与表:


image.png
image.png

缺点:jxl也有不足的地方,最主要体现在,它支持生成的报表最大行数为65535,如果超过这个数量,将会产生异常,而且也不支持Excel 2007+版本

你可能感兴趣的:(java实现将数据库数据查询出来并导出成excel)