php原生导出excel文件的两种方法(推荐)
第一种方法:
$filename='文件名称';
$filetitle='你的标题';
if($_POST){
set_time_limit(10000);
$title='';
ini_set('memory_limit','300M');
header('Content-Type:application/vnd.ms-excel;charset=utf-8');
$name=$title.".xls";
header('Content-Disposition:attachment;filename='.$name.'');
header('Cache-Control:max-age=0');
$where="1=1";
$sql="";
$query=DB::Query($sql);
//PHP文件句柄,php://output表示直接输出到浏览器
$fp=fopen('php://output','a');
//输出Excel列头信息
$head=array('ID');
//字符替换
$p_new_lines=array("\r\n","\n","\t","\r","\r\n","<pre>","</pre>","<br>","</br>","<br/>");
$p_change_line_in_excel_cell='';
foreach($headas$v){
echoiconv('utf-8','gb2312',$v)."\t";
}
echo"\n";
//计数器
$cnt=0;
//每隔$limit行,刷新一下输出buffer,节约资源
$limit=100000;
//逐行取出数据,节约内存
while($res=mysql_fetch_assoc($query)){
$cnt++;
if($limit==$cnt){//刷新一下输出buffer,防止由于数据过多造成问题
ob_flush();
flush();
$cnt=0;
}
echotrim($res['id'])."\t";
echo"\n";
}
}
第二种方法:
$filename='文件名称';
$filetitle='你的标题';
if($_POST){
$title='';
ini_set('memory_limit','300M');
header('Content-Type:application/vnd.ms-excel;charset=utf-8');
$name=$title.".xls";
header('Content-Disposition:attachment;filename='.$name.'');
header('Cache-Control:max-age=0');
echo'<htmlxmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<metahttp-equiv="expires"content="Mon,06Jan199900:00:01GMT">
<metahttp-equiv=Content-Typecontent="text/html;charset=gb2312">
<!--[ifgtemso9]><xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name></x:Name>
<x:WorksheetOptions>
<x:DisplayGridlines/>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml><![endif]-->
</head>';
$where="1=1";
$sql="";
mysql_query('setnames"utf8"');
mysql_set_charset('utf8');
$query=DB::Query($sql);
//PHP文件句柄,php://output表示直接输出到浏览器
$fp=fopen('php://output','a');
//输出Excel列头信息
$head=array('ID','xxx');
//字符替换
$p_new_lines=array("\r\n","\n","\t","\r","\r\n","<pre>","</pre>","<br>","</br>","<br/>");
$p_change_line_in_excel_cell='';
echo"<table>";
echo"<tr>";
foreach($headas$v){
echo"<td>".iconv('utf-8','gb2312',$v)."</td>";
}
echo"</tr>";
//逐行取出数据,节约内存
while($res=mysql_fetch_assoc($query)){
echo"<tr>";
echo"<tdstyle='vnd.ms-excel.numberformat:@'>".$res['id']."</td>";
echo"<td>".iconv('utf-8','gb2312',$res['xxx']."</td>";
echo"</tr>";
}
echo"</table>";
}
以上这篇php原生导出excel文件的两种方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。