java导出EXCEL表格—实战篇

本文详细介绍如何从bootstrap table中导出选定数据至CSV文件,包括前端JavaScript操作与后端Java处理流程,提供完整代码示例及工具类下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

附工具类:点我下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值