使用apache poi将数据库查询结果导出为ex​​cel

我通过一些示例代码使用Apache POI将数据导出为ex​​cel。 但是,我不确定如何将数据库查询结果导出到Excel文件。 我知道我们必须在行中创build单元格,然后为单元格设置值。 但是我已经有结果集中的数据,必须将其导出到Excel文件。 任何人都可以提供一个简单的代码来做同样的事情吗?

谢谢!

试试:参考Apache POI的开发者指南

示例人员表格:

+------------------+ | NAME | ADDRESS | +------------------+ | Jhone | USA | | Smith | USA | +------------------+ 

示例程序

 Workbook wb = new HSSFWorkbook(); Sheet personSheet = wb.createSheet("PersonList"); Row headerRow = personSheet.createRow(0); Cell nameHeaderCell = headerRow.createCell(0); Cell addressHeaderCell = headerRow.createCell(1); String sql = "select name, address from person_table"; PrepareStatement ps = connection.prepareStatement(sql); ResultSet resultSet = ps.executeQuery(); int row = 1; while(resultSet.next()) { String name = resultSet.getString("name"); String address = resultSet.getString("address"); Row dataRow = personSheet.createRow(row); Cell dataNameCell = dataRow.createCell(0); dataNameCell.setCellValue(name); Cell dataAddressCell = dataRow.createCell(1); dataAddressCell.setCellValue(address); row = row + 1; } String outputDirPath = "D:/PersonList.xls"; FileOutputStream fileOut = new FileOutputStream(outputDirPath); wb.write(fileOut); fileOut.close(); 

对于HSSF格式,可以使用Cocoonpipe道将数据库查询的结果作为XML传递给POI串行器。

这样做的好处是不会使数据库查询与POI API的调用纠缠在一起。

我正在调查升级序列化程序以处理XSSF格式所需的工作量,以克服最终电子表格中行数的64k限制。