帝国CMS模板大全
www.admin99.cn
www.92cms.cn 帝国CMS模板下载站!,情怀,养站,二次开发!源码需求比较大的一站式会员下载,价更省!!!

PHP导出excel类完整实例程序 - php类库

PHP导出excel类完整实例程序

本文章来给各位同学详细介绍关于PHP导出excel类完整实例程序代码,这里我们使用了phpExcel插件,大家使用前先去下载一个phpExcel插件.

php exeel.class.php文件,代码如下:

<?php 
 
/**  
 * Simple excel generating from PHP5  
 *  
 * @package Utilities  
 * @license http://www.opensource.org/licenses/mit-license.php  
 * @author Oliver Schwarz <oliver.schwarz@gmail.com>  
 * @version 1.0  
 */  
 
/**  
 * Generating excel documents on-the-fly from PHP5  
 *   
 * Uses the excel XML-specification to generate a native  
 * XML document, readable/processable by excel.  
 *   
 * @package Utilities  
 * @subpackage Excel  
 * @author Oliver Schwarz <oliver.schwarz@vaicon.de>  
 * @version 1.1  
 *   
 * @todo Issue #4: Internet Explorer 7 does not work well with the given header  
 * @todo Add option to give out first line as header (bold text)  
 * @todo Add option to give out last line as footer (bold text)  
 * @todo Add option to write to file  
 */  
class  Excel_XML 

 
  /**  
  * Header (of document)  
  * @var string  
  */  
         private   $header  =  "<?xml version=" 1.0 " encoding=" %s "?>n<Workbook xmlns=" urn:schemas-microsoft-com:office:spreadsheet " xmlns:x=" urn:schemas-microsoft-com:office:excel " xmlns:ss=" urn:schemas-microsoft-com:office:spreadsheet " xmlns:html=" http: //www.w3.org/TR/REC-html40">";  
 
         /**  
         * Footer (of document)  
         * @var string  
         */  
         private   $footer  =  "</Workbook>" ; 
 
         /**  
         * Lines to output in the excel document  
         * @var array  
         */  
         private   $lines  =  array (); 
 
         /**  
         * Used encoding  
         * @var string  
         */  
         private   $sEncoding ; 
         
         /**  
         * Convert variable types  
         * @var boolean  
         */  
         private   $bConvertTypes ; 
         
         /**  
         * Worksheet title  
         * @var string  
         */  
         private   $sWorksheetTitle ; 
 
         /**  
         * Constructor  
         *   
         * The constructor allows the setting of some additional  
         * parameters so that the library may be configured to  
         * one's needs.  
         *   
         * On converting types:  
         * When set to true, the library tries to identify the type of  
         * the variable value and set the field specification for Excel  
         * accordingly. Be careful with article numbers or postcodes  
         * starting with a '0' (zero)!  
         *   
         * @param string $sEncoding Encoding to be used (defaults to UTF-8)  
         * @param boolean $bConvertTypes Convert variables to field specification  
         * @param string $sWorksheetTitle Title for the worksheet  
         */  
         public   function  __construct( $sEncoding  =  'UTF-8' ,  $bConvertTypes  = false,  $sWorksheetTitle  =  'Table1' ) 
        { 
                 $this ->bConvertTypes =  $bConvertTypes ; 
          $this ->setEncoding( $sEncoding ); 
          $this ->setWorksheetTitle( $sWorksheetTitle ); 
        } 
         
         /**  
         * Set encoding  
         * @param string Encoding type to set  
         */  
         public   function  setEncoding( $sEncoding ) 
        { 
          $this ->sEncoding =  $sEncoding ; 
        } 
 
         /**  
         * Set worksheet title  
         *   
         * Strips out not allowed characters and trims the  
         * title to a maximum length of 31.  
         *   
         * @param string $title Title for worksheet  
         */  
         public   function  setWorksheetTitle ( $title ) 
        { 
                 $title  = preg_replace ( "/[\|:|/|?|*|[|]]/" ,  "" ,  $title ); 
                 $title  =  substr  ( $title , 0, 31); 
                 $this ->sWorksheetTitle =  $title ; 
        } 
 
         /**  
         * Add row  
         *   
         * Adds a single row to the document. If set to true, self::bConvertTypes  
         * checks the type of variable and returns the specific field settings  
         * for the cell.  
         *   
         * @param array $array One-dimensional array with row content  
         */  
         private   function  addRow ( $array ) 
        { 
          $cells  =  "" ; 
                 foreach  ( $array   as   $k  =>  $v ): 
                         $type  =  'String' ; 
                         if  ( $this ->bConvertTypes === true &&  is_numeric ( $v )): 
                                 $type  =  'Number' ; 
                         endif ; 
                         $v  = htmlentities( $v , ENT_COMPAT,  $this ->sEncoding); 
                         $cells  .=  "<Cell><Data ss:Type=" $type ">"  .  $v  .  "</Data></Cell>n" ;  
                 endforeach ; 
                 $this ->lines[] =  "<Row>n"  .  $cells  .  "</Row>n" ; 
        } 
 
         /**  
         * Add an array to the document  
         * @param array 2-dimensional array  
         */  
         public   function  addArray ( $array ) 
        { 
                 foreach  ( $array   as   $k  =>  $v ) 
                         $this ->addRow ( $v ); 
        } 
 
 
         /**  
         * Generate the excel file  
         * @param string $filename Name of excel file to generate (…xls)  
         */  
         public   function  generateXML ( $filename  =  'excel-export' ) 
        { 
                 // correct/validate filename  
                 $filename  = preg_replace( '/[^aA-zZ0-9_-]/' ,  '' ,  $filename ); 
      
                 // deliver header (as recommended in php manual)  
                header( "Content-Type: application/vnd.ms-excel; charset="  .  $this ->sEncoding); 
                header( "Content-Disposition: inline; filename=" " . $filename . " .xls "" ); 
                 // print out document to the browser  
                 // need to use stripslashes for the damn ">"  
                 echo   stripslashes  (sprintf( $this ->header,  $this ->sEncoding)); 
                 echo   "n<Worksheet ss:Name=" " . $this->sWorksheetTitle . " ">n<Table>n" ; 
                 foreach  ( $this ->lines  as   $line ) 
                         echo   $line ; 
 
                 echo   "</Table>n</Worksheet>n" ; 
                 echo   $this ->footer; 
        } 
 

