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();
}
}
php导出数据到excel中
最新推荐文章于 2025-04-20 09:25:42 发布