php导出中文内容excel文件类实例

时间:2022-11-03 23:32:52

本文实例讲述了php导出中文内容excel文件类。分享给大家供大家参考。具体如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?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");
?>

方法二

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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程序设计有所帮助。