php技术博客

记录php相关学习知识及开发示例、疑难问题等

[原创] 使用php代码导出表格方法(一)csv方式

在实际开发中,经常遇到帮数据导出表格操作。今天我们来讲下导出csv格式方式,这种是最快捷的、占用资源少的方法。这里简单介绍下csv格式,每一行数据间使用 换行符分割,每一列值之间通过逗号分割。这里要注意下 值里面可能含有特殊字符,如果不进行相关转义操作,会造成解析错误。下面也会提供解决方法

function quoteCsvField($str,$force=false){
    if($force || strpos($str,',')!==false || strpos($str,'"') !==false || strpos($str,"\n") !==false || strpos($str,"\n") !==false){
        $str='"'.str_replace('"','""',$str).'"';
    }
    return $str;
}
//--数据,这里简单表示下
$result=array(
    array('brands'=>'游乐园','dename'=>'旅游部','appdate'=>'2020-05','remark'=>"游乐园项目\n详情:3月签约,4月回款1000"),
    array('brands'=>'房产中介','dename'=>'房产','appdate'=>'2020-04','remark'=>"已回款"),
);
 
header("Content-type:text/csv");
$filename='上线广告';
header("Content-Disposition:attachment;filename=".$filename.".csv");
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
header('Pragma:public');
 
$html='品牌,部门,时间,备注说明'."\n";
foreach($result as $k=>$v) {
    $html.=$v['brands'].','.$v['dename'].','.$v['appdate'].','.quoteCsvField($v['remark'])."\n";
}
echo $html;
die;


对可能有特殊字符的值进行 quoteCsvField函数进行处理,如果不确定的话,可以都进行处理,不影响。

示例源码打包下载地址: php中使用csv格式导出表格代码示例
版权声明:本站原创文章,转载请注明出处:php技术博客,否则将追究法律责任