第一次发布自己的代码,很忐忑,但也欢迎拍砖。 项目里需要导出excel文件,在这里找到了个导出excel的代码,结果没用;自己写了个,现在发布上来,其实就是csv文件,但后缀写成了xls,糊弄下客户(太不应该了,我检讨;但是对性能和下载带宽来说这样应该是好
第一次发布自己的代码,很忐忑,但也欢迎拍砖。
$rowCount = 100000;
$time1=microtime(true);
$data = array();
for($i=1; $i<=$rowCount; $i++)
{
$data[] = array('id'=>$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).'<br />';
echo '数据写入:'.($time3 - $time2).'<br />';
/*
数据生成: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);
}
全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号