首頁 > 後端開發 > php教程 > 操作系统 - php csv导出 在window下office打开正常,但在MAC系统下打开只有一列

操作系统 - php csv导出 在window下office打开正常,但在MAC系统下打开只有一列

WBOY
發布: 2016-06-06 20:35:17
原創
1452 人瀏覽過

csv导出代码:

public function export_csv(){
        if(($id = $this->get_input('resultId')) == '') {
            $this->msg('参数有误');
        }
        $result = call_mod_func('admin/activity_mod', 'get_result', array($id));
        $str = "姓名,邮箱,手机,微信号" . PHP_EOL;
        $str = iconv('utf-8', 'gb2312', $str);  //中文转码

        foreach($result['rows'] as $row) {
            $name = iconv('utf-8', 'gb2312', $row['name']);
            $email = $row['email'];
            $mobile = $row['mobile'];
            $weixinid = iconv('utf-8', 'gb2312', $row['weixinid']);

            $str .= $name . ',' . $email . ',' . $mobile . ',' . $weixinid . PHP_EOL;
        }

        $filename = date('Ymd', gettime()) . '.csv';  //设置文件名
        
        header("Content-type:text/csv");
        header("Content-Disposition:attachment;filename=".$filename);
        header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
        header('Expires:0');
        header('Pragma:public');
        echo $str;
    }
登入後複製
登入後複製

这段代码
苹果系统下,用excel打开只有一列:
操作系统 - php csv导出 在window下office打开正常,但在MAC系统下打开只有一列

windows系统下,用excel打开有4列:
操作系统 - php csv导出 在window下office打开正常,但在MAC系统下打开只有一列

请问这代码要怎么修改?才能兼容多个系统呢?
【如果用分号分隔的话,就MAC系统下正常,windows下只有一列】

回复内容:

csv导出代码:

public function export_csv(){
        if(($id = $this->get_input('resultId')) == '') {
            $this->msg('参数有误');
        }
        $result = call_mod_func('admin/activity_mod', 'get_result', array($id));
        $str = "姓名,邮箱,手机,微信号" . PHP_EOL;
        $str = iconv('utf-8', 'gb2312', $str);  //中文转码

        foreach($result['rows'] as $row) {
            $name = iconv('utf-8', 'gb2312', $row['name']);
            $email = $row['email'];
            $mobile = $row['mobile'];
            $weixinid = iconv('utf-8', 'gb2312', $row['weixinid']);

            $str .= $name . ',' . $email . ',' . $mobile . ',' . $weixinid . PHP_EOL;
        }

        $filename = date('Ymd', gettime()) . '.csv';  //设置文件名
        
        header("Content-type:text/csv");
        header("Content-Disposition:attachment;filename=".$filename);
        header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
        header('Expires:0');
        header('Pragma:public');
        echo $str;
    }
登入後複製
登入後複製

这段代码
苹果系统下,用excel打开只有一列:
操作系统 - php csv导出 在window下office打开正常,但在MAC系统下打开只有一列

windows系统下,用excel打开有4列:
操作系统 - php csv导出 在window下office打开正常,但在MAC系统下打开只有一列

请问这代码要怎么修改?才能兼容多个系统呢?
【如果用分号分隔的话,就MAC系统下正常,windows下只有一列】

这问题很难?竟然没人回答。。。。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板