使用apache poi将数据库查询结果导出为excel
我通过一些示例代码使用Apache POI将数据导出为excel。 但是,我不确定如何将数据库查询结果导出到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限制。