CSV导出实例

最近写了一个前台浏览器csv导出实例,csv导出需要传入字节,以“,”分割

@ApiOperation(value = "导出订单详情", notes = "导出订单详情", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @RequestMapping(value = "/api/order/query/exportOrderDetail", method = RequestMethod.GET)
    public ResponseEntity export(@RequestParam String orderNoList) throws Exception {
        if(StringUtil.isEmpty(orderNoList)){
            return null;
        }
        String []array=orderNoList.split(",");

        List<UserOrderDto> list=allianceService.exportOrderDetail(array);
        HttpHeaders headers = new HttpHeaders();
        headers.add("Pragma", "public");
        headers.add("Cache-Control", "max-age=30");
        headers.add("Content-Disposition","attachment;filename="+System.currentTimeMillis()+".csv");
        headers.setContentType(MediaType.valueOf("application/vnd.ms-excel;charset=UTF-8"));
        String[] sTitles = new String[]{"订单号","商品名称","商品规格","商品数量","商品下单时间","商品价格","佣金比例","佣金","订单状态","收货人","收货人联系方式","收货人地址"};
        StringBuffer buf = new StringBuffer();
        // 完成数据csv文件的封装
        // 输出列头
        for (int i = 0; i < sTitles.length; i++) {
            buf.append(sTitles[i]).append(",");
        }
        buf.append("\r\n");
        if (null != list) { // 输出数据
            for (int i = 0; i < list.size(); i++) {
                buf.append("\t"+list.get(i).getOrderNo()).append(",");
                buf.append(list.get(i).getItemTitle()).append(",");
                buf.append(list.get(i).getSkuName()).append(",");
                buf.append(list.get(i).getItemNumber()).append(",");
                buf.append(DateUtil.format(list.get(i).getOrderTime(),DateUtil.FORMAT_DATE_DEFAULT)).append(",");
                buf.append(list.get(i).getPayPrice()).append(",");
                buf.append(list.get(i).getRuleText()).append(",");
                buf.append(list.get(i).getBonusAmount()).append(",");
                buf.append(list.get(i).getOrderStatus()).append(",");
                buf.append(list.get(i).getReceiverName()).append(",");
                buf.append("\t\t"+list.get(i).getReceiverTelephone()).append(",");
                buf.append(list.get(i).getAddress()).append(",");
                buf.append("\r\n");
            }
        }
        //防止导出乱码
        byte[] uft8bom={(byte)0xef,(byte)0xbb,(byte)0xbf};
        // 写出响应
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        os.write(uft8bom);
        os.write(buf.toString().getBytes("utf-8"));
        os.flush();
        os.close();
        return ResponseEntity.ok().headers(headers).body(os.toByteArray());
    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值