php导出excel表格

来源:互联网 发布:java第一阶段测试题 编辑:程序博客网 时间:2024/04/27 07:02

原始数据格式:



<?php // 设置表头$csv_header = ['coid','search_en','vis','visitorn','age','conv_tm','co_tm','corssecs','cent','cunt','conount'];// 设置导出文件名$filename = "导出记录_".date('YmdHis').'.csv'; //设置文件名// 设置导出数据开始时间$start_time = '2017-08-27+05:49:02';// 设置导出数据结束时间$end_time = '2017-08-28+11:20:02';// 获取格式化后数据$a_v_data = data_format($start_time,$end_time);// 导出记录csv($csv_header, $a_v_data, $filename);/** *  数据格式化 * @param [string] $start_time 开始时间 * @param [string] $end_time   结束时间 * @return [array] 格式化后的数组数据 *//** * 对于接口url中的参数都可以写成传入参数形式,如起止时间那样调用 */function data_format($start_time,$end_time){// 获取返回数据$data = file_get_contents('http://a111.com/sations?conv_start_from_tm='.$start_time.'&conv_start_to_tm='.$end_time.'&offset=0&limit=15');// 转换数据格式$data = json_decode($data,true)['result'];if($data){    $row = 0;    foreach ($data as $k1 => $a_v) {        $a_v_data[$row]['conv_id'] = $a_v['conv_id'];         $a_v_data[$row]['searcw'] = $a_v['searw'];         $a_v_data[$row]['visip'] = $a_v['visip'];         $a_v_data[$row]['visiion'] = $a_v['vistion'];         $a_v_data[$row]['ageme'] = $a_v['ageame'];         $a_v_data[$row]['conv_tm'] = $a_v['contm'];         $a_v_data[$row]['con_tm'] = $a_v['contm'];         $a_v_data[$row]['conecs'] = $a_v['consecs'];         $a_v_data[$row]['coent'] = $a_v['conent'][0]['from'].'-'.$a_v['conent'][0]['timestamp'].'-'.$a_v['connt'][0]['content']; 
        $a_v_data[$row]['convunt'] = $a_v['convount'];         $a_v_data[$row]['conount'] = $a_v['conv_vcount'];         $row++;    }return $a_v_data;}return null;}   /*     * 生成csv文件     */function csv($csv_header='',$csv_body,$filename="export_file.csv"){    if($csv_header){        $header = implode(',', $csv_header) . PHP_EOL;    }    // 处理内容    $content = '';    foreach ($csv_body as $k => $v) {        $content .= implode(',', $v) . PHP_EOL;    }    $csv = $header.$content;    header("Content-Type: APPLICATION/OCTET-STREAM");    header("Content-Disposition: attachment;filename=\"" . iconv("UTF-8", "GBK", $filename) . "\"");    header("Cache-Control: max-age=0");     die($csv);} ?>


修改版:

<?php // 设置表头// $csv_header = ['co','sew','vp','visn','ag','cotm','ctm','coecs','content','count','ount'];$csv_header = ['con','词','p','对点','服','间','时间','时间','内容','数','数'];

// 设置导出文件名$filename = "录_".date('YmdHis').'.csv'; //设置文件名// 设置开始时间$start_time = '2017-08-27+05:49:02';// 设置结束时间$end_time = date('Y-m-d+h:i:s',time());//查询跳过的条数$offset = 0;//每次查询的条数(最大20条)$limit = 20;// 获取格式化后数据$a_v_data = data_format($start_time,$end_time,$offset,$limit);// 导出csv($csv_header, $a_v_data, $filename);/** *  数据格式化 * @param [string] $start_time 开始时间 * @param [string] $end_time   结束时间 * @param [int]$offset从哪条开始查 * @param [int]$limit每次限制的条数 * @return [array] 格式化后的数组数据 *//** * 对于接口url中的参数都可以写成传入参数形式,如起止时间那样调用 */function data_format($start_time,$end_time,$offset,$limit){// 获取返回数据$data = file_get_contents('http://11.11');// 转换数据格式$data = json_decode($data,true)['result'];if($data){    $row = 0;    foreach ($data as $k1 => $a_v) {        $a_v_data[$row]['id'] = $a_v['id'];         $a_v_data[$row]['seaw'] = $a_v['sew'];         $a_v_data[$row]['vp'] = $a_v['vp']; $a_v_data[$row]['cecs'] = $a_v['cecs']; $con = $a_v['conv_content'];$a_v_data[$row]['conv_content'] = '';for($i=0;$i<count($con);$i++){if($i<count($con)-1){$a_v_data[$row]['content'] .= ($con[$i]['from'].'-'.$con[$i]['timestamp'].'-'.$con[$i]['content'].'-');}else{$a_v_data[$row]['content'] .= ($con[$i]['from'].'-'.$con[$i]['timestamp'].'-'.$con[$i]['content']);}}         $row++;}return $a_v_data;}return null;}   /*     * 生成csv文件     */function csv($csv_header='',$csv_body,$filename="export_file.csv"){    if($csv_header){        $header = implode(',', $csv_header) . PHP_EOL;    }    // 处理内容    $content = '';    foreach ($csv_body as $k => $v) {        $content .= implode(',', $v) . PHP_EOL;    }    $csv = $header.$content;    header("Content-Type: APPLICATION/OCTET-STREAM");    header("Content-Disposition: attachment;filename=\"" . iconv("UTF-8", "GBK", $filename) . "\"");    header("Cache-Control: max-age=0");     die($csv);} ?>
















感谢支持





原创粉丝点击