2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  PHPExcel 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-02 22:50:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Copyright  ( c )  2006  -  2015  PHPExcel 
							 
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  library  is  free  software ;  you  can  redistribute  it  and / or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  modify  it  under  the  terms  of  the  GNU  Lesser  General  Public 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  License  as  published  by  the  Free  Software  Foundation ;  either 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  version  2.1  of  the  License ,  or  ( at  your  option )  any  later  version . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  library  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .   See  the  GNU 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Lesser  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  You  should  have  received  a  copy  of  the  GNU  Lesser  General  Public 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  License  along  with  this  library ;  if  not ,  write  to  the  Free  Software 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Foundation ,  Inc . ,  51  Franklin  Street ,  Fifth  Floor ,  Boston ,  MA   02110 - 1301   USA 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ category    PHPExcel 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ package     PHPExcel 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-02 22:50:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ copyright   Copyright  ( c )  2006  -  2015  PHPExcel  ( http :// www . codeplex . com / PHPExcel ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 *  @ license     http :// www . gnu . org / licenses / old - licenses / lgpl - 2.1 . txt 	LGPL 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ version     ##VERSION##, ##DATE##
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** Error reporting */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								error_reporting ( E_ALL );  
						 
					
						
							
								
									
										
										
										
											2012-08-05 21:06:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								ini_set ( 'display_errors' ,  TRUE );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ini_set ( 'display_startup_errors' ,  TRUE );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								date_default_timezone_set ( 'Europe/London' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								define ( 'EOL' ,( PHP_SAPI  ==  'cli' )  ?  PHP_EOL  :  '<br />' );  
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								date_default_timezone_set ( 'Europe/London' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-02-12 23:03:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/** Include PHPExcel */  
						 
					
						
							
								
									
										
										
										
											2013-07-10 11:33:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								require_once  dirname ( __FILE__ )  .  '/../Classes/PHPExcel.php' ;  
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// Create new PHPExcel object
  
						 
					
						
							
								
									
										
										
										
											2012-08-05 21:06:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  date ( 'H:i:s' )  ,  "  Create new PHPExcel object "  ,  EOL ;  
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								$objPHPExcel  =  new  PHPExcel ();  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-02-12 23:03:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// Set document properties
  
						 
					
						
							
								
									
										
										
										
											2012-08-05 21:06:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  date ( 'H:i:s' )  ,  "  Set document properties "  ,  EOL ;  
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								$objPHPExcel -> getProperties () -> setCreator ( " Maarten Balliauw " )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															 -> setLastModifiedBy ( " Maarten Balliauw " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															 -> setTitle ( " Office 2007 XLSX Test Document " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															 -> setSubject ( " Office 2007 XLSX Test Document " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															 -> setDescription ( " Test document for Office 2007 XLSX, generated using PHP classes. " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															 -> setKeywords ( " office 2007 openxml php " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															 -> setCategory ( " Test result file " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// Create a first sheet
  
						 
					
						
							
								
									
										
										
										
											2012-08-05 21:06:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  date ( 'H:i:s' )  ,  "  Add data "  ,  EOL ;  
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								$objPHPExcel -> setActiveSheetIndex ( 0 );  
						 
					
						
							
								
									
										
										
										
											2012-08-05 21:06:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$objPHPExcel -> getActiveSheet () -> setCellValue ( 'A1' ,  " Cell B3 and B5 contain data validation... " )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              -> setCellValue ( 'A3' ,  " Number: " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              -> setCellValue ( 'B3' ,  " 10 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              -> setCellValue ( 'A5' ,  " List: " ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-10-17 10:19:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                              -> setCellValue ( 'B5' ,  " Item A " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              -> setCellValue ( 'A7' ,  " List #2: " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              -> setCellValue ( 'B7' ,  " Item #2 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              -> setCellValue ( 'D2' ,  " Item #1 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              -> setCellValue ( 'D3' ,  " Item #2 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              -> setCellValue ( 'D4' ,  " Item #3 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              -> setCellValue ( 'D5' ,  " Item #4 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              -> setCellValue ( 'D6' ,  " Item #5 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// Set data validation
  
						 
					
						
							
								
									
										
										
										
											2012-08-05 21:06:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  date ( 'H:i:s' )  ,  "  Set data validation "  ,  EOL ;  
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								$objValidation  =  $objPHPExcel -> getActiveSheet () -> getCell ( 'B3' ) -> getDataValidation ();  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setType (  PHPExcel_Cell_DataValidation :: TYPE_WHOLE  );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setErrorStyle (  PHPExcel_Cell_DataValidation :: STYLE_STOP  );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setAllowBlank ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setShowInputMessage ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setShowErrorMessage ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setErrorTitle ( 'Input error' );  
						 
					
						
							
								
									
										
										
										
											2012-02-12 23:03:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$objValidation -> setError ( 'Only numbers between 10 and 20 are allowed!' );  
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								$objValidation -> setPromptTitle ( 'Allowed input' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setPrompt ( 'Only numbers between 10 and 20 are allowed.' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setFormula1 ( 10 );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setFormula2 ( 20 );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation  =  $objPHPExcel -> getActiveSheet () -> getCell ( 'B5' ) -> getDataValidation ();  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setType (  PHPExcel_Cell_DataValidation :: TYPE_LIST  );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setErrorStyle (  PHPExcel_Cell_DataValidation :: STYLE_INFORMATION  );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setAllowBlank ( false );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setShowInputMessage ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setShowErrorMessage ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setShowDropDown ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setErrorTitle ( 'Input error' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setError ( 'Value is not in list.' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setPromptTitle ( 'Pick from list' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setPrompt ( 'Please pick a value from the drop-down list.' );  
						 
					
						
							
								
									
										
										
										
											2013-10-17 10:19:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$objValidation -> setFormula1 ( '"Item A,Item B,Item C"' ); 	// Make sure to put the list items between " and " if your list is simply a comma-separated list of values !!!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation  =  $objPHPExcel -> getActiveSheet () -> getCell ( 'B7' ) -> getDataValidation ();  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setType (  PHPExcel_Cell_DataValidation :: TYPE_LIST  );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setErrorStyle (  PHPExcel_Cell_DataValidation :: STYLE_INFORMATION  );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setAllowBlank ( false );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setShowInputMessage ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setShowErrorMessage ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setShowDropDown ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setErrorTitle ( 'Input error' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setError ( 'Value is not in list.' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setPromptTitle ( 'Pick from list' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setPrompt ( 'Please pick a value from the drop-down list.' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objValidation -> setFormula1 ( '$D$2:$D$6' ); 	// Make sure NOT to put a range of cells or a formula between " and "  !!!
  
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// Set active sheet index to the first sheet, so Excel opens this as the first sheet
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objPHPExcel -> setActiveSheetIndex ( 0 );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// Save Excel 2007 file
  
						 
					
						
							
								
									
										
										
										
											2012-08-05 21:06:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  date ( 'H:i:s' )  ,  "  Write to Excel2007 format "  ,  EOL ;  
						 
					
						
							
								
									
										
										
										
											2012-11-28 21:30:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$callStartTime  =  microtime ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								$objWriter  =  PHPExcel_IOFactory :: createWriter ( $objPHPExcel ,  'Excel2007' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$objWriter -> save ( str_replace ( '.php' ,  '.xlsx' ,  __FILE__ ));  
						 
					
						
							
								
									
										
										
										
											2012-11-28 21:30:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$callEndTime  =  microtime ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$callTime  =  $callEndTime  -  $callStartTime ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-08-05 21:06:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  date ( 'H:i:s' )  ,  "  File written to  "  ,  str_replace ( '.php' ,  '.xlsx' ,  pathinfo ( __FILE__ ,  PATHINFO_BASENAME ))  ,  EOL ;  
						 
					
						
							
								
									
										
										
										
											2012-11-28 21:30:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  'Call time to write Workbook was '  ,  sprintf ( '%.4f' , $callTime )  ,  "  seconds "  ,  EOL ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// Echo memory usage
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  date ( 'H:i:s' )  ,  ' Current memory usage: '  ,  ( memory_get_usage ( true )  /  1024  /  1024 )  ,  "  MB "  ,  EOL ;  
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// Echo memory peak usage
  
						 
					
						
							
								
									
										
										
										
											2012-08-05 21:06:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  date ( 'H:i:s' )  ,  "  Peak memory usage:  "  ,  ( memory_get_peak_usage ( true )  /  1024  /  1024 )  ,  "  MB "  ,  EOL ;  
						 
					
						
							
								
									
										
										
										
											2010-08-26 19:14:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// Echo done
  
						 
					
						
							
								
									
										
										
										
											2012-08-05 21:06:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  date ( 'H:i:s' )  ,  "  Done writing file "  ,  EOL ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  'File has been created in '  ,  getcwd ()  ,  EOL ;