[英]How to export JDBC template result to excel sheet
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。 代码中可能有什么错误。
任何人都可以在这个问题上提供帮助。 谢谢
您可以使用Apache POI或JexcelAPI 。 后者是更轻量级的解决方案。 这是一个很好的教程,如何生成Excel工作表。
您甚至可以生成一个HTML表并将其与HTTP标头一起提供:
Content-Type: application/msexcel
Content-Disposition: attachment; filename=NAMEOFWORKSHEET.xls
然后打开,浏览器将提示将页面另存为Excel文档。
如果您不需要格式化数据,请考虑写入纯CSV流。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.