| 知乎專欄 | 多維度架構 | | | 微信號 netkiller-ebook | | | QQ群:128659835 請註明“讀者” |
下面是一個導出 CSV 檔案的例子
@GetMapping("/export")
public void export(HttpServletResponse response) throws IOException {
response.setContentType("application/csv");
// response.setContentType("application/csv;charset=gb18030");
response.setHeader("Content-Disposition", "attachment; filename=\"file.csv\"");
BufferedWriter writer = new BufferedWriter(response.getWriter());
// 需要寫入 utf8bom 頭否則會出現中文亂碼
// byte[] uft8bom = { (byte) 0xef, (byte) 0xbb, (byte) 0xbf };
String bom = new String(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF });
writer.write(bom);
writer.write("A,B,C");
writer.newLine();
tableRepository.findAll().forEach(table -> {
try {
String tmp = String.format("%s,%s,%s", table.getId(), table.getMethod(), table.getMoney());
writer.write(tmp);
writer.newLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
});
writer.flush();
writer.close();
}