?> 

excel.class.php文件,代码如下:

<?php 
/*功能:导出excel类  
 *时间:2012年8月16日  
 *作者:565990136@qq.com  
*/  
class  myexcel{ 
private   $filelds_arr1 = array (); 
private   $filelds_arr2 = array (); 
private   $filename ; 
// load library  
function  __construct( $fields_arr1 , $fields_arr2 , $filename = 'test' ){ 
  $this ->filelds_arr1= $fields_arr1 ; 
  $this ->filelds_arr2= $fields_arr2 ; 
  $this ->filename= $filename ; 
 } 
function  putout(){ 
require   'php-excel.class.php' ; 
 
$datavalue = $this ->filelds_arr2; 
$newdata [0]= $this ->filelds_arr1; 
$arrcount = count ( $datavalue ); 
for ( $i =1; $i <= $arrcount ; $i ++){ 
$newdata [ $i ]= array_values ( $datavalue [ $i -1]); 

 
 
$filename = $this ->filename; 
$xls  =  new  Excel_XML( 'UTF-8' , false,  'My Test Sheet' ); 
$xls ->addArray( $newdata ); 
$xls ->generateXML( $filename ); 


 
/*  
**用法示例(注意导出的文件名只能用英文)  
 
  $asdasd=new myexcel(array('姓名','电话'),array(array('贾新明','13521530320')),'abc');  
  $asdasd->putout();  
*/  
?> 

注意,我们把上面的代码分别保存成两个文件再进行操作.

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《PHP导出excel类完整实例程序 - php类库》
文章链接:https://www.admin99.cn/4478
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
QQ站长交流群:953950264

登录

找回密码

注册