所用Jar包
1. sqljdbc4.jar
连接数据库的Jar包(根据数据库的不同进行选择,我用的SqlServer2008)
2.Jxl.jar
访问Excel的Jar包
注意:支持以.xls结尾的Excel文件,可能不支持.xlsx结尾的
实现效果:
数据库数据:
导出的Excel:
完整代码:
导出的核心代码就四五行
类里需要import的包也都贴上:
package xsl; 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.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; public class Export { public static void main(String[] args) throws RowsExceededException, WriteException, IOException { //1. 导出Excel的路径 String filePath = "C:/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)获取第一个区域 try { //2. 连接数据库的几行代码 Connection con = null; PreparedStatement ps = null; ResultSet rs = null; String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test;"; String sql = "select * from students"; con = DriverManager.getConnection(url, "sa", "123456"); ps = con.prepareStatement(sql);// SQL预处理 rs = ps.executeQuery(); //ResultSet是数据库中的数据,将其转换为List类型 List<Student> list = new ArrayList<Student>(); while(rs.next()){ Student stu = new Student(); stu.setId(rs.getInt("id")); stu.setName(rs.getString("name")); list.add(stu); } ps.close(); con.close(); for(int i = 0; i<list.size(); i++){ //Number对应数据库的int类型数据 sheet.addCell(new jxl.write.Number(0,i,list.get(i).getId())); //Label对应数据库String类型数据 sheet.addCell(new Label(1,i,list.get(i).getName())); } wwb.write(); } catch (SQLException e) { e.printStackTrace(); }finally{ wwb.close(); } } }
写的比较乱,但是可运行,因为我也是刚学会,才看了一会儿,以后深入了解后,再来整理