将查询的记录导出成excel表(poi)

时间:2021-05-07 00:49:03

POI主要对象

POI对象名称 对应的Excel对象
HSSFWorkbook 工作簿
HSSFSheet 工作表
HSSFRow
HSSFCell 单元格

poi与将查询结果集组合一起使用,具体代码如下:

public static void resultSetToExcel(ResultSet rs,String xlsName,String sheetName) throws Exception{
HSSFWorkbook workbook=new HSSFWorkbook();//创建一个excel文件
HSSFSheet sheet=workbook.createSheet();//创建一个工作表
workbook.setSheetName(0, sheetName);//设置工作表的名称
HSSFRow row=sheet.createRow((short)0);//在这个工作表中创建一行
HSSFCell cell;
ResultSetMetaData md=rs.getMetaData();//得到数据表的字段
int nColumn=md.getColumnCount();//得到字段数量
//写入各个字段的名称
for(int i=1;i<=nColumn;i++){
cell=row.createCell((short)(i-1));//创建一个单元格
cell.setCellType(HSSFCell.CELL_TYPE_STRING);//设置这个单元格的数据类型
cell.setCellValue(md.getColumnLabel(i));//设置这个单元格的值
}

int iRow=1;
//写入各条记录,每条记录对应Excel中的一行
while(rs.next()){
row=sheet.createRow((short)iRow);//创建第iRow行
for(int j=1;j<=nColumn;j++){
cell=row.createCell((short)(j-1));//创建一个单元格
cell.setCellType(HSSFCell.CELL_TYPE_STRING);//设置这个单元格的数据类型
cell.setCellValue(rs.getObject(j).toString());//得到数据并存储在单元格中
}
iRow++;
}
FileOutputStream fOut=new FileOutputStream(xlsName+".xls");
workbook.write(fOut);
fOut.flush();
fOut.close();
JOptionPane.showMessageDialog(null, "导出数据成功!");
}

导出的*xls文件在工程的根目录下