将数据库中的数据用java程序导出成Excel

来源:互联网 发布:mac版安装jdk 编辑:程序博客网 时间:2024/06/10 08:26

 

package com.jn.util.file.office;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.sql.SQLException;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;/*** * 将数据库中的数据导出成Excel * @author 江南 * @create time 2008.11.3 * @see * 说明:该类是在apache的poi组件来实现的 * 用户只要提供给writeExcel方法文件名,表头名,和一个ResultSet对象我们就可以 * 实现帮你写成 excel文件格式 * */public class ExcelFile {/** * 写Excel操作 * @param fileName * 文件名,文件要写入到的盘符和文件名,但不需要后缀名 * @param fieldName * 表头名 * @param res * 数据对象,java.sql.ResultSet */public static void writeExcel(String fileName,String [] fieldName,java.sql.ResultSet res){FileOutputStream fos =null;try { fos = new FileOutputStream(fileName+".xls"); HSSFWorkbook wb = new HSSFWorkbook();      HSSFSheet s = wb.createSheet();      createTag(fieldName,s);//写表格的头部     createValue(res,s);//获取数据集,然后获得数据,写文件     wb.write(fos);      fos.close(); } catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{if(fos!=null){try {fos.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}/** * 创建表格表头 * @param tags * @param s */private  static void createTag(String [] tags,HSSFSheet s){HSSFRow row = s.createRow(0);         HSSFCell cell = null;        for(int i=0;i<tags.length;i++)        {        cell = row.createCell(i);        cell.setCellValue(tags[i]);        }}/** * 设置表格内容 * @param res * @param s */private  static void createValue(java.sql.ResultSet res,HSSFSheet s){try {int flag = 1;int count = res.getMetaData().getColumnCount();HSSFRow row = null; HSSFCell cell = null;while(res.next()){row = s.createRow(flag);for(int i=1;i<=count;i++){cell = row.createCell(i-1);Object obj = res.getObject(i);cell.setCellValue(obj+"");}flag++;}} catch (SQLException e) {e.printStackTrace();}}}
package com.text;import com.jn.util.file.office.ExcelFile;public class ExcelFileText {public static void main(String [] args){String sql = "select title_id,title,pub_id from titles";DBAccess dba = new DBAccess();ExcelFile.writeExcel("D://text",new String[]{"文章编号","文章主题","Pub_ID"},dba.query(sql));dba.closeConn();}}