PHP导出excel类完整实例程序
本文章来给各位同学详细介绍关于PHP导出excel类完整实例程序代码,这里我们使用了phpExcel插件,大家使用前先去下载一个phpExcel插件.
php exeel.class.php文件,代码如下:
<?php /** * Simple excel generating from PHP5 * * @package Utilities * @license http://HdhCmsTestopensource.org/licenses/mit-license.php * @author Oliver Schwarz <oliver.schwarz@gmail测试数据> * @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: //HdhCmsTestw3.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测试数据 */ 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(); */ ?>注意,我们把上面的代码分别保存成两个文件再进行操作.
查看更多关于PHP导出excel类完整实例程序 - php类库的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29556