如何将JDBC模板结果导出到Excel表单

PersonDAO.java:

public List<Map<String, Object>> searchPersons(Person person) String sql = "SELECT * FROM PERSON"; List<Map<String, Object>> result = jdbcTemplate.queryForList(sql); return result; } 

如何将result的数据转换为Excel表格下载。

试用Apache POI:

 Workbook workbook = new HSSFWorkbook(); Sheet sheet = workbook.createSheet("Person Detail"); Object[][] persons = { {"PersonNAmeA", 1001}, {"PersonNAmeB", 1002}, {"PersonNAmeC", 1003}, }; int rowCount = 0; for (Object[] person : persona) { Row row = sheet.createRow(++rowCount); int columnCount = 0; for (Object field : person) { Cell cell = row.createCell(++columnCount); if (field instanceof String) { cell.setCellValue((String) field); } else if (field instanceof Integer) { cell.setCellValue((Integer) field); } } } try (FileOutputStream outputStream = new FileOutputStream("PersonDetail.xlsx")) { workbook.write(outputStream); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

没有错误,但PersonDetail.xlsx尚未创build。 代码中可能有什么错误。

谁能帮助解决这个问题。 谢谢

您可以使用Apache POI或JexcelAPI 。 后者是更轻量级的解决scheme。 这里是一个很好的教程如何生成一个Excel表。

您甚至可以生成一个HTML表格并使用HTTP标头提供它:

 Content-Type: application/msexcel Content-Disposition: attachment; filename=NAMEOFWORKSHEET.xls 

然后打开,浏览器会提示将一个页面保存为Excel文件。

如何在html中格式化数据

如果您不需要格式化数据,请考虑写入普通的CSVstream。