• 使用PHP生成并导出CSV文件


    CSV文件是以纯文本形式存储的,一般以逗号为分隔符。
    这里主要简单介绍下如何导出CSV文件。

    一、浏览器导出CSV文件格式

    /**
     * 导出CSV文件
     */
    function exportCsv()
    {
        // 需要导出的内容
        $data = [
            ['name' => '张三', 'score' => '80'],
            ['name' => '李四', 'score' => '90'],
            ['name' => '王五', 'score' => '60'],
        ];
        // 文件名,这里都要将utf-8编码转为gbk,要不可能出现乱码现象
        $filename = $this->utfToGbk('导出csv文件.csv');
    
        // 拼接文件信息,这里注意两点
        // 1、字段与字段之间用逗号分隔开
        // 2、行与行之间需要换行符
        $fileData = $this->utfToGbk('姓名, 分数') . "
    ";
        foreach ($data as $value) {
            $temp = $value['name'] . ',' .
                    $value['score'];
            $fileData .= $this->utfToGbk($temp) . "
    ";
        }
    
        // 头信息设置
        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 $fileData;
        exit;
    }
    
    
    /**
     * 字符转换(utf-8 => GBK)
     */
    function utfToGbk($data)
    {
        return iconv('utf-8', 'GBK', $data);
    }

    二、在服务器生成CSV文件

    /**
     * 下载CSV文件
     */
    public function downLoadCsv()
    {
        // 需要导出的内容
        $data = [
            ['name' => '张三', 'score' => '80'],
            ['name' => '李四', 'score' => '90'],
            ['name' => '王五', 'score' => '60'],
        ];
        // 文件名,这里都要将utf-8编码转为gbk,要不可能出现乱码现象
        $filename = $this->utfToGbk('生成csv文件.csv');
    
        // 拼接文件信息,这里注意两点
        // 1、字段与字段之间用逗号分隔开
        // 2、行与行之间需要换行符
        $fileData = $this->utfToGbk('姓名, 分数') . "
    ";
        foreach ($data as $value) {
            $temp = $value['name'] . ',' .
                $value['score'];
            $fileData .= $this->utfToGbk($temp) . "
    ";
        }
    
        $filePath = __DIR__ . '/' . $filename;
        // 将一个字符串写入文件
        file_put_contents($filePath, $fileData);
        return $filePath;
    }
    
    
    /**
     * 字符转换(utf-8 => GBK)
     */
    public function utfToGbk($data)
    {
        return iconv('utf-8', 'GBK', $data);
    }
  • 相关阅读:
    嘿,新年快乐
    最近无状态~
    奥巴马:我们为什么要上学
    大学学不会逃课是不会有出息的!
    赫赫,给红十字捐款的sb了吧
    狄仁杰你敢不装逼吗
    腾讯qq开始耍威胁用户的无赖手段了
    <转>关于信仰
    恩,老了~~~
    Vue 2.0学习笔记: Vue中的computed属性
  • 原文地址:https://www.cnblogs.com/woods1815/p/11875913.html
Copyright © 2020-2023  润新知