使用PHP生成并导出CSV文件

Posted 幽篁晓筑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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);
}

 

 

 

 

以上是关于使用PHP生成并导出CSV文件的主要内容,如果未能解决你的问题,请参考以下文章

php 导入/导出 csv 文件

php使用ajax导出CSV或者EXCEl(thinkphp)方法

PHP之导出CSV文件

PHP 生成csv的遇到的分隔符问题

从Wordpress导出CSV |文件中的源代码?

java如何导出csv文件 用户点击导出可以导出到他想保存的地方