2016-08-31 16:15:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< ? php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-05-17 22:02:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								use  PhpOffice\PhpSpreadsheet\Cell\DataValidation ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								use  PhpOffice\PhpSpreadsheet\Spreadsheet ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-01 08:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								require  __DIR__  .  '/../Header.php' ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-31 16:15:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Create new Spreadsheet object
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$helper -> log ( 'Create new Spreadsheet object' ); 
							 
						 
					
						
							
								
									
										
										
										
											2017-05-17 22:02:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$spreadsheet  =  new  Spreadsheet (); 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-31 16:15:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Set document properties
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$helper -> log ( 'Set document properties' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$spreadsheet -> 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
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$helper -> log ( 'Add data' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$spreadsheet -> setActiveSheetIndex ( 0 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$spreadsheet -> getActiveSheet () -> setCellValue ( 'A1' ,  'Cell B3 and B5 contain data validation...' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        -> setCellValue ( 'A3' ,  'Number:' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        -> setCellValue ( 'B3' ,  '10' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        -> setCellValue ( 'A5' ,  'List:' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        -> 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' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Set data validation
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$helper -> log ( 'Set data validation' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation  =  $spreadsheet -> getActiveSheet () -> getCell ( 'B3' ) -> getDataValidation (); 
							 
						 
					
						
							
								
									
										
										
										
											2017-05-17 22:02:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$validation -> setType ( DataValidation :: TYPE_WHOLE ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setErrorStyle ( DataValidation :: STYLE_STOP ); 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-31 16:15:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setAllowBlank ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setShowInputMessage ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setShowErrorMessage ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setErrorTitle ( 'Input error' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setError ( 'Only numbers between 10 and 20 are allowed!' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setPromptTitle ( 'Allowed input' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setPrompt ( 'Only numbers between 10 and 20 are allowed.' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setFormula1 ( 10 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setFormula2 ( 20 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation  =  $spreadsheet -> getActiveSheet () -> getCell ( 'B5' ) -> getDataValidation (); 
							 
						 
					
						
							
								
									
										
										
										
											2017-05-17 22:02:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$validation -> setType ( DataValidation :: TYPE_LIST ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setErrorStyle ( DataValidation :: STYLE_INFORMATION ); 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-31 16:15:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setAllowBlank ( false ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setShowInputMessage ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setShowErrorMessage ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setShowDropDown ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setErrorTitle ( 'Input error' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setError ( 'Value is not in list.' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setPromptTitle ( 'Pick from list' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setPrompt ( 'Please pick a value from the drop-down list.' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> 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 !!!
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation  =  $spreadsheet -> getActiveSheet () -> getCell ( 'B7' ) -> getDataValidation (); 
							 
						 
					
						
							
								
									
										
										
										
											2017-05-17 22:02:17 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$validation -> setType ( DataValidation :: TYPE_LIST ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setErrorStyle ( DataValidation :: STYLE_INFORMATION ); 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-31 16:15:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setAllowBlank ( false ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setShowInputMessage ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setShowErrorMessage ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setShowDropDown ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setErrorTitle ( 'Input error' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setError ( 'Value is not in list.' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setPromptTitle ( 'Pick from list' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setPrompt ( 'Please pick a value from the drop-down list.' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$validation -> setFormula1 ( '$D$2:$D$6' );  // Make sure NOT to put a range of cells or a formula between " and "
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Save
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$helper -> write ( $spreadsheet ,  __FILE__ );