Java:將數據庫數據導出到Excel (一眼就看會)


 

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

}

  

寫的比較亂,但是可運行,因為我也是剛學會,才看了一會兒,以后深入了解后,再來整理

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM