package cn.li;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
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;
public class de {
/**
* @param dname 数据库名字
* @param tname 数据库中表名
* @return 返回路径文件路径名
*/
public static String writeExcel(String dname,String tname) {
//写入的文件路径名
String filepath="E:/Excel/"+tname+".xls";
HSSFWorkbook book=new HSSFWorkbook();
//设置表的名字(sheet)
HSSFSheet sheet = book.createSheet("表");
try {
//-------连接数据库--------
Class.forName("com.mysql.jdbc.Driver");
Connection con;
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+dname+"?useUnicode=true&characterEncoding=utf-8","root","root");
Statement st = con.createStatement();
String sql = "select * from "+tname+" where username=17186099069";
ResultSet resultSet = st.executeQuery(sql);
ResultSetMetaData resultSetMetaData = resultSet.getMetaData();//得到结果集的字段名
//System.out.println(resultSetMetaData);
int count = resultSetMetaData.getColumnCount();//得到字段名的数量
//创建表单第一行,表头
HSSFRow row0 = sheet.createRow(0);
for(int i = 0;i<count;i++) {
HSSFCell cel = row0.createCell(i);//创建第一行的第i列
cel.setCellValue(resultSetMetaData.getColumnName(i+1));//设置第一行列名
//System.out.println(resultSetMetaData.getColumnName(i+1));
}
int r=1;
while(resultSet.next()) {
HSSFRow row = sheet.createRow(r++);
for(int i = 0;i<count;i++) {
HSSFCell cel = row.createCell(i);
cel.setCellValue(resultSet.getString(i+1));//将当前行的指定列的值存入
//System.out.println(resultSet.getString(i+1));
}
}
FileOutputStream out = new FileOutputStream(filepath);
book.write(out);
out.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return filepath;
}
}
使用poi导出数据库到表格
最新推荐文章于 2024-01-09 09:51:36 发布