php导出数据到excel中

 function exportCSV($params = array())
    {
        try {
            set_time_limit(0);
            @ini_set('memory_limit', '256M');
            //设置好告诉浏览器要下载excel文件的headers
            header('Content-Description: File Transfer');
            header('Content-Type: application/vnd.ms-excel;charset=utf-8');
            $file_name = 'goods_excel' . date('ymdhis', time()) . '.csv';
            header('Content-Disposition: attachment; filename="' . $file_name . '"');
            header('Expires: 0');
            header('Cache-Control: must-revalidate');
            $fp = fopen('php://output', 'a');//打开output流
            $columns = ['序号', 'sku外部对接码', '商品标题', '商品短标题', 'sku属性', 'sku价格', '上架时间', '商品状态', '一级分类', '二级分类', '品牌中文', '品牌英文', '商品页地址', '品牌页地址', '商品坑位图片地址'];
            foreach ($columns as $i => $v) {
                $columns[$i] = iconv('utf-8', 'GBK', $v);
            }
            fputcsv($fp, $columns);//将数据格式化为CSV格式并写入到output流中
            ob_flush();
            flush();
            unset($params['limit']);
            unset($params['offset']);
            $goods_list = $this->goods_model->get_goods_list_csv($params);
            foreach ($goods_list['records'] as $key => $val) {
                $goods_list['records'][$key]['preview_good'] = $this->config->item('preview_good_url') . $val['code'];
                $goods_list['records'][$key]['brand_age_url'] = 'http://mihe.ruwii.com/mihe/#/Make?code' . $val['code'];
                //查询规格
                $sku_result = $this->goods_sku_model->select(array('goods_code' => $val['code'], 'del_flag' => 1));
//                $sku_result = $this->goods_sku_model->select(array('goods_code' => 'G2019061114392645','del_flag'=>1));
                $goods_list['records'][$key]['platform_code'] = $sku_result[0]['platform_code'];
                $goods_list['records'][$key]['price_now'] = $sku_result[0]['price_now'];
                $goods_list['records'][$key]['sku_param_value'] = $sku_result[0]['sku_param_value'];
            }
            $id = 1;
            foreach ($goods_list['records'] as $item) {
                $row = array($id);
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $item['platform_code']));
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $item['title']));
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $item['short_title']));
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $item['sku_param_value']));
                array_push($row, $item['price_now']);
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $item['sale_time']));
                switch ($item['status']) {
                    case 1:
                        $status_text = '草稿';
                        break;
                    case 2:
                        $status_text = '仓库';
                        break;
                    case 3:
                        $status_text = '上架';
                        break;
                    case 4:
                        $status_text = '审核中';
                        break;
                    case 5:
                        $status_text = '审核驳回';
                        break;
                    default:
                        break;
                }
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $status_text));
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $item['class_name_parent']));
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $item['class_name']));
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $item['name_ch']));
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $item['name_en']));
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $item['preview_good']));
                array_push($row, iconv('utf-8', 'GBK//IGNORE', $item['brand_age_url']));
                array_push($row, $item['pic_url']);
                fputcsv($fp, $row);
                $id++;
            }
            // 将已经写到csv中的数据存储变量销毁,释放内存占用
            ob_flush();
            flush();
            fclose($fp);
        } catch (Exception $e) {
            print $e->getMessage();
            $params = array(
                'statusCode' => 100,
                'message' => $e->getMessage()
            );
            echo json_encode($params);
            exit();
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值