zoukankan      html  css  js  c++  java
  • 订单导出

    项目的后台系统可能会用到这个功能,我也是第一次接触。看了许久才整明白。。。

    思路:将订单数据通过数据库查出,然后将所有数据用逗号和换行拼接成一个字符串(最关键也是最麻烦的一步),最后把这个字符串以csv格式的文件下载到本地就完事啦。

    1:查数据,给要导出的数据文件起名(xxx.csv)

    2:各种拼接数据

    3:下载文件

    贴出例子:

    #########################################################################################    

    case "new_export_order":
    $list = $cls_order->new_export_order();
    $order_list = $list;
    $add_date = date("Y-m-d");
    $csv_name = $add_date.".csv";
    $str = "";
    if($order_list){

    $str .= "商品名称,";
    $str .= "商品个数,";
    $str .= "商品SKU,";
    $str .= "商品单价,";
    $str .= "订单号,";
    $str .= "买家姓名,";
    $str .= "联系方式,";
    $str .= "买家昵称,";
    $str .= "nessoft ID,";
    $str .= "支付时间,";
    $str .= "订单金额,";
    $str .= "订单状态,";
    $str .= "收货地址,";
    $str .= "关联活动,";
    $str .= "活动备注,";
    $str .= "活动凭证,";
    // $str .= "标记,";
    $str .= " ";
    foreach($order_list AS $key => $value) {
    $sql = "SELECT B.name, C.other_cfg, C.activity_pic FROM orbase AS A, base_activity AS B, relation AS C WHERE A.id = C.order_id AND C.activity_id = B.id AND A.id = '{$value['id']}' ";
    $order_activity_info = $GLOBALS['DB']->get_results($sql);
    $activity_name = '';
    $other_cfg = '';
    $activity_pic = '';
    if($order_activity_info) {
    foreach ($order_activity_info as $KKK => $VVV) {
    $activity_name .= "{$VVV['name']} ";
    $other_cfg .= "{$VVV['other_cfg']} ";
    $activity_pic .= "{$VVV['activity_pic']} ";
    }
    }
    $pay_time = $value['pay_time'] > 0 ? date("Y-m-d H:i:s",strtotime($value['pay_time'])) : '未付款';
    $str .= " {$value['title']},";
    $str .= " {$value['num']},";
    $str .= " {$value['outer_sku_id']},";
    $str .= " {$value['item_payment']},";
    $str .= " {$value['tid']},";
    $str .= " {$value['receiver_name']},";
    $str .= " {$value['receiver_mobile']},";
    $str .= " {$value['buyer_nick']},";
    $str .= ""{$value['nespresso_no_id']}",";
    $str .= " $pay_time,";
    $str .= " {$value['payment']},";
    foreach ($GLOBALS ['ORDER_STATUS'] as $status_key => $status_value) {
    if($value['order_status'] == $status_key) {
    $order_list[$key]['order_status'] = $status_value;
    }
    }
    $str .= " {$order_list[$key]['order_status']},";
    $str .= " {$value['receiver_state']}{$value['city']}{$value['district']}{$value['address']}{$value['zip']},";
    $str .= ""{$activity_name}",";
    $str .= ""{$other_cfg}",";
    $str .= ""{$activity_pic}",";
    // if($value['offline_active_tag'] > 0) {
    // $sql = "SELECT active_tag FROM base_activity_rule WHERE id = '{$value['offline_active']}' ";
    // $active_tag = $GLOBALS['DB']->get_var($sql);
    // $str .= ""{$active_tag}{$value['offline_active_tag']}",";
    // }else {
    // $str .= ",";
    // }
    $str .= " ";
    }

    }
    header("Content-type: application/octet-stream; charset=utf-8");
    header("Accept-Ranges:bytes");
    header("Content-type:application/vnd.ms-excel");
    header("Content-Disposition:attachment;filename=".$csv_name);
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    $str = mb_convert_encoding($str,"GBK","UTF-8"); //将这个字符串转码  从UTF8转为GBK格式
    echo $str;
    break;

    ######################################################################################

    其中     表示换行且回到下一行的最前端
         表示换行
         表示移至下一列

  • 相关阅读:
    grub menu from pygrub
    Unix调试的瑞士军刀:lsof
    Quantum & r2q
    Linux TC基于CBQ队列的流量管理范例
    hfsc
    用bash做个tcp客户端
    [转]HFSC Scheduling with Linux
    [转]如何判断 Linux 是否运行在虚拟机上
    TSO
    使用VS2008进行WEB负载测试
  • 原文地址:https://www.cnblogs.com/xionghao/p/6743685.html
Copyright © 2011-2022 走看看