现在的位置: 首页 > 综合 > 正文

使用POI出生成Excel报表

2018年05月05日 ⁄ 综合 ⁄ 共 1293字 ⁄ 字号 评论关闭

与数据库结合使用

  使用POI,结合JDBC编程技术,我们就可以方便地将数据库中的数据导出生成Excel报表。其关键代码如下:

/*把数据集rs中的数据导出至Excel工作表中。
*传入参数:数据集rs,Excel文件名称xlsName,工作表名称sheetName。
*/

public static void resultSetToExcel(ResultSet rs,String xlsName,String sheetName) throws Exception
{
 HSSFWorkbook workbook = new HSSFWorkbook();
 HSSFSheet sheet = workbook.createSheet();
 workbook.setSheetName(0,sheetName,HSSFWorkbook.ENCODING_UTF_16);
 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.setEncoding(HSSFCell.ENCODING_UTF_16);
  cell.setCellValue(md.getColumnLabel(i));
 }

 int iRow=1;
 //写入各条记录,每条记录对应Excel中的一行
 while(rs.next())
 {row= sheet.createRow((short)iRow);;
  for(int j=1;j<=nColumn;j++)
  {
   cell = row.createCell((short)(j-1));
   cell.setCellType(HSSFCell.CELL_TYPE_STRING);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue(rs.getObject(j).toString());
  }
  iRow++;
 }
 FileOutputStream fOut = new FileOutputStream(xlsName);
 workbook.write(fOut);
 fOut.flush();
 fOut.close();
 JOptionPane.showMessageDialog(null,"导出数据成功!");
}

  结束语

  POI功能强大,还可以设置单元格格式、设置页眉页脚等。限于篇幅的关系就不一一举例了,感兴趣的读者可以参考其帮助文档(在图2.1的doc文件夹中)。总之,使用POI,我们可以较好地解决Java编程中的Excel报表问题,进一步满足用户的需求.

抱歉!评论已关闭.