JAVAWeb利用CsvWriter实现简单的csv导出

本文介绍了一个使用Java进行CSV文件导出的例子,展示了如何从数据库获取数据并将其转换为CSV格式,同时提供了前端触发导出功能的方法。

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

pom.xml↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
			<dependency>
				<groupId>net.sourceforge.javacsv</groupId>
				<artifactId>javacsv</artifactId>
				<version>2.0</version>
			</dependency>


controller↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
	@RequestMapping("export")
	public void exportExcel(HttpServletRequest request, HttpServletResponse response,String selectDateL,String selectDateR,String orderCode,Long storeId) throws IOException{
		PageInfo<IncomeInfo> page = incomeInfoService.selectIncomeBySearch(999999, 1, selectDateL,selectDateR,orderCode,storeId);
		 ServletOutputStream out = response.getOutputStream();
	        List<IncomeInfo> incomeInfoList = page.getList();
	        // 文件名
	        String fileName = new String("交易记录.csv".getBytes("UTF-8"), "ISO-8859-1");
	        request.getHeader("User-Agent");
	        response.setCharacterEncoding(request.getCharacterEncoding());
	        response.setContentType("application/octet-stream");
	        response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
	        CsvWriter write = new CsvWriter(out, ',', Charset.forName("gb2312"));
	        write.setForceQualifier(true);
	        //设置表头
	        write.writeRecord(new String[] {"","店铺ID","店铺名称", "创建时间", "订单编号", "下单时间", "订单金额", "消费用户", "订单状态" });
	        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
	        //遍历数据集合
	        for(int index=0;index<incomeInfoList.size();index++) {
	        	IncomeInfo incomeInfo = incomeInfoList.get(index);
	        	String createDate = incomeInfo.getCreateDate() != null ? sdf.format(incomeInfo.getCreateDate()) : "";
	        	String csv_storeName = incomeInfo.getStoreName() != null ? incomeInfo.getStoreName().toString() : "";
	        	String orderAmount = incomeInfo.getOrderAmount() != null ? incomeInfo.getOrderAmount().toString() : "";
	        	String userName = incomeInfo.getUserName() != null ? incomeInfo.getUserName().toString() : "";
	        	String orderStatus = incomeInfo.getOrderStatus() != null ? incomeInfo.getOrderStatus().toString() : "";
	        	String settleDate = incomeInfo.getSettleDate() != null ? sdf.format(incomeInfo.getSettleDate()) : "";
	        	String csv_storeId = storeId != null ? storeId.toString().toString() : "";
	        	String csv_orderCode = incomeInfo.getOrderCode() != null ? incomeInfo.getOrderCode().toString() : "";
	            String[] writeArr = { String.valueOf(index + 1), csv_storeId,csv_storeName,
	            		createDate,csv_orderCode, settleDate,orderAmount,userName,orderStatus.replaceAll("[(|)]", "") };
	            try {
	                write.writeRecord(writeArr);
	            } catch (IOException e) {
	                e.printStackTrace();
	            }
	        }
	        write.flush();
	        write.close();
	        response.flushBuffer();
	        
    }

第一次写博客,只是简单的将代码复制过来!在这里插入图片描述

前端js

$("#export").on('click',function export1(){
	var param=getEditFormData();
	alert("导出");
	/*storeId : $("#storeId").val(),
	selectDateL : $("#startId").val(),
	selectDateR : $("#endId").val(),
	orderCode : $("#orderId").val()*/
	var storeId = $("#storeId").val();
	var selectDateL = $("#startId").val();
	var selectDateR = $("#endId").val();
	var orderCode = $("#orderId").val();
	console.log("1231:"+storeId,selectDateL,selectDateR);
	if(storeId != null && selectDateL != null && selectDateR != null){
		location.href="export?storeId="+storeId+"&selectDateL="+selectDateL+"&selectDateR="+selectDateR+"orderCode="+orderCode;	
	}
})

在这里踩过一个坑,就是别用$post()请求,否则绑定事件以后怎么都请求不到,具体原因后期在研究吧,先把功能实现了再说,时间紧迫在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值