wuaji 发表于 2015-8-2 09:12:04

使用Apache POI创建Excel,并从数据库中读取数据写入到Excel文件中

  介绍:
  Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。

  结构:
  HSSF - 提供读写Microsoft Excel格式档案的功能。
  XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
  HWPF - 提供读写Microsoft Word格式档案的功能。
  HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
  HDGF - 提供读写Microsoft Visio格式档案的功能。
  
  详情:http://poi.apache.org/
  步骤:
  数据库字段http://images.iyunv.com/cnblogs_com/kanjingcai/无标题.png
  
  
  创建一个连接数据库(UtilsUtils.java)
  
  package org.html.model;
  import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
  public class Utils {
  private static Connection con;
private static String Driver ="com.mysql.jdbc.Driver";
private static String url ="jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8";
private static String username ="root";
private static String password ="123";
  public static Connection getConnection(){
  try {
   Class.forName(Driver);
  con =DriverManager.getConnection(url,username,password);
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
} catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
}
return con;
}
  public static void closeDB(ResultSet rs ,Statement st ,Connection con){
try {
   if(rs !=null){
    rs.close();
    rs =null;
   }
   if(st !=null){
    st.close();
    st =null;
   }
   if(con !=null){
    con.close();
    con =null;
   }
} catch (SQLException e) {
   e.printStackTrace();
}

}
}

  
  
  
  创建一个Model(PersonModel.java)
  
public class PersonModel {   
  private int id ;
private String name;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

}

    创建一个测试类(PersonDao.java)
package org.poi.excel.dao;   
  import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
  import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.html.model.PersonModel;
import org.html.model.Utils;
  public class PersonDao {

public static List QueryPerson(){
Connection con =null;
Statement st =null;
ResultSet rs =null;
  String sql ="select * from persons";
con =Utils.getConnection();
List list =new ArrayList();

try {
   st =con.createStatement();
   
   rs =st.executeQuery(sql);
  while(rs.next()){
    PersonModel model =new PersonModel();
    model.setId(rs.getInt(1));
    model.setName(rs.getString(2));
  list.add(model);
   }
} catch (SQLException e) {
   e.printStackTrace();
}finally{
   Utils.closeDB(rs, st, con);
}
return list;
}

public void CreateExcel(){

//创建一个工作簿
HSSFWorkbook workBook =new HSSFWorkbook();
  //创建一个工作表,名为:第一页
HSSFSheet sheet =workBook.createSheet("第一页");

//设置单元格的宽度(0:表示第一行的第一个单元格,1:第一行的第二个单元格)
sheet.setColumnWidth((short)0, 2500);
sheet.setColumnWidth((short)1, 5000);

//创建一个单元格,从0开始
HSSFRow row =sheet.createRow((short)0);
  //构造一个数组设置第一行之后的单元格
HSSFCell cell[] =new HSSFCell;
  for(int i=0 ;i 0){
   
   //循环list中的数据
   for(int i =0;i
页: [1]
查看完整版本: 使用Apache POI创建Excel,并从数据库中读取数据写入到Excel文件中