1. 程式人生 > >java匯出EXCEL表格—實戰篇

java匯出EXCEL表格—實戰篇

做過後臺管理系統的小夥伴基本都做過這個功能——匯出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;
	}

附工具類:點我下載