php导出中文内容excel文件类实例 |
|
本文标签:php,中文,excel 本文实例讲述了php导出中文内容excel文件类 。分享给大家供大家参考 。具体如下:
<?php
class toExcel{
public $link = null;
function __construct(){
}
/***************************************************************************
* $mapping:数组格式头信息$map=array(No,Name,Email,Age);
* $datalist:数据库查出来的结果集
* $fileName:Excel文件名称
* return:Excel格式文件
**************************************************************************/
public function toExcel($mapping,$datalist,$fileName) {
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=".iconv(utf-8, gb2312, $fileName).".xls");
echo<html xmlns: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>
<meta http-equiv="expires" content="Mon, 06 Jan 1999 00:00:01 GMT">
<meta http-equiv=Content-Type content="text/html; charset=UTF-8">
<!--[if gte mso 9]><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>
<body link=blue vlink=purple leftmargin=0 topmargin=0>;
echo<table border="0" cellspacing="0" cellpadding="0">;
echo<tr>;
if(is_array($mapping)) {
foreach($mapping as $key=>$val)
echo"<td style=background-color:#09F;font-weight:bold;>".$val."</td>";
}
echo</tr>;
foreach($datalist as $k=>$v){
echo<tr>;
foreach($v as $key=>$val){
if(is_numeric($val) && strlen($val)>=14){
echo"<td style=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=new toExcel;
$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");
/*first line*/
$data1= "中文测试";
$data1=mb_convert_encoding($data1,"GB2312","UTF-8");
echo $data1."\t";
echo "world"."\t";
echo "\t\n";
/*start of second line*/
echo "this is second line"."\t";
echo "Hi,pretty girl"."\t";
echo "\t\n";
?>
希望本文所述对大家的php程序设计有所帮助 。 |