PersonDAO.java:如何導出JDBC模板結果Excel工作表
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尚未創建。代碼中可能有什麼錯誤。
任何人都可以幫助解決這個問題。 謝謝
如何將結果集寫入平面文件例如CSV文件?沒有需要的API。 Excel有能力將文本轉換爲列 – jmcg
@jmcg。感謝您的建議。我沒有試過,但只是寫入一個CSV文件將打開Excel文件呢? –
是啊Excel可以打開一個csv文件。然後您可以使用excel的文本列功能將每個數據排列到相應的列中。看看這個鏈接http://superuser.com/questions/407082/easiest-way-to-open-csv-with-commas-in-excel – jmcg