当前位置 博文首页 > Jqcode:java导出EXCEL表格—实战篇

    Jqcode:java导出EXCEL表格—实战篇

    作者:[db:作者] 时间:2021-09-16 10:35

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

    附工具类:点我下载

    cs
    下一篇:没有了