知乎專欄 | 多維度架構 | | | 微信號 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(); }