java 导出csv文件通过web下载

	所需maven
 <!-- https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv -->
    <dependency>
        <groupId>net.sourceforge.javacsv</groupId>
        <artifactId>javacsv</artifactId>
        <version>2.0</version>
    </dependency>


public void exportOrder(OrderPar orderPar,HttpServletResponse getResponse){
	        //查询需要导出得数据
	        orderPar.setPageNum((orderPar.getPageNum().equals(0))?1:orderPar.getPageNum());
	        orderPar.setPageNum(((orderPar.getPageNum().equals(1))?1:(orderPar.getPageNum()*orderPar.getPageSize())-1)-1);
	        //查询供应商订单
	        List<Order> orderList=this.orderExtMapper.supplierFindOrderList(orderPar);
	        //查询总页数
	        Integer count =this.orderExtMapper.findPOrderCountByUserId(orderPar);
	        for (int i=0;i<orderList.size();i++){
	            //根据商品id查询商品名称
	            ResponseBase<BusGoodsWithBLOBsDto> goodslist=busGoodsServiceFeign.detail(orderList.get(i).getGoodsId());
	            if (goodslist.getData()!=null){
	                orderList.get(i).setName(goodslist.getData().getName());
	                orderList.get(i).setSupplierName(goodslist.getData().getSupplierName());
	                orderList.get(i).setLogoImg(goodslist.getData().getLogoImg());
	                orderList.get(i).setPrice(goodslist.getData().getPrice()/100);
	                orderList.get(i).setCouponPrice(goodslist.getData().getDiscountPrice()/100);
	                orderList.get(i).setSelfCoding(goodslist.getData().getSelfCoding());
	                //goodsCartList.get(i).setPostage(goodslist.getData().getPostage());
	            }
	            //根据规格id查询规格
	            ResponseBase<BusGoodsSpecs> SpecDetail=busGoodsServiceFeign.getSpecDetail(orderList.get(i).getGoodsSpecId());
	            if (SpecDetail.getData()!=null){
	                String SpecDetailName=(StringUtils.isBlank(SpecDetail.getData().getName()))?"":SpecDetail.getData().getName();
	                orderList.get(i).setGoodsSpecsName(SpecDetailName);
	            }
	        }
	        try {
	            // 创建CSV写对象
	            List<Order> ls=new ArrayList<Order>();
	            for (int i = 0; i <orderList.size(); i++) {
	                switch (orderList.get(i).getPayType()){
	                    case 0:orderList.get(i).setPayName("微信支付");
	                    case 1:orderList.get(i).setPayName("支付宝支付");
	                    case 2:orderList.get(i).setPayName("银联支付");
	                }
	                SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	                if (orderList.get(i).getCreateTime()!=null){
	                    orderList.get(i).setCreatDate(DateUtils.DateToString(orderList.get(i).getCreateTime(),"yyyy-MM-dd HH:mm:ss"));
	                }
	                if (orderList.get(i).getPayTime()!=null){
	                    orderList.get(i).setPayDate(sf.format(orderList.get(i).getPayTime()));
	                }
	                if (orderList.get(i).getConsignTime()!=null){
	                    orderList.get(i).setConsignDate(sf.format(orderList.get(i).getConsignTime()));
	                }
	                if (orderList.get(i).getReceiveTime()!=null){
	                    orderList.get(i).setReceivingDate(sf.format(orderList.get(i).getReceiveTime()));
	                }
	                switch (orderList.get(i).getPayType()){
	                    case 0:orderList.get(i).setStatusName("待支付");
	                    case 1:orderList.get(i).setStatusName("取消支付");
	                    case 2:orderList.get(i).setStatusName("待发货");
	                    case 3:orderList.get(i).setStatusName("已发货");
	                    case 4:orderList.get(i).setStatusName("已签收");
	                    case 5:orderList.get(i).setStatusName("已退货");
	                    case 6:orderList.get(i).setStatusName("待退款");
	                    case 7:orderList.get(i).setStatusName("已退款");
	                    case 8:orderList.get(i).setStatusName("已完成");
	                }
	                ls.add(orderList.get(i));
	            }
	            //写入临时文件
	            File tempFile = File.createTempFile("vehicle", ".csv");
	            CsvWriter csvWriter = new CsvWriter(tempFile.getCanonicalPath(),',', Charset.forName("UTF-8"));
	            // 写表头
	            long s= System.currentTimeMillis();
	            System.err.println();
	            String[] headers = {"订单编号","订单状态","支付方式","支付时间","发货时间","确认收货时间","供应商名称","供应商自编码","商品名称","结算单价","数量","结算总价","订单创建时间","购买者账号"};
	            csvWriter.writeRecord(headers);
	            for (Order stu : ls) {
	                csvWriter.write(String.valueOf(stu.getOrderNum()));
	                csvWriter.write(String.valueOf(stu.getStatusName()));
	                csvWriter.write(String.valueOf(stu.getPayName()));
	                csvWriter.write(String.valueOf(stu.getPayDate()));
	                csvWriter.write(String.valueOf(stu.getConsignDate()));
	                csvWriter.write(String.valueOf(stu.getReceivingDate()));
	                csvWriter.write(String.valueOf(stu.getSupplierName()));
	                csvWriter.write(stu.getSelfCoding());
	                csvWriter.write(String.valueOf(stu.getName()));
	                csvWriter.write(String.valueOf(stu.getCouponPrice()));
	                csvWriter.write(String.valueOf(stu.getAmount()));
	                csvWriter.write(String.valueOf(stu.getCouponPrice()));
	                csvWriter.write(String.valueOf(stu.getCreatDate()
	                ));
	                csvWriter.write(String.valueOf(stu.getUserId()));
	                csvWriter.endRecord();
	            }
	            csvWriter.close();
	            long e=System.currentTimeMillis();
	
	            System.err.println(e-s);;
	
	            /**
	             * 写入csv结束,写出流
	             */
	            java.io.OutputStream out = getResponse.getOutputStream();
	            byte[] b = new byte[10240];
	            java.io.File fileLoad = new java.io.File(tempFile.getCanonicalPath());
	            getResponse.reset();
	            getResponse.setContentType("application/csv");
	            getResponse.setHeader("content-disposition", "attachment; filename=order.csv");
	            long fileLength = fileLoad.length();
	            String length1 = String.valueOf(fileLength);
	            getResponse.setHeader("Content_Length", length1);
	            java.io.FileInputStream in = new java.io.FileInputStream(fileLoad);
	            int n;
	            while ((n = in.read(b)) != -1) {
	                out.write(b, 0, n); //每次写入out1024字节
	            }
	            in.close();
	            out.close();
	
	        } catch (IOException e) {
	            e.printStackTrace();
	        }
	    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值