繁体   English   中英

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

[英]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 POIJexcelAPI 后者是更轻量级的解决方案。 这是一个很好的教程,如何生成Excel工作表。

您甚至可以生成一个HTML表并将其与HTTP标头一起提供:

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

然后打开,浏览器将提示将页面另存为Excel文档。

如何用html格式化数据

如果您不需要格式化数据,请考虑写入纯CSV流。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM