所用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();
	        }
	        
	        
	    }

}

  

写的比较乱,但是可运行,因为我也是刚学会,才看了一会儿,以后深入了解后,再来整理

 

 posted on 2017-11-22 16:17  布鲁布鲁sky  阅读(8827)  评论(0编辑  收藏  举报