1,因为数据中有英文逗号 , csv换行是以英文逗号为识别所以解决方法一
在获取到数据时用foreach把数据中的英文逗号换成中文 如果逗号不是必须要的可以可以直接去掉 然后再导出csv格式
2,导出csv会有问题 我们可以换钟方式导出 解决方法二
直接导出excel格式
贴出我的第二种解决方法代码 exportExcelData是封装好的导出excel的方法 exportCsv是封装好的导出csv格式的方法
for ($cur_page = 1; $cur_page <= $this->max_page; $cur_page++) {
$GLOBALS['p'] = $cur_page;
$res = $this->getStoreList($data);
$list = $res['list'];
$uuid_list = array_unique(array_merge(array_column($list, 'member_uuid')));
$country_list = array_unique(array_merge(array_column($list, 'country_id')));
$memberModel = new MemberModel();
$countryModel = new ErpCountryModel();
if ($uuid_list) {
$memberInfo = $memberModel->getModelList([
'uuid' => [
'in',
$uuid_list
]
], 'uuid,job_id');
$memberInfo = value_to_key($memberInfo, 'uuid', 'job_id');
}
if ($country_list) {
$country = $countryModel->getModelList([
'id' => [
'in',
$country_list
]
], 'id,name');
$country = value_to_key($country, 'id', 'name');
}
foreach ($list as &$item) {
unset($item['info'], $item['store_info']);
if (empty($item['job_id'])) {
$item['job_id'] = $memberInfo[$item['member_uuid']];
}
$item['country_name'] = $country[$item['country_id']];
unset($item);
}
if ($this->hasError()) {
return $this->setError($this->getErrorMsg());
}
if (empty($list) && $cur_page == 1) {
return $this->setError('导出数据为空,请重新筛选');
}
if (empty($list)) {
break;
}
$table_name = $list[0]['platform_name'] . '店铺信息导出' . time();
$excel->exportExcelData($header_arr3, $list, $table_name, [
'create_time'
]);
// $excel->exportCsv($table_name, $header_arr3, $list);
unset($list, $res);
}