java POI导出数据库的表内容

来源:互联网 发布:我的淘宝店铺怎么注销 编辑:程序博客网 时间:2024/05/29 15:10
<span style="font-size:14px;">package com.jdbc.c3p0;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.ResultSet;import java.sql.ResultSetMetaData;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;/** * java导出数据库中的表内容 * @author pwl * */public class ImportExcelUseC3p0 {public void importForExcel() throws SQLException{HSSFWorkbook wb=new HSSFWorkbook();// 数据库名称String dbName="studentmanger";//得到连接对象Connection con=DataSourceUtil.getConn();//创建StateMentStatement st=null;//得到数据库分析DatabaseMetaData dm=con.getMetaData();//得到数据库有多少表ResultSet rs=dm.getTables(dbName, dbName, null, new String[]{"TABLE"});List<String> tableNames=new ArrayList<String>();while(rs.next()){// 获得每张表的表名String tableName=rs.getString("TABLE_NAME");tableNames.add(tableName);}for(String tableName:tableNames){//创建每一张表HSSFSheet sheet=wb.createSheet(tableName);//写入数据String sql="select * from "+tableName;//执行查询语句st=con.createStatement();rs=st.executeQuery(sql);//得到结果集句柄ResultSetMetaData rsmd=rs.getMetaData();//得到当前表的列数int cols=rsmd.getColumnCount();//创建第一行HSSFRow row=sheet.createRow(0);//遍历每一列for(int i=0;i<cols;i++){String colunmName=rsmd.getColumnName(i+1);HSSFCell cell=row.createCell(i);//写入列名cell.setCellValue(colunmName);}//遍历数据int index=1;while(rs.next()){row=sheet.createRow(index++);for(int i=0;i<cols;i++){//得到每一列的值String value=rs.getString(i+1);//创建每一列HSSFCell cell=row.createCell(i);cell.setCellValue(value);}}}// 保存exceltry {wb.write(new FileOutputStream("f:/"+dbName+".xls"));} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}</span>

0 0