用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php 生成excel文件

时间:2015-01-23  来源:西部数据  作者:西部数据

本文章收藏了三款php生成excel文件代码程序,第一款为比较全面的生成函数,后面二款很简单,但是不如第一款好,好了现在来看看生成excel的代码如下:

  1. class excel{ 
  2.     var $header = "<?xml version="1.0" encoding="utf-8"?>  
  3. <workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"  
  4. xmlns:x="urn:schemas-microsoft-com:office:excel"  
  5. xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"  
  6. xmlns:html="http://www.w3.org/tr/rec-html40">";    
  7.     var $footer = "</workbook>";  
  8.     var $lines = array ();     
  9.     var $worksheet_title = "table1";     
  10.      
  11.     function addrow ($array) {     
  12.     
  13.    
  14.         $cells = "";     
  15.              
  16.    
  17.         foreach ($array as $k => $v):     
  18.                  
  19.             // 加个字符串与数字的判断 避免生成的 excel 出现数字以字符串存储的警告     
  20.             if(is_numeric($v)) {     
  21.                 // 防止首字母为 0 时生成 excel 后 0 丢失     
  22.                 if(substr($v, 0, 1) == 0) {     
  23.                     $cells .= "<cell><data ss:type="string">" . $v . "</data></cell> ";     
  24.                  } else {     
  25.                     $cells .= "<cell><data ss:type="number">" . $v . "</data></cell> ";     
  26.                  }     
  27.              } else {     
  28.                 $cells .= "<cell><data ss:type="string">" . $v . "</data></cell> ";     
  29.              }     
  30.     
  31.         endforeach;     
  32.     
  33.         // transform $cells content into one row     
  34.         $this->lines[] = "<row> " . $cells . "</row> ";     
  35.     
  36.      }     
  37.        
  38.     function addarray ($array) {     
  39.     
  40.         // run through the array and add them into rows     
  41.         foreach ($array as $k => $v):     
  42.             $this->addrow ($v);     
  43.         endforeach;     
  44.     
  45.      }     
  46.      
  47.     function setworksheettitle ($title) {     
  48.     
  49.         // strip out special chars first     
  50.         $title = preg_replace ("/[\|:|/|?|*|[|]]/"""$title);     
  51.     
  52.         // now cut it to the allowed length     
  53.         $title = substr ($title, 0, 31);     
  54.     
  55.         // set title     
  56.         $this->worksheet_title = $title;     
  57.     
  58.      }     
  59.    
  60.     function generatexml ($filename) {     
  61.     
  62.    
  63.          header("content-type: application/vnd.ms-excel; charset=utf-8");     
  64.          header("content-disposition: inline; filename="" . $filename . ".xls"");     
  65.    
  66.         echo stripslashes ($this->header);     
  67.         echo " <worksheet ss:name="" . $this->worksheet_title . ""> <table> ";     
  68.         echo "<column ss:index="1" ss:autofitwidth="0" ss:width="110"/> ";     
  69.         echo implode (" "$this->lines);     
  70.         echo "</table> </worksheet> ";     
  71.         echo $this->footer;     
  72.     
  73.      }     
  74.     
  75. /**  
  76. *   非框架使用方法  
  77.  
  78. *   require_once('excel.php');  
  79. *   $doc = array (  
  80. *        0 => array ('中国', '中国人', '中国人民', '123456");  
  81. *   ); //开源代码phpfensi.com 
  82. *   $xls = new excel;  
  83. *   $xls->addarray ( $doc );  
  84. *   $xls->generatexml ("mytest");  
  85. */   

方法二:

其实在做真正的应用的时候,大家可以将数据从数据库中取出,然后按照每一列数据结束后加t,每一行数据结束后加n的方法echo出来,在php的开头用header("content-type:application/vnd.ms-excel");表示输出的是excel文件,用header("content-disposition:filename=test.xls");表示输出的文件名为text.xls,这样就ok了.代码如下:

  1. <?php 
  2.        header("content-type:application/vnd.ms-excel"); 
  3.        header("content-disposition:filename=test.xls"); 
  4.        echo "test1"
  5.        echo "test2"
  6.        echo "test1"
  7.        echo "test2"
  8.        echo "test1"
  9.        echo "test2"
  10.        echo "test1"
  11.        echo "test2"
  12.        echo "test1"
  13.        echo "test2"
  14.        echo "test1"
  15.        echo "test2"
  16. ?> 

方法三,代码如下:

  1. <?php 
  2.   header("content-type:   application/octet-stream");   
  3.   header("accept-ranges:   bytes");   
  4.   header("content-type:application/vnd.ms-excel");     
  5.   header("content-disposition:attachment;filename=export_excel_gshjsl.xls");     
  6.     
  7.   $tx='表头';   
  8.   echo   $tx." "
  9.   echo   "编号"." ";   
  10.   echo   "姓名"." ";   
  11.   echo   " "
  12.  echo "="411481198507150666""." ";  
  13.  echo "="0123456""." "
  14. //开源代码phpfensi.com 
  15.  echo " "
  16.  ?>
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门