php导出中文内容excel文件类实例
本文实例讲述了php导出中文内容excel文件类。分享给大家供大家参考。具体如下:
<?php
classtoExcel{
public$link=null;
function__construct(){
}
/***************************************************************************
*$mapping:数组格式头信息$map=array('No','Name','Email','Age');
*$datalist:数据库查出来的结果集
*$fileName:Excel文件名称
*return:Excel格式文件
**************************************************************************/
publicfunctiontoExcel($mapping,$datalist,$fileName){
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=".iconv('utf-8','gb2312',$fileName).".xls");
echo'<htmlxmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="[url=http://www.w3.org/TR/REC-html40]http://www.w3.org/TR/REC-html40[/url]">
<head>
<metahttp-equiv="expires"content="Mon,06Jan199900:00:01GMT">
<metahttp-equiv=Content-Typecontent="text/html;charset=UTF-8">
<!--[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>
<bodylink=bluevlink=purpleleftmargin=0topmargin=0>';
echo'<tableborder="0"cellspacing="0"cellpadding="0">';
echo'<tr>';
if(is_array($mapping)){
foreach($mappingas$key=>$val)
echo"<tdstyle='background-color:#09F;font-weight:bold;'>".$val."</td>";
}
echo'</tr>';
foreach($datalistas$k=>$v){
echo'<tr>';
foreach($vas$key=>$val){
if(is_numeric($val)&&strlen($val)>=14){
echo"<tdstyle='vnd.ms-excel.numberformat:@'>".$val."</td>";//大于14位的数字转换成字符串输出(如身份证)
}else{
echo"<td>".$val."</td>";
}
}
echo'</tr>';
}
echo'</table>';
echo'</body>';
echo'</html>';
}
}
$map=array('No','Name','Email');
$datal=array(array(1,'管理员','admin@163.com'),array(2,'member','member@163.com'));;
$csv=newtoExcel;
$csv->toExcel($map,$datal,"dataexport");
?>
方法二
<?php
header("Content-Type:application/vnd.ms-execl");
header("Content-Disposition:attachment;filename=myExcel.xls");
header("Pragma:no-cache");
header("Expires:0");
/*firstline*/
$data1="中文测试";
$data1=mb_convert_encoding($data1,"GB2312","UTF-8");
echo$data1."\t";
echo"world"."\t";
echo"\t\n";
/*startofsecondline*/
echo"thisissecondline"."\t";
echo"Hi,prettygirl"."\t";
echo"\t\n";
?>
希望本文所述对大家的php程序设计有所帮助。