java导出EXCEL表格—实战篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jqc874789596/article/details/84836612

做过后台管理系统的小伙伴基本都做过这个功能——导出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;
	}

附工具类:点我下载

猜你喜欢

转载自blog.csdn.net/jqc874789596/article/details/84836612
今日推荐