IMPROVED : Samples for generating Excel5 at the same time Excel2007

This commit is contained in:
Progi1984 2012-07-13 17:58:44 +02:00
parent 5c1f28d470
commit 2cbc3d24ab
2 changed files with 99 additions and 90 deletions

View File

@ -42,10 +42,10 @@ $objPHPExcel = new PHPExcel();
echo date('H:i:s') , " Set document properties" , PHP_EOL; echo date('H:i:s') , " Set document properties" , PHP_EOL;
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw")
->setTitle("Office 2007 XLSX Test Document") ->setTitle("PHPExcel Test Document")
->setSubject("Office 2007 XLSX Test Document") ->setSubject("PHPExcel Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setDescription("Test document for PHPExcel, generated using PHP classes.")
->setKeywords("office 2007 openxml php") ->setKeywords("office PHPExcel php")
->setCategory("Test result file"); ->setCategory("Test result file");
@ -76,6 +76,11 @@ echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL;
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL;
// Save Excel5 file
echo date('H:i:s') , " Write to Excel5 format" , PHP_EOL;
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save(str_replace('.php', '.xls', __FILE__));
echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', __FILE__) , PHP_EOL;
// Echo memory peak usage // Echo memory peak usage

View File

@ -33,117 +33,121 @@ date_default_timezone_set('Europe/London');
/** Include PHPExcel */ /** Include PHPExcel */
require_once '../Classes/PHPExcel.php'; require_once '../Classes/PHPExcel.php';
if(php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR'])) {
define('EOL',PHP_EOL);
}
else {
define('EOL', '<br />');
}
// Create new PHPExcel object // Create new PHPExcel object
echo date('H:i:s') , " Create new PHPExcel object" , PHP_EOL; echo date('H:i:s').' Create new PHPExcel object'.EOL;
$objPHPExcel = new PHPExcel(); $objPHPExcel = new PHPExcel();
// Set document properties // Set document properties
echo date('H:i:s') , " Set document properties" , PHP_EOL; echo date('H:i:s').' Set document properties'.EOL;
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") $objPHPExcel->getProperties()->setCreator('Maarten Balliauw')
->setLastModifiedBy("Maarten Balliauw") ->setLastModifiedBy('Maarten Balliauw')
->setTitle("Office 2007 XLSX Test Document") ->setTitle('PHPExcel Test Document')
->setSubject("Office 2007 XLSX Test Document") ->setSubject('PHPExcel Test Document')
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setDescription('Test document for PHPExcel, generated using PHP classes.')
->setKeywords("office 2007 openxml php") ->setKeywords('office PHPExcel php')
->setCategory("Test result file"); ->setCategory('Test result file');
// Create the worksheet // Create the worksheet
echo date('H:i:s') , " Add data" , PHP_EOL; echo date('H:i:s').' Add data'.EOL;
$objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', "Year") $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Year')
->setCellValue('B1', "Quarter") ->setCellValue('B1', 'Quarter')
->setCellValue('C1', "Country") ->setCellValue('C1', 'Country')
->setCellValue('D1', "Sales"); ->setCellValue('D1', 'Sales');
$dataArray = array(array("2010", "Q1", "United States", 790), $dataArray = array(array('2010', 'Q1', 'United States', 790),
array("2010", "Q2", "United States", 730), array('2010', 'Q2', 'United States', 730),
array("2010", "Q3", "United States", 860), array('2010', 'Q3', 'United States', 860),
array("2010", "Q4", "United States", 850), array('2010', 'Q4', 'United States', 850),
array("2011", "Q1", "United States", 800), array('2011', 'Q1', 'United States', 800),
array("2011", "Q2", "United States", 700), array('2011', 'Q2', 'United States', 700),
array("2011", "Q3", "United States", 900), array('2011', 'Q3', 'United States', 900),
array("2011", "Q4", "United States", 950), array('2011', 'Q4', 'United States', 950),
array("2010", "Q1", "Belgium", 380), array('2010', 'Q1', 'Belgium', 380),
array("2010", "Q2", "Belgium", 390), array('2010', 'Q2', 'Belgium', 390),
array("2010", "Q3", "Belgium", 420), array('2010', 'Q3', 'Belgium', 420),
array("2010", "Q4", "Belgium", 460), array('2010', 'Q4', 'Belgium', 460),
array("2011", "Q1", "Belgium", 400), array('2011', 'Q1', 'Belgium', 400),
array("2011", "Q2", "Belgium", 350), array('2011', 'Q2', 'Belgium', 350),
array("2011", "Q3", "Belgium", 450), array('2011', 'Q3', 'Belgium', 450),
array("2011", "Q4", "Belgium", 500), array('2011', 'Q4', 'Belgium', 500),
array("2010", "Q1", "UK", 690), array('2010', 'Q1', 'UK', 690),
array("2010", "Q2", "UK", 610), array('2010', 'Q2', 'UK', 610),
array("2010", "Q3", "UK", 620), array('2010', 'Q3', 'UK', 620),
array("2010", "Q4", "UK", 600), array('2010', 'Q4', 'UK', 600),
array("2011", "Q1", "UK", 720), array('2011', 'Q1', 'UK', 720),
array("2011", "Q2", "UK", 650), array('2011', 'Q2', 'UK', 650),
array("2011", "Q3", "UK", 580), array('2011', 'Q3', 'UK', 580),
array("2011", "Q4", "UK", 510), array('2011', 'Q4', 'UK', 510),
array("2010", "Q1", "France", 510), array('2010', 'Q1', 'France', 510),
array("2010", "Q2", "France", 490), array('2010', 'Q2', 'France', 490),
array("2010", "Q3", "France", 460), array('2010', 'Q3', 'France', 460),
array("2010", "Q4", "France", 590), array('2010', 'Q4', 'France', 590),
array("2011", "Q1", "France", 620), array('2011', 'Q1', 'France', 620),
array("2011", "Q2", "France", 650), array('2011', 'Q2', 'France', 650),
array("2011", "Q3", "France", 415), array('2011', 'Q3', 'France', 415),
array("2011", "Q4", "France", 570), array('2011', 'Q4', 'France', 570),
array("2010", "Q1", "Germany", 720), array('2010', 'Q1', 'Germany', 720),
array("2010", "Q2", "Germany", 680), array('2010', 'Q2', 'Germany', 680),
array("2010", "Q3", "Germany", 640), array('2010', 'Q3', 'Germany', 640),
array("2010", "Q4", "Germany", 660), array('2010', 'Q4', 'Germany', 660),
array("2011", "Q1", "Germany", 680), array('2011', 'Q1', 'Germany', 680),
array("2011", "Q2", "Germany", 620), array('2011', 'Q2', 'Germany', 620),
array("2011", "Q3", "Germany", 710), array('2011', 'Q3', 'Germany', 710),
array("2011", "Q4", "Germany", 690), array('2011', 'Q4', 'Germany', 690),
array("2010", "Q1", "Spain", 510), array('2010', 'Q1', 'Spain', 510),
array("2010", "Q2", "Spain", 490), array('2010', 'Q2', 'Spain', 490),
array("2010", "Q3", "Spain", 470), array('2010', 'Q3', 'Spain', 470),
array("2010", "Q4", "Spain", 420), array('2010', 'Q4', 'Spain', 420),
array("2011", "Q1", "Spain", 460), array('2011', 'Q1', 'Spain', 460),
array("2011", "Q2", "Spain", 390), array('2011', 'Q2', 'Spain', 390),
array("2011", "Q3", "Spain", 430), array('2011', 'Q3', 'Spain', 430),
array("2011", "Q4", "Spain", 415), array('2011', 'Q4', 'Spain', 415),
array("2010", "Q1", "Italy", 440), array('2010', 'Q1', 'Italy', 440),
array("2010", "Q2", "Italy", 410), array('2010', 'Q2', 'Italy', 410),
array("2010", "Q3", "Italy", 420), array('2010', 'Q3', 'Italy', 420),
array("2010", "Q4", "Italy", 450), array('2010', 'Q4', 'Italy', 450),
array("2011", "Q1", "Italy", 430), array('2011', 'Q1', 'Italy', 430),
array("2011", "Q2", "Italy", 370), array('2011', 'Q2', 'Italy', 370),
array("2011", "Q3", "Italy", 350), array('2011', 'Q3', 'Italy', 350),
array("2011", "Q4", "Italy", 335), array('2011', 'Q4', 'Italy', 335),
); );
$objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A2'); $objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A2');
// Set title row bold // Set title row bold
echo date('H:i:s') , " Set title row bold" , PHP_EOL; echo date('H:i:s').' Set title row bold'.EOL;
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);
// Set autofilter // Set autofilter
echo date('H:i:s') , " Set autofilter" , PHP_EOL; echo date('H:i:s').' Set autofilter'.EOL;
// Always include the complete filter range! // Always include the complete filter range!
// Excel does support setting only the caption // Excel does support setting only the caption
// row, but that's not a best practise... // row, but that's not a best practise...
$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()); $objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension());
// Set active sheet index to the first sheet, so Excel opens this as the first sheet // Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->setActiveSheetIndex(0);
// Save Excel 2007 file // Save Excel 2007 file
echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL; echo date('H:i:s').' Write to Excel2007 format'.EOL;
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; echo date('H:i:s').' File written to '.str_replace('.php', '.xlsx', __FILE__).EOL;
// Save Excel5 file
echo date('H:i:s').' Write to Excel5 format'.EOL;
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save(str_replace('.php', '.xls', __FILE__));
echo date('H:i:s').' File written to '.str_replace('.php', '.xls', __FILE__).EOL;
// Echo memory peak usage // Echo memory peak usage
echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL;
// Echo done // Echo done
echo date('H:i:s') , " Done writing file" , PHP_EOL; echo date('H:i:s').' Done writing file'.EOL;