我是靠谱客的博主 大意故事,最近开发中收集的这篇文章主要介绍java jdbc+poi将ResultSet结果集生成的数据存入Excel对应sheet页,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
通过jdbc创建连接stmt 实例获取ResultSet结果集,由于结果集关闭则无法获取,所以需要一步写入或者持久化连接,我这里提供了一次写入关闭流。
首先conn.createStatement是支持持久化连接的,分为不带参,两个和三个参数,在jdbc2.0+,不了解的自行百度
/**
**@author zxf
**/
public static ArrayList<ResultSet> ResultSetList(String outName,String[] sheetNameList,String[] sql) throws Exception {
ArrayList<ResultSet> rSets=new ArrayList<ResultSet>();
try {
stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
for (int i = 0; i < sql.length; i++) {
String name = "";
ResultSet rs = stmt.executeQuery(sql[i]);
ResultSetMetaData rsdate = rs.getMetaData();
int count = rsdate.getColumnCount();
System.out.println(sql[i]);
rSets.add(rs);
String sheetName=sheetNameList[i];
ExcelUtil.toExcel(rs, outName,sheetName);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
stmt.close();
}
return rSets;
}
将获取的结果集写入Excel
public static void toExcel(ResultSet rs, String outName,String sheetName) throws Exception {
FileInputStream fileInputStream=new FileInputStream(outName);
HSSFWorkbook wb = new HSSFWorkbook(fileInputStream);
HSSFSheet sheet=null;
if (wb.getSheet(sheetName)==null) {
sheet = wb.createSheet(sheetName);
}
sheet=wb.getSheet(sheetName);
HSSFRow row = sheet.createRow(0);
HSSFCell cell;
for (int j = 0; j < rs.getMetaData().getColumnCount(); ++j) {
String colName = rs.getMetaData().getColumnLabel(j + 1);
cell = row.createCell(j);
cell.setCellValue(colName);
}
int i = 0;
while (rs.next()) {
row = sheet.createRow(i + 1);
for (int j = 0; j < rs.getMetaData().getColumnCount(); ++j) {
String c = rs.getString(j + 1);
row.createCell(j).setCellValue(c);
}
++i;
}
FileOutputStream foStream = new FileOutputStream(outName);
wb.write(foStream);
foStream.flush();
foStream.close();
}
最后
以上就是大意故事为你收集整理的java jdbc+poi将ResultSet结果集生成的数据存入Excel对应sheet页的全部内容,希望文章能够帮你解决java jdbc+poi将ResultSet结果集生成的数据存入Excel对应sheet页所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复