java匯出EXCEL表格—實戰篇
阿新 • • 發佈:2018-12-13
做過後臺管理系統的小夥伴基本都做過這個功能——匯出EXCEL表格。
今天寫篇文章,一旨在加深自己記憶,二給未做過此功能的小夥伴提供教程。
本文內容包含:實戰教程+工具類(工具類下載地址在文末)
宣告本文的業務場景:匯出在bootstraptable中選中的資料至CSV檔案。
靜態頁面
<button type="button" class="layui-btn" id="export2">匯出CSV檔案</button>
JS檔案
function bindButton2(){ //匯出EXCEL(已釋出資料) $("#export2").click(function (){ var rows = $('#exampleTable2').bootstrapTable('getSelections'); // 返回所有選擇的行,當沒有選擇的記錄時,返回一個空陣列 var ids = new Array(); // 遍歷所有選擇的行資料,取每條資料對應的ID $.each(rows, function(i, row) { ids[i] = row['id']; }); console.log("開始發起請求..."); var url ="這裡請填寫自己業務的介面路徑"; var data = { ids:ids }; DownLoad({ url:url,data:data }); }); } function DownLoad(options) { var config = $.extend(true, { method: 'post' }, options); var $iframe = $('<iframe id="down-file-iframe" />'); var $form = $('<form target="down-file-iframe" method="' + config.method + '" />'); $form.attr('action', config.url); for (var key in config.data) { $form.append('<input type="hidden" name="' + key + '" value="' + config.data[key] + '" />'); } $iframe.append($form); $(document.body).append($iframe); $form[0].submit(); $iframe.remove(); }
java後臺關鍵部分程式碼
@RequestMapping(path = "/export2", method = RequestMethod.POST) @ResponseBody R export2(@RequestParam("ids")int[] ids,HttpServletRequest httpServletRequest, HttpServletResponse response) throws IOException{ Long time = new Date().getTime(); String title = "已釋出資料" + ShiroUtils.getUser().getUsername() + "_" + time; String[] headers = { "日期", "遊戲名稱", ......}; List<FlowApproveDataDO> exportData = dataReleaseService.listInfoByIds2(ids);//關鍵資料 ExportExcel<FlowApproveDataDO> excel = new ExportExcel<FlowApproveDataDO>(); String fileName = title + ".csv";//匯出檔案的名稱並且加個格式 OutputStream out = response.getOutputStream(); try { response.setContentType("octets/stream"); response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("gb2312"), "iso8859-1")); excel.exportExcel("已釋出資料", headers, exportData, out, "yyyy-MM-dd"); } catch (Exception e) { e.printStackTrace(); } return null; }
附工具類:點我下載