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文件的两种方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。