From 59dc300e9b2bb35a15b60e9575ede5f4824971f8 Mon Sep 17 00:00:00 2001 From: Mark Baker Date: Wed, 15 Feb 2012 13:11:26 +0000 Subject: [PATCH] git-svn-id: https://phpexcel.svn.codeplex.com/svn/trunk@86506 2327b42d-5241-43d6-9e2a-de5ac946f064 --- Tests/32chartreadwrite.php | 102 ++++++++++++++++++++++++++ Tests/runall.php | 1 + Tests/templates/32chartreadwrite.xlsx | Bin 0 -> 14604 bytes 3 files changed, 103 insertions(+) create mode 100644 Tests/32chartreadwrite.php create mode 100644 Tests/templates/32chartreadwrite.xlsx diff --git a/Tests/32chartreadwrite.php b/Tests/32chartreadwrite.php new file mode 100644 index 00000000..9ffd0d88 --- /dev/null +++ b/Tests/32chartreadwrite.php @@ -0,0 +1,102 @@ +load($inputFileName); + + +echo date('H:i:s') , " Iterate worksheets looking at the charts" , PHP_EOL; +foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { + $sheetName = $worksheet->getTitle(); + echo 'Worksheet: ' , $sheetName , PHP_EOL; + + $chartNames = $worksheet->getChartNames(); + if(empty($chartNames)) { + echo ' There are no charts in this worksheet' , PHP_EOL; + } else { + natsort($chartNames); + foreach($chartNames as $i => $chartName) { + $chart = $worksheet->getChartByName($chartName); + if (!is_null($chart->getTitle())) { + $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"'; + } else { + $caption = 'Untitled'; + } + echo ' ' , $chartName , ' - ' , $caption , PHP_EOL; + echo str_repeat(' ',strlen($chartName)+3); + $groupCount = $chart->getPlotArea()->getPlotGroupCount(); + if ($groupCount == 1) { + $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); + echo ' ' , $chartType , PHP_EOL; + } else { + $chartTypes = array(); + for($i = 0; $i < $groupCount; ++$i) { + $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); + } + $chartTypes = array_unique($chartTypes); + if (count($chartTypes) == 1) { + $chartType = 'Multiple Plot ' . array_pop($chartTypes); + echo ' ' , $chartType , PHP_EOL; + } elseif (count($chartTypes) == 0) { + echo ' *** Type not yet implemented' , PHP_EOL; + } else { + echo ' Combination Chart' , PHP_EOL; + } + } + } + } +} + + +echo date('H:i:s')." Write Tests to Excel2007 file" , PHP_EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; + +// Echo memory peak usage +echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024)." MB" , PHP_EOL; + +// Echo done +echo date('H:i:s')." Done writing files." , PHP_EOL; diff --git a/Tests/runall.php b/Tests/runall.php index 4a9c4930..d421dcdc 100644 --- a/Tests/runall.php +++ b/Tests/runall.php @@ -64,6 +64,7 @@ $aTests = array( , '29advancedvaluebinder.php' , '30template.php' , '31docproperties_write.php' + , '31docproperties_write-xls.php' , '32chartreadwrite.php' , 'OOCalcReader.php' , 'SylkReader.php' diff --git a/Tests/templates/32chartreadwrite.xlsx b/Tests/templates/32chartreadwrite.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..dc1b65421c39d5f70fff2b26041f5b2269d377c2 GIT binary patch literal 14604 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 literal 0 HcmV?d00001