首頁 > php教程 > php手册 > php导出excel

php导出excel

WBOY
發布: 2016-06-06 19:35:39
原創
1231 人瀏覽過

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

第一次发布自己的代码,很忐忑,但也欢迎拍砖。
项目里需要导出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);
}
登入後複製
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板