欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php导出excel

程序员文章站 2022-05-24 17:05:21
...

第一次发布自己的代码,很忐忑,但也欢迎拍砖。 项目里需要导出excel文件,在这里找到了个导出excel的代码,结果没用;自己写了个,现在发布上来,其实就是csv文件,但后缀写成了xls,糊弄下客户(太不应该了,我检讨;但是对性能和下载带宽来说这样应该是好

第一次发布自己的代码,很忐忑,但也欢迎拍砖。
项目里需要导出excel文件,在这里找到了个导出excel的代码,结果没用;自己写了个,现在发布上来,其实就是csv文件,但后缀写成了xls,糊弄下客户(太不应该了,我检讨;但是对性能和下载带宽来说这样应该是好事)。当然如果没有任何逻辑,也可以直接从数据库中导出,一般都支持的。
$rowCount = 100000;

$time1=microtime(true);

$data = array();

for($i=1; $i$i,'a'=>$i.'a','b'=>'b'.$i,'c'=>'c-'.$i);
}
$time2=microtime(true);

//$header = null; //无头
//$header = array('id'=>'编号', 'a'=>'字段A', 'c'=>'字段C'); //只输出部分字段
$header = array('id'=>'编号', 'a'=>'字段A','b'=>'字段B', 'c'=>'字段C'); //全头


export2csv('test.xls', $data, $header);

$time3=microtime(true);

echo '数据生成:'.($time2 - $time1).'
'; echo '数据写入:'.($time3 - $time2).'
'; /* 数据生成:0.21787405014038 数据写入:2.6457920074463 */ function export2csv($path, $data, $header=null) { if(file_exists($path)) @unlink($path); if(!is_array($data)) return; $handle = fopen($path, 'a'); if(is_array($header)) { $keys = array_keys($header); $data = array_merge(array($header), $data); } else { $keys = array_keys($data[0]); } foreach($data as $row) { $rowText=''; foreach($keys as $key) { $rowText .= "\t" . $row[$key]; } $rowText = ltrim($rowText, "\t"); if(!empty($rowText)) fwrite($handle, $rowText . "\r\n"); } fclose($handle); }