├── Examples ├── .gitignore ├── OOCalcTest.ods ├── Quadratic.xlsx ├── images │ ├── paid.png │ ├── officelogo.jpg │ ├── phpexcel_logo.gif │ └── termsconditions.jpg ├── GnumericTest.gnumeric ├── templates │ ├── 26template.xlsx │ ├── 27template.xls │ ├── 30template.xls │ ├── 43mergeBook1.xlsx │ ├── 43mergeBook2.xlsx │ ├── 31docproperties.xls │ ├── 31docproperties.xlsx │ ├── 32chartreadwrite.xlsx │ ├── 36writeLineChart1.xlsx │ ├── 32readwriteBarChart1.xlsx │ ├── 32readwriteBarChart2.xlsx │ ├── 32readwriteBarChart3.xlsx │ ├── 32readwritePieChart1.xlsx │ ├── 32readwritePieChart2.xlsx │ ├── 32readwritePieChart3.xlsx │ ├── 32readwritePieChart4.xlsx │ ├── 32complexChartreadwrite.xlsx │ ├── 32readwriteAreaChart1.xlsx │ ├── 32readwriteAreaChart2.xlsx │ ├── 32readwriteAreaChart3.xlsx │ ├── 32readwriteAreaChart3D1.xlsx │ ├── 32readwriteBarChart3D1.xlsx │ ├── 32readwriteBubbleChart1.xlsx │ ├── 32readwriteColumnChart1.xlsx │ ├── 32readwriteColumnChart2.xlsx │ ├── 32readwriteColumnChart3.xlsx │ ├── 32readwriteColumnChart4.xlsx │ ├── 32readwriteDonutChart1.xlsx │ ├── 32readwriteDonutChart2.xlsx │ ├── 32readwriteDonutChart3.xlsx │ ├── 32readwriteDonutChart4.xlsx │ ├── 32readwriteLineChart1.xlsx │ ├── 32readwriteLineChart2.xlsx │ ├── 32readwriteLineChart3.xlsx │ ├── 32readwriteLineChart3D1.xlsx │ ├── 32readwritePieChart3D1.xlsx │ ├── 32readwriteRadarChart1.xlsx │ ├── 32readwriteRadarChart2.xlsx │ ├── 32readwriteRadarChart3.xlsx │ ├── 32readwriteStockChart1.xlsx │ ├── 32readwriteStockChart2.xlsx │ ├── 32readwriteStockChart3.xlsx │ ├── 32readwriteStockChart4.xlsx │ ├── 32readwriteBubbleChart3D1.xlsx │ ├── 32readwriteColumnChart3D1.xlsx │ ├── 32readwriteScatterChart1.xlsx │ ├── 32readwriteScatterChart2.xlsx │ ├── 32readwriteScatterChart3.xlsx │ ├── 32readwriteScatterChart4.xlsx │ ├── 32readwriteScatterChart5.xlsx │ ├── 32readwriteSurfaceChart1.xlsx │ ├── 32readwriteSurfaceChart2.xlsx │ ├── 32readwriteSurfaceChart3.xlsx │ ├── 32readwriteSurfaceChart4.xlsx │ ├── 32readwriteAreaStackedChart1.xlsx │ ├── 32readwriteAreaStackedChart2.xlsx │ ├── 32readwriteBarStackedChart1.xlsx │ ├── 32readwriteBarStackedChart2.xlsx │ ├── 32readwriteChartWithImages1.xlsx │ ├── 32readwriteLineStackedChart1.xlsx │ ├── 32readwriteLineStackedChart2.xlsx │ ├── 32readwritePieChartExploded1.xlsx │ ├── 32readwriteAreaStackedChart3D1.xlsx │ ├── 32readwriteBarPercentageChart1.xlsx │ ├── 32readwriteBarPercentageChart2.xlsx │ ├── 32readwriteBarStackedChart3D1.xlsx │ ├── 32readwriteColumnStackedChart1.xlsx │ ├── 32readwriteColumnStackedChart2.xlsx │ ├── 32readwriteDonutChartExploded1.xlsx │ ├── 32readwritePieChartExploded3D1.xlsx │ ├── 32readwriteAreaPercentageChart1.xlsx │ ├── 32readwriteAreaPercentageChart2.xlsx │ ├── 32readwriteAreaPercentageChart3D1.xlsx │ ├── 32readwriteBarPercentageChart3D1.xlsx │ ├── 32readwriteColumnPercentageChart1.xlsx │ ├── 32readwriteColumnPercentageChart2.xlsx │ ├── 32readwriteColumnStackedChart3D1.xlsx │ ├── 32readwriteDonutChartMultiseries1.xlsx │ ├── 32readwriteLinePercentageChart1.xlsx │ ├── 32readwriteLinePercentageChart2.xlsx │ ├── 32readwriteColumnPercentageChart3D1.xlsx │ └── 32readwriteLineChartNoPointMarkers1.xlsx ├── data │ └── continents │ │ ├── South America.txt │ │ ├── Oceania.txt │ │ ├── North America.txt │ │ ├── Asia.txt │ │ ├── Europe.txt │ │ └── Africa.txt ├── 40duplicateStyle.php ├── SylkReader.php ├── 44worksheetInfo.php ├── OOCalcReader.php ├── GnumericReader.php ├── XMLReader.php ├── 14excel5.php └── Excel2003XMLReader.php ├── .gitattributes ├── Documentation ├── Functionality Cross-Reference.xls ├── markdown │ ├── Overview │ │ ├── 06-Worksheets.md │ │ ├── 11-Appendices.md │ │ ├── images │ │ │ ├── 01-schematic.png │ │ │ ├── 08-cell-comment.png │ │ │ ├── 08-column-width.png │ │ │ ├── 02-readers-writers.png │ │ │ ├── 07-simple-example-1.png │ │ │ ├── 07-simple-example-2.png │ │ │ ├── 07-simple-example-3.png │ │ │ ├── 07-simple-example-4.png │ │ │ ├── 08-page-setup-margins.png │ │ │ ├── 09-formula-in-cell-1.png │ │ │ ├── 09-formula-in-cell-2.png │ │ │ ├── 08-styling-border-options.png │ │ │ ├── 08-page-setup-scaling-options.png │ │ │ └── 09-command-line-calculation.png │ │ ├── 05-Deleting-a-Workbook.md │ │ └── 03-Creating-a-Spreadsheet.md │ ├── Features │ │ └── Autofilters │ │ │ ├── images │ │ │ ├── 01-01-autofilter.png │ │ │ ├── 01-02-autofilter.png │ │ │ ├── 01-04-autofilter.png │ │ │ ├── 01-03-filter-icon-1.png │ │ │ ├── 01-03-filter-icon-2.png │ │ │ ├── 04-01-simple-autofilter.png │ │ │ ├── 04-04-dynamic-autofilter.png │ │ │ ├── 04-02-dategroup-autofilter.png │ │ │ ├── 04-03-custom-autofilter-1.png │ │ │ ├── 04-03-custom-autofilter-2.png │ │ │ ├── 04-05-topten-autofilter-1.png │ │ │ └── 04-05-topten-autofilter-2.png │ │ │ ├── 06-Autofilter-Sorting.md │ │ │ ├── 02-Setting-an-Autofilter.md │ │ │ ├── 03-Autofilter-Expressions.md │ │ │ ├── 04-02-Autofilter-Expressions-Dategroup.md │ │ │ ├── 05-Executing-Autofilters.md │ │ │ ├── 01-Autofilters.md │ │ │ └── 04-01-Autofilter-Expressions-Simple.md │ ├── CalculationEngine │ │ └── FunctionReference │ │ │ ├── 03-01-Cube-Functions.md │ │ │ ├── 01-Introduction.md │ │ │ └── 02-General-Introduction.md │ └── ReadingSpreadsheetFiles │ │ ├── 02-Security.md │ │ ├── 06-Error-Handling.md │ │ ├── 03-Loading-a-Spreadsheet.md │ │ └── 07-Helper-Methods.md ├── PHPExcel developer documentation.doc ├── assets │ └── ClassDiagrams │ │ ├── Architecture.png │ │ ├── ReaderWriter.png │ │ ├── Exports │ │ ├── Architecture.png │ │ └── ReaderWriter.png │ │ ├── ClassDiagrams.csproj.user │ │ ├── Classes │ │ ├── Worksheet.cs │ │ ├── IReader.cs │ │ ├── IWriter.cs │ │ ├── PHPExcel_Reader_Excel2007.cs │ │ ├── PHPExcel_Writer_Excel2007.cs │ │ ├── PHPExcel.cs │ │ ├── PHPExcel_IOFactory.cs │ │ ├── PHPExcel_Reader_Serialized.cs │ │ ├── PHPExcel_Reader_Excel5.cs │ │ └── PHPExcel_Writer_Serialized.cs │ │ ├── ClassDiagrams.sln │ │ └── Architecture.cd ├── Examples │ ├── Reader │ │ ├── sampleData │ │ │ ├── example1.xls │ │ │ ├── example2.csv │ │ │ ├── example2.xls │ │ │ ├── example1.csv │ │ │ └── example1.tsv │ │ ├── exampleReader01.php │ │ ├── exampleReader16.php │ │ ├── exampleReader04.php │ │ ├── exampleReader18.php │ │ ├── exampleReader02.php │ │ ├── exampleReader03.php │ │ ├── exampleReader05.php │ │ ├── exampleReader19.php │ │ ├── exampleReader17.php │ │ ├── exampleReader06.php │ │ ├── exampleReader07.php │ │ ├── exampleReader08.php │ │ ├── exampleReader09.php │ │ ├── exampleReader13.php │ │ └── exampleReader10.php │ ├── Reading WorkBook Data │ │ ├── sampleData │ │ │ ├── example1.xls │ │ │ ├── example1.xlsx │ │ │ └── example2.xls │ │ ├── exampleWorkBookReader02.php │ │ ├── exampleWorkBookReader04.php │ │ └── exampleWorkBookReader03.php │ ├── index.php │ └── Calculations │ │ ├── index.php │ │ └── DateTime │ │ ├── TIMEVALUE.php │ │ ├── DATEVALUE.php │ │ └── TIME.php ├── PHPExcel Function Reference developer documentation.doc ├── PHPExcel AutoFilter Reference developer documentation.doc └── PHPExcel User Documentation - Reading Spreadsheet Files.doc ├── .gitignore ├── Classes └── PHPExcel │ ├── Chart │ ├── Renderer │ │ └── PHP Charting Libraries.txt │ ├── Exception.php │ └── Title.php │ ├── Shared │ ├── JAMA │ │ ├── CHANGELOG.TXT │ │ └── utils │ │ │ └── Maths.php │ ├── Escher │ │ ├── DggContainer │ │ │ ├── BstoreContainer.php │ │ │ └── BstoreContainer │ │ │ │ └── BSE │ │ │ │ └── Blip.php │ │ └── DgContainer.php │ └── Escher.php │ ├── Reader │ ├── Excel5 │ │ ├── ErrorCode.php │ │ ├── Color │ │ │ ├── BuiltIn.php │ │ │ ├── BIFF5.php │ │ │ └── BIFF8.php │ │ ├── Color.php │ │ └── Style │ │ │ ├── Border.php │ │ │ └── FillPattern.php │ ├── IReadFilter.php │ ├── IReader.php │ ├── Exception.php │ └── DefaultReadFilter.php │ ├── locale │ ├── en │ │ └── uk │ │ │ └── config │ ├── bg │ │ └── config │ ├── cs │ │ └── config │ ├── de │ │ └── config │ ├── fr │ │ └── config │ ├── it │ │ └── config │ ├── no │ │ └── config │ ├── pt │ │ ├── config │ │ └── br │ │ │ └── config │ ├── ru │ │ └── config │ ├── tr │ │ └── config │ ├── nl │ │ └── config │ ├── pl │ │ └── config │ ├── hu │ │ └── config │ ├── da │ │ └── config │ ├── sv │ │ └── config │ ├── fi │ │ └── config │ └── es │ │ └── config │ ├── IComparable.php │ ├── Writer │ ├── OpenDocument │ │ ├── WriterPart.php │ │ ├── Mimetype.php │ │ └── Thumbnails.php │ ├── IWriter.php │ └── Exception.php │ ├── Calculation │ ├── ExceptionHandler.php │ └── Exception.php │ ├── Cell │ └── IValueBinder.php │ ├── RichText │ └── ITextElement.php │ └── Exception.php ├── .travis.yml └── composer.json /Examples/.gitignore: -------------------------------------------------------------------------------- 1 | *.xls 2 | *.xlsx 3 | *.csv 4 | *.jpg 5 | *.pdf 6 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | /Build export-ignore 2 | /unitTests export-ignore 3 | README.md export-ignore 4 | -------------------------------------------------------------------------------- /Examples/OOCalcTest.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/OOCalcTest.ods -------------------------------------------------------------------------------- /Examples/Quadratic.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/Quadratic.xlsx -------------------------------------------------------------------------------- /Examples/images/paid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/images/paid.png -------------------------------------------------------------------------------- /Examples/GnumericTest.gnumeric: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/GnumericTest.gnumeric -------------------------------------------------------------------------------- /Examples/images/officelogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/images/officelogo.jpg -------------------------------------------------------------------------------- /Examples/images/phpexcel_logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/images/phpexcel_logo.gif -------------------------------------------------------------------------------- /Examples/templates/26template.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/26template.xlsx -------------------------------------------------------------------------------- /Examples/templates/27template.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/27template.xls -------------------------------------------------------------------------------- /Examples/templates/30template.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/30template.xls -------------------------------------------------------------------------------- /Examples/images/termsconditions.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/images/termsconditions.jpg -------------------------------------------------------------------------------- /Examples/templates/43mergeBook1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/43mergeBook1.xlsx -------------------------------------------------------------------------------- /Examples/templates/43mergeBook2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/43mergeBook2.xlsx -------------------------------------------------------------------------------- /Examples/templates/31docproperties.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/31docproperties.xls -------------------------------------------------------------------------------- /Examples/templates/31docproperties.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/31docproperties.xlsx -------------------------------------------------------------------------------- /Examples/templates/32chartreadwrite.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32chartreadwrite.xlsx -------------------------------------------------------------------------------- /Examples/templates/36writeLineChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/36writeLineChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteBarChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBarChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteBarChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBarChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteBarChart3.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBarChart3.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwritePieChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwritePieChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwritePieChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwritePieChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwritePieChart3.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwritePieChart3.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwritePieChart4.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwritePieChart4.xlsx -------------------------------------------------------------------------------- /Documentation/Functionality Cross-Reference.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/Functionality Cross-Reference.xls -------------------------------------------------------------------------------- /Examples/templates/32complexChartreadwrite.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32complexChartreadwrite.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteAreaChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteAreaChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteAreaChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteAreaChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteAreaChart3.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteAreaChart3.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteAreaChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteAreaChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteBarChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBarChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteBubbleChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBubbleChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteColumnChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteColumnChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteColumnChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteColumnChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteColumnChart3.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteColumnChart3.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteColumnChart4.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteColumnChart4.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteDonutChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteDonutChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteDonutChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteDonutChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteDonutChart3.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteDonutChart3.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteDonutChart4.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteDonutChart4.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteLineChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteLineChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteLineChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteLineChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteLineChart3.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteLineChart3.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteLineChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteLineChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwritePieChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwritePieChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteRadarChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteRadarChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteRadarChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteRadarChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteRadarChart3.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteRadarChart3.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteStockChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteStockChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteStockChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteStockChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteStockChart3.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteStockChart3.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteStockChart4.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteStockChart4.xlsx -------------------------------------------------------------------------------- /Documentation/markdown/Overview/06-Worksheets.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/06-Worksheets.md -------------------------------------------------------------------------------- /Documentation/markdown/Overview/11-Appendices.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/11-Appendices.md -------------------------------------------------------------------------------- /Examples/templates/32readwriteBubbleChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBubbleChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteColumnChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteColumnChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteScatterChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteScatterChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteScatterChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteScatterChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteScatterChart3.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteScatterChart3.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteScatterChart4.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteScatterChart4.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteScatterChart5.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteScatterChart5.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteSurfaceChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteSurfaceChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteSurfaceChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteSurfaceChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteSurfaceChart3.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteSurfaceChart3.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteSurfaceChart4.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteSurfaceChart4.xlsx -------------------------------------------------------------------------------- /Documentation/PHPExcel developer documentation.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/PHPExcel developer documentation.doc -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/assets/ClassDiagrams/Architecture.png -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/ReaderWriter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/assets/ClassDiagrams/ReaderWriter.png -------------------------------------------------------------------------------- /Examples/templates/32readwriteAreaStackedChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteAreaStackedChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteAreaStackedChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteAreaStackedChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteBarStackedChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBarStackedChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteBarStackedChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBarStackedChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteChartWithImages1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteChartWithImages1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteLineStackedChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteLineStackedChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteLineStackedChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteLineStackedChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwritePieChartExploded1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwritePieChartExploded1.xlsx -------------------------------------------------------------------------------- /Documentation/Examples/Reader/sampleData/example1.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/Examples/Reader/sampleData/example1.xls -------------------------------------------------------------------------------- /Documentation/Examples/Reader/sampleData/example2.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/Examples/Reader/sampleData/example2.csv -------------------------------------------------------------------------------- /Documentation/Examples/Reader/sampleData/example2.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/Examples/Reader/sampleData/example2.xls -------------------------------------------------------------------------------- /Examples/templates/32readwriteAreaStackedChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteAreaStackedChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteBarPercentageChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBarPercentageChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteBarPercentageChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBarPercentageChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteBarStackedChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBarStackedChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteColumnStackedChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteColumnStackedChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteColumnStackedChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteColumnStackedChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteDonutChartExploded1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteDonutChartExploded1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwritePieChartExploded3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwritePieChartExploded3D1.xlsx -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/PHPExcel.phar 2 | unitTests/codeCoverage 3 | analysis 4 | 5 | ## IDE support 6 | *.buildpath 7 | *.project 8 | /.settings 9 | /.idea 10 | -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/01-schematic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/01-schematic.png -------------------------------------------------------------------------------- /Examples/templates/32readwriteAreaPercentageChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteAreaPercentageChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteAreaPercentageChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteAreaPercentageChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteAreaPercentageChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteAreaPercentageChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteBarPercentageChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteBarPercentageChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteColumnPercentageChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteColumnPercentageChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteColumnPercentageChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteColumnPercentageChart2.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteColumnStackedChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteColumnStackedChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteDonutChartMultiseries1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteDonutChartMultiseries1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteLinePercentageChart1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteLinePercentageChart1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteLinePercentageChart2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteLinePercentageChart2.xlsx -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Exports/Architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/assets/ClassDiagrams/Exports/Architecture.png -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Exports/ReaderWriter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/assets/ClassDiagrams/Exports/ReaderWriter.png -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/08-cell-comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/08-cell-comment.png -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/08-column-width.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/08-column-width.png -------------------------------------------------------------------------------- /Examples/templates/32readwriteColumnPercentageChart3D1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteColumnPercentageChart3D1.xlsx -------------------------------------------------------------------------------- /Examples/templates/32readwriteLineChartNoPointMarkers1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Examples/templates/32readwriteLineChartNoPointMarkers1.xlsx -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/02-readers-writers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/02-readers-writers.png -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/07-simple-example-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/07-simple-example-1.png -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/07-simple-example-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/07-simple-example-2.png -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/07-simple-example-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/07-simple-example-3.png -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/07-simple-example-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/07-simple-example-4.png -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/08-page-setup-margins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/08-page-setup-margins.png -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/09-formula-in-cell-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/09-formula-in-cell-1.png -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/09-formula-in-cell-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/09-formula-in-cell-2.png -------------------------------------------------------------------------------- /Documentation/Examples/Reading WorkBook Data/sampleData/example1.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/Examples/Reading WorkBook Data/sampleData/example1.xls -------------------------------------------------------------------------------- /Documentation/Examples/Reading WorkBook Data/sampleData/example1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/Examples/Reading WorkBook Data/sampleData/example1.xlsx -------------------------------------------------------------------------------- /Documentation/Examples/Reading WorkBook Data/sampleData/example2.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/Examples/Reading WorkBook Data/sampleData/example2.xls -------------------------------------------------------------------------------- /Documentation/PHPExcel Function Reference developer documentation.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/PHPExcel Function Reference developer documentation.doc -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/08-styling-border-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/08-styling-border-options.png -------------------------------------------------------------------------------- /Documentation/PHPExcel AutoFilter Reference developer documentation.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/PHPExcel AutoFilter Reference developer documentation.doc -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/01-01-autofilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/01-01-autofilter.png -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/01-02-autofilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/01-02-autofilter.png -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/01-04-autofilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/01-04-autofilter.png -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/08-page-setup-scaling-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/08-page-setup-scaling-options.png -------------------------------------------------------------------------------- /Documentation/markdown/Overview/images/09-command-line-calculation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Overview/images/09-command-line-calculation.png -------------------------------------------------------------------------------- /Documentation/PHPExcel User Documentation - Reading Spreadsheet Files.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/PHPExcel User Documentation - Reading Spreadsheet Files.doc -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/01-03-filter-icon-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/01-03-filter-icon-1.png -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/01-03-filter-icon-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/01-03-filter-icon-2.png -------------------------------------------------------------------------------- /Examples/data/continents/South America.txt: -------------------------------------------------------------------------------- 1 | Argentina 2 | Bolivia 3 | Brazil 4 | Chile 5 | Colombia 6 | Ecuador 7 | Guyana 8 | Paraguay 9 | Peru 10 | Suriname 11 | Uruguay 12 | Venezuela 13 | -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/04-01-simple-autofilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/04-01-simple-autofilter.png -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/04-04-dynamic-autofilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/04-04-dynamic-autofilter.png -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/04-02-dategroup-autofilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/04-02-dategroup-autofilter.png -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/04-03-custom-autofilter-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/04-03-custom-autofilter-1.png -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/04-03-custom-autofilter-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/04-03-custom-autofilter-2.png -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/04-05-topten-autofilter-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/04-05-topten-autofilter-1.png -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/images/04-05-topten-autofilter-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHPOffice/PHPExcel/HEAD/Documentation/markdown/Features/Autofilters/images/04-05-topten-autofilter-2.png -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/ClassDiagrams.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | ShowAllFiles 4 | 5 | -------------------------------------------------------------------------------- /Examples/data/continents/Oceania.txt: -------------------------------------------------------------------------------- 1 | Australia 2 | Fiji 3 | Kiribati 4 | Marshall Islands 5 | Micronesia 6 | Nauru 7 | New Zealand 8 | Palau 9 | Papua New Guinea 10 | Samoa 11 | Solomon Islands 12 | Tonga 13 | Tuvalu 14 | Vanuatu 15 | -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/06-Autofilter-Sorting.md: -------------------------------------------------------------------------------- 1 | # PHPExcel AutoFilter Reference 2 | 3 | 4 | ## AutoFilter Sorting 5 | 6 | In MS Excel, Autofiltering also allows the rows to be sorted. This feature is ***not*** supported by PHPExcel. 7 | 8 | -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Classes/Worksheet.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ClassDiagrams 6 | { 7 | public class Worksheet 8 | { 9 | } 10 | 11 | public class CopyOfWorksheet 12 | { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/sampleData/example1.csv: -------------------------------------------------------------------------------- 1 | First Name,Last Name,Nationality,Gender,Date of Birth,Time of Birth,Date/Time,PHP Coder,Sanity %Age 2 | Mark,Baker,British,M,19-Dec-1960,01:30,=E2+F2,TRUE,32% 3 | Toni,Baker,British,F,24-Nov-1950,20:00,=E3+F3,FALSE,95% 4 | Rachel,Baker,British,F,7-Dec-1982,00:15,=E4+F4,FALSE,100% -------------------------------------------------------------------------------- /Documentation/Examples/Reader/sampleData/example1.tsv: -------------------------------------------------------------------------------- 1 | First Name Last Name Nationality Gender Date of Birth Time of Birth Date/Time PHP Coder Sanity %Age 2 | Mark Baker British M 19-Dec-1960 01:30 =E2+F2 TRUE 32% 3 | Toni Baker British F 24-Nov-1950 20:00 =E3+F3 FALSE 95% 4 | Rachel Baker British F 7-Dec-1982 00:15 =E4+F4 FALSE 100% -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Classes/IReader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ClassDiagrams 6 | { 7 | public interface PHPExcel_Reader_IReader 8 | { 9 | PHPExcel reads 10 | { 11 | get; 12 | set; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Classes/IWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ClassDiagrams 6 | { 7 | public interface PHPExcel_Writer_IWriter 8 | { 9 | PHPExcel writes 10 | { 11 | get; 12 | set; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Examples/data/continents/North America.txt: -------------------------------------------------------------------------------- 1 | Antigua and Barbuda 2 | Bahamas 3 | Barbados 4 | Belize 5 | Canada 6 | Costa Rica 7 | Cuba 8 | Dominica 9 | Dominican Republic 10 | El Salvador 11 | Grenada 12 | Guatemala 13 | Haiti 14 | Honduras 15 | Jamaica 16 | Mexico 17 | Nicaragua 18 | Panama 19 | Saint Kitts and Nevis 20 | Saint Lucia 21 | Saint Vincent and the Grenadines 22 | Trinidad and Tobago 23 | United States 24 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt: -------------------------------------------------------------------------------- 1 | ChartDirector 2 | http://www.advsofteng.com/cdphp.html 3 | 4 | GraPHPite 5 | http://graphpite.sourceforge.net/ 6 | 7 | JpGraph 8 | http://www.aditus.nu/jpgraph/ 9 | 10 | LibChart 11 | http://naku.dohcrew.com/libchart/pages/introduction/ 12 | 13 | pChart 14 | http://pchart.sourceforge.net/ 15 | 16 | TeeChart 17 | http://www.steema.com/products/teechart/overview.html 18 | 19 | PHPGraphLib 20 | http://www.ebrueggeman.com/phpgraphlib -------------------------------------------------------------------------------- /Classes/PHPExcel/Shared/JAMA/CHANGELOG.TXT: -------------------------------------------------------------------------------- 1 | Mar 1, 2005 11:15 AST by PM 2 | 3 | + For consistency, renamed Math.php to Maths.java, utils to util, 4 | tests to test, docs to doc - 5 | 6 | + Removed conditional logic from top of Matrix class. 7 | 8 | + Switched to using hypo function in Maths.php for all php-hypot calls. 9 | NOTE TO SELF: Need to make sure that all decompositions have been 10 | switched over to using the bundled hypo. 11 | 12 | Feb 25, 2005 at 10:00 AST by PM 13 | 14 | + Recommend using simpler Error.php instead of JAMA_Error.php but 15 | can be persuaded otherwise. 16 | 17 | -------------------------------------------------------------------------------- /Documentation/markdown/CalculationEngine/FunctionReference/03-01-Cube-Functions.md: -------------------------------------------------------------------------------- 1 | # Calculation Engine - Formula Function Reference 2 | 3 | ## Function Reference 4 | 5 | ### Cube Functions 6 | 7 | #### CUBEKPIMEMBER 8 | 9 | Not yet implemented. 10 | 11 | #### CUBEMEMBER 12 | 13 | Not yet implemented. 14 | 15 | #### CUBEMEMBERPROPERTY 16 | 17 | Not yet implemented. 18 | 19 | #### CUBERANKEDMEMBER 20 | 21 | Not yet implemented. 22 | 23 | #### CUBESET 24 | 25 | Not yet implemented. 26 | 27 | #### CUBESETCOUNT 28 | 29 | Not yet implemented. 30 | 31 | #### CUBEVALUE 32 | 33 | Not yet implemented. 34 | 35 | -------------------------------------------------------------------------------- /Examples/data/continents/Asia.txt: -------------------------------------------------------------------------------- 1 | Afghanistan 2 | Bahrain 3 | Bangladesh 4 | Bhutan 5 | Brunei 6 | Burma (Myanmar) 7 | Cambodia 8 | China 9 | East Timor 10 | India 11 | Indonesia 12 | Iran 13 | Iraq 14 | Israel 15 | Japan 16 | Jordan 17 | Kazakhstan 18 | Korea, North 19 | Korea, South 20 | Kuwait 21 | Kyrgyzstan 22 | Laos 23 | Lebanon 24 | Malaysia 25 | Maldives 26 | Mongolia 27 | Nepal 28 | Oman 29 | Pakistan 30 | Philippines 31 | Qatar 32 | Russian Federation 33 | Saudi Arabia 34 | Singapore 35 | Sri Lanka 36 | Syria 37 | Tajikistan 38 | Thailand 39 | Turkey 40 | Turkmenistan 41 | United Arab Emirates 42 | Uzbekistan 43 | Vietnam 44 | Yemen 45 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | php: 4 | - 5.4 5 | - 5.5 6 | - 5.6 7 | - 7.0 8 | - hhvm 9 | 10 | matrix: 11 | allow_failures: 12 | - php: hhvm 13 | 14 | before_script: 15 | ## Packages 16 | - sudo apt-get -qq update > /dev/null 17 | ## Composer 18 | - composer self-update 19 | - composer install --prefer-source --dev 20 | - phpenv global "$TRAVIS_PHP_VERSION" 21 | 22 | script: 23 | ## PHP_CodeSniffer 24 | - ./vendor/bin/phpcs --report-width=200 --report-summary --report-full Classes/ unitTests/ --standard=PSR2 -n 25 | ## PHPUnit 26 | - phpunit -c ./unitTests/ 27 | 28 | notifications: 29 | email: false 30 | -------------------------------------------------------------------------------- /Examples/data/continents/Europe.txt: -------------------------------------------------------------------------------- 1 | Albania 2 | Andorra 3 | Armenia 4 | Austria 5 | Azerbaijan 6 | Belarus 7 | Belgium 8 | Bosnia and Herzegovina 9 | Bulgaria 10 | Croatia 11 | Cyprus 12 | Czech Republic 13 | Denmark 14 | Estonia 15 | Finland 16 | France 17 | Georgia 18 | Germany 19 | Greece 20 | Hungary 21 | Iceland 22 | Ireland 23 | Italy 24 | Latvia 25 | Liechtenstein 26 | Lithuania 27 | Luxembourg 28 | Macedonia 29 | Malta 30 | Moldova 31 | Monaco 32 | Montenegro 33 | Netherlands 34 | Norway 35 | Poland 36 | Portugal 37 | Romania 38 | San Marino 39 | Serbia 40 | Slovakia 41 | Slovenia 42 | Spain 43 | Sweden 44 | Switzerland 45 | Ukraine 46 | United Kingdom 47 | Vatican City 48 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Reader/Excel5/ErrorCode.php: -------------------------------------------------------------------------------- 1 | '#NULL!', 7 | 0x07 => '#DIV/0!', 8 | 0x0F => '#VALUE!', 9 | 0x17 => '#REF!', 10 | 0x1D => '#NAME?', 11 | 0x24 => '#NUM!', 12 | 0x2A => '#N/A', 13 | ); 14 | 15 | /** 16 | * Map error code, e.g. '#N/A' 17 | * 18 | * @param int $code 19 | * @return string 20 | */ 21 | public static function lookup($code) 22 | { 23 | if (isset(self::$map[$code])) { 24 | return self::$map[$code]; 25 | } 26 | return false; 27 | } 28 | } -------------------------------------------------------------------------------- /Documentation/markdown/CalculationEngine/FunctionReference/01-Introduction.md: -------------------------------------------------------------------------------- 1 | # Calculation Engine - Formula Function Reference 2 | 3 | ## Frequently asked questions 4 | 5 | The up-to-date F.A.Q. page for PHPExcel can be found on [http://www.codeplex.com/PHPExcel/Wiki/View.aspx?title=FAQ&referringTitle=Requirements][1]. 6 | 7 | ### Formulas don’t seem to be calculated in Excel2003 using compatibility pack? 8 | 9 | This is normal behaviour of the compatibility pack, Excel2007 displays this correctly. Use PHPExcel_Writer_Excel5 if you really need calculated values, or force recalculation in Excel2003. 10 | 11 | [1]: http://www.codeplex.com/PHPExcel/Wiki/View.aspx?title=FAQ&referringTitle=Requirements 12 | -------------------------------------------------------------------------------- /Documentation/markdown/ReadingSpreadsheetFiles/02-Security.md: -------------------------------------------------------------------------------- 1 | # PHPExcel User Documentation – Reading Spreadsheet Files 2 | 3 | 4 | ## Security 5 | 6 | XML-based formats such as OfficeOpen XML, Excel2003 XML, OASIS and Gnumeric are susceptible to XML External Entity Processing (XXE) injection attacks (for an explanation of XXE injection see http://websec.io/2012/08/27/Preventing-XEE-in-PHP.html) when reading spreadsheet files. This can lead to: 7 | 8 | - Disclosure whether a file is existent 9 | - Server Side Request Forgery 10 | - Command Execution (depending on the installed PHP wrappers) 11 | 12 | 13 | To prevent this, PHPExcel sets `libxml_disable_entity_loader` to `true` for the XML-based Readers by default. -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Classes/PHPExcel_Reader_Excel2007.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ClassDiagrams 6 | { 7 | public class PHPExcel_Reader_Excel2007 : PHPExcel_Reader_IReader 8 | { 9 | #region IReader Members 10 | 11 | public PHPExcel reads 12 | { 13 | get 14 | { 15 | throw new Exception("The method or operation is not implemented."); 16 | } 17 | set 18 | { 19 | throw new Exception("The method or operation is not implemented."); 20 | } 21 | } 22 | 23 | #endregion 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Classes/PHPExcel_Writer_Excel2007.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ClassDiagrams 6 | { 7 | public class PHPExcel_Writer_Excel2007 : PHPExcel_Writer_IWriter 8 | { 9 | #region IWriter Members 10 | 11 | public PHPExcel writes 12 | { 13 | get 14 | { 15 | throw new Exception("The method or operation is not implemented."); 16 | } 17 | set 18 | { 19 | throw new Exception("The method or operation is not implemented."); 20 | } 21 | } 22 | 23 | #endregion 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Examples/data/continents/Africa.txt: -------------------------------------------------------------------------------- 1 | Algeria 2 | Angola 3 | Benin 4 | Botswana 5 | Burkina 6 | Burundi 7 | Cameroon 8 | Cape Verde 9 | Central African Republic 10 | Chad 11 | Comoros 12 | Congo 13 | Congo, Democratic Republic of 14 | Djibouti 15 | Egypt 16 | Equatorial Guinea 17 | Eritrea 18 | Ethiopia 19 | Gabon 20 | Gambia 21 | Ghana 22 | Guinea 23 | Guinea-Bissau 24 | Ivory Coast 25 | Kenya 26 | Lesotho 27 | Liberia 28 | Libya 29 | Madagascar 30 | Malawi 31 | Mali 32 | Mauritania 33 | Mauritius 34 | Morocco 35 | Mozambique 36 | Namibia 37 | Niger 38 | Nigeria 39 | Rwanda 40 | Sao Tome and Principe 41 | Senegal 42 | Seychelles 43 | Sierra Leone 44 | Somalia 45 | South Africa 46 | South Sudan 47 | Sudan 48 | Swaziland 49 | Tanzania 50 | Togo 51 | Tunisia 52 | Uganda 53 | Zambia 54 | Zimbabwe 55 | -------------------------------------------------------------------------------- /Documentation/markdown/Overview/05-Deleting-a-Workbook.md: -------------------------------------------------------------------------------- 1 | # PHPExcel Developer Documentation 2 | 3 | ## Clearing a Workbook from memory 4 | 5 | The PHPExcel object contains cyclic references (e.g. the workbook is linked to the worksheets, and the worksheets are linked to their parent workbook) which cause problems when PHP tries to clear the objects from memory when they are unset(), or at the end of a function when they are in local scope. The result of this is "memory leaks", which can easily use a large amount of PHP's limited memory. 6 | 7 | This can only be resolved manually: if you need to unset a workbook, then you also need to "break" these cyclic references before doing so. PHPExcel provides the disconnectWorksheets() method for this purpose. 8 | 9 | ```php 10 | $objPHPExcel->disconnectWorksheets(); 11 | 12 | unset($objPHPExcel); 13 | ``` 14 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Reader/Excel5/Color/BuiltIn.php: -------------------------------------------------------------------------------- 1 | '000000', 7 | 0x01 => 'FFFFFF', 8 | 0x02 => 'FF0000', 9 | 0x03 => '00FF00', 10 | 0x04 => '0000FF', 11 | 0x05 => 'FFFF00', 12 | 0x06 => 'FF00FF', 13 | 0x07 => '00FFFF', 14 | 0x40 => '000000', // system window text color 15 | 0x41 => 'FFFFFF', // system window background color 16 | ); 17 | 18 | /** 19 | * Map built-in color to RGB value 20 | * 21 | * @param int $color Indexed color 22 | * @return array 23 | */ 24 | public static function lookup($color) 25 | { 26 | if (isset(self::$map[$color])) { 27 | return array('rgb' => self::$map[$color]); 28 | } 29 | return array('rgb' => '000000'); 30 | } 31 | } -------------------------------------------------------------------------------- /Documentation/markdown/ReadingSpreadsheetFiles/06-Error-Handling.md: -------------------------------------------------------------------------------- 1 | # PHPExcel User Documentation – Reading Spreadsheet Files 2 | 3 | ## Error Handling 4 | 5 | Of course, you should always apply some error handling to your scripts as well. PHPExcel throws exceptions, so you can wrap all your code that accesses the library methods within Try/Catch blocks to trap for any problems that are encountered, and deal with them in an appropriate manner. 6 | 7 | The PHPExcel Readers throw a PHPExcel_Reader_Exception. 8 | 9 | ```php 10 | $inputFileName = './sampleData/example-1.xls'; 11 | 12 | try { 13 | /** Load $inputFileName to a PHPExcel Object **/ 14 | $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); 15 | } catch(PHPExcel_Reader_Exception $e) { 16 | die('Error loading file: '.$e->getMessage()); 17 | } 18 | ``` 19 | > See Examples/Reader/exampleReader16.php for a working example of this code. 20 | 21 | -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/ClassDiagrams.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassDiagrams", "ClassDiagrams.csproj", "{CC8CD7D2-8EFF-48E5-A17A-C1C482744D31}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Any CPU = Debug|Any CPU 9 | Release|Any CPU = Release|Any CPU 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {CC8CD7D2-8EFF-48E5-A17A-C1C482744D31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 13 | {CC8CD7D2-8EFF-48E5-A17A-C1C482744D31}.Debug|Any CPU.Build.0 = Debug|Any CPU 14 | {CC8CD7D2-8EFF-48E5-A17A-C1C482744D31}.Release|Any CPU.ActiveCfg = Release|Any CPU 15 | {CC8CD7D2-8EFF-48E5-A17A-C1C482744D31}.Release|Any CPU.Build.0 = Release|Any CPU 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/02-Setting-an-Autofilter.md: -------------------------------------------------------------------------------- 1 | # PHPExcel AutoFilter Reference 2 | 3 | 4 | ## Setting an AutoFilter area on a worksheet 5 | 6 | To set an autoFilter on a range of cells. 7 | 8 | ```php 9 | $objPHPExcel->getActiveSheet()->setAutoFilter('A1:E20'); 10 | ``` 11 | 12 | The first row in an autofilter range will be the heading row, which displays the autoFilter dropdown icons. It is not part of the actual autoFiltered data. All subsequent rows are the autoFiltered data. So an AutoFilter range should always contain the heading row and one or more data rows (one data row is pretty meaningless, but PHPExcel won't actually stop you specifying a meaningless range: it's up to you as the developer to avoid such errors. 13 | 14 | If you want to set the whole worksheet as an autofilter region 15 | 16 | ```php 17 | $objPHPExcel->getActiveSheet()->setAutoFilter( 18 | $objPHPExcel->getActiveSheet() 19 | ->calculateWorksheetDimension() 20 | ); 21 | ``` 22 | 23 | This enables filtering, but does not actually apply any filters. 24 | 25 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Shared/JAMA/utils/Maths.php: -------------------------------------------------------------------------------- 1 | abs($b)) { 17 | $r = $b / $a; 18 | $r = abs($a) * sqrt(1 + $r * $r); 19 | } elseif ($b != 0) { 20 | $r = $a / $b; 21 | $r = abs($b) * sqrt(1 + $r * $r); 22 | } else { 23 | $r = 0.0; 24 | } 25 | return $r; 26 | } // function hypo() 27 | 28 | 29 | /** 30 | * Mike Bommarito's version. 31 | * Compute n-dimensional hyotheneuse. 32 | * 33 | function hypot() { 34 | $s = 0; 35 | foreach (func_get_args() as $d) { 36 | if (is_numeric($d)) { 37 | $s += pow($d, 2); 38 | } else { 39 | throw new PHPExcel_Calculation_Exception(JAMAError(ARGUMENT_TYPE_EXCEPTION)); 40 | } 41 | } 42 | return sqrt($s); 43 | } 44 | */ 45 | -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Classes/PHPExcel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ClassDiagrams 6 | { 7 | public class PHPExcel 8 | { 9 | /// 10 | public Worksheet Worksheets 11 | { 12 | get 13 | { 14 | throw new System.NotImplementedException(); 15 | } 16 | set 17 | { 18 | } 19 | } 20 | } 21 | 22 | public class PHPExcel_Writer_PDF : PHPExcel_Writer_IWriter 23 | { 24 | #region PHPExcel_Writer_IWriter Members 25 | 26 | public PHPExcel writes 27 | { 28 | get 29 | { 30 | throw new Exception("The method or operation is not implemented."); 31 | } 32 | set 33 | { 34 | throw new Exception("The method or operation is not implemented."); 35 | } 36 | } 37 | 38 | #endregion 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader01.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #01 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #01

19 |

Simple File Reader using PHPExcel_IOFactory::load()

20 | '; 31 | $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); 32 | 33 | 34 | echo '
'; 35 | 36 | $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 37 | var_dump($sheetData); 38 | 39 | 40 | ?> 41 | 42 | -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Classes/PHPExcel_IOFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ClassDiagrams 6 | { 7 | public class PHPExcel_IOFactory 8 | { 9 | public PHPExcel_Reader_IReader createsReader 10 | { 11 | get 12 | { 13 | throw new System.NotImplementedException(); 14 | } 15 | set 16 | { 17 | } 18 | } 19 | 20 | public PHPExcel_Writer_IWriter createsWriter 21 | { 22 | get 23 | { 24 | throw new System.NotImplementedException(); 25 | } 26 | set 27 | { 28 | } 29 | } 30 | 31 | public PHPExcel_Writer_IWriter createWriter() 32 | { 33 | throw new System.NotImplementedException(); 34 | } 35 | 36 | public PHPExcel_Reader_IReader createReader() 37 | { 38 | throw new System.NotImplementedException(); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Reader/Excel5/Color.php: -------------------------------------------------------------------------------- 1 | 'FF0000') 11 | */ 12 | public static function map($color, $palette, $version) 13 | { 14 | if ($color <= 0x07 || $color >= 0x40) { 15 | // special built-in color 16 | return PHPExcel_Reader_Excel5_Color_BuiltIn::lookup($color); 17 | } elseif (isset($palette) && isset($palette[$color - 8])) { 18 | // palette color, color index 0x08 maps to pallete index 0 19 | return $palette[$color - 8]; 20 | } else { 21 | // default color table 22 | if ($version == PHPExcel_Reader_Excel5::XLS_BIFF8) { 23 | return PHPExcel_Reader_Excel5_Color_BIFF8::lookup($color); 24 | } else { 25 | // BIFF5 26 | return PHPExcel_Reader_Excel5_Color_BIFF5::lookup($color); 27 | } 28 | } 29 | 30 | return $color; 31 | } 32 | } -------------------------------------------------------------------------------- /Documentation/Examples/index.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Examples 14 | 15 | 16 | 17 | 18 | PHPExcel ' . pathinfo($exampleType,PATHINFO_BASENAME) . ' Examples'; 25 | 26 | $exampleList = glob('./'.$exampleType.'/*.php'); 27 | 28 | foreach($exampleList as $exampleFile) { 29 | $fileData = file_get_contents($exampleFile); 30 | 31 | $h1Pattern = '#

(.*?)

#'; 32 | $h2Pattern = '#

(.*?)

#'; 33 | 34 | if (preg_match($h1Pattern, $fileData, $out)) { 35 | $h1Text = $out[1]; 36 | $h2Text = (preg_match($h2Pattern, $fileData, $out)) ? $out[1] : ''; 37 | 38 | echo '',$h1Text,'
'; 39 | if (($h2Text > '') && 40 | (pathinfo($exampleType,PATHINFO_BASENAME) != 'Calculations')) { 41 | echo $h2Text,'
'; 42 | } 43 | } 44 | 45 | } 46 | } 47 | 48 | ?> 49 | 50 | -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Classes/PHPExcel_Reader_Serialized.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ClassDiagrams 6 | { 7 | public class PHPExcel_Reader_Serialized : PHPExcel_Reader_IReader 8 | { 9 | #region IReader Members 10 | 11 | public PHPExcel reads 12 | { 13 | get 14 | { 15 | throw new Exception("The method or operation is not implemented."); 16 | } 17 | set 18 | { 19 | throw new Exception("The method or operation is not implemented."); 20 | } 21 | } 22 | 23 | #endregion 24 | } 25 | 26 | public class PHPExcel_Reader_CSV : PHPExcel_Reader_IReader 27 | { 28 | #region IReader Members 29 | 30 | public PHPExcel reads 31 | { 32 | get 33 | { 34 | throw new Exception("The method or operation is not implemented."); 35 | } 36 | set 37 | { 38 | throw new Exception("The method or operation is not implemented."); 39 | } 40 | } 41 | 42 | #endregion 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader16.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #16 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #16

19 |

Handling Loader Exceptions using Try/Catch

20 | '; 31 | try { 32 | $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); 33 | } catch(PHPExcel_Reader_Exception $e) { 34 | die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()); 35 | } 36 | 37 | 38 | echo '
'; 39 | 40 | $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 41 | var_dump($sheetData); 42 | 43 | 44 | ?> 45 | 46 | -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/03-Autofilter-Expressions.md: -------------------------------------------------------------------------------- 1 | # PHPExcel AutoFilter Reference 2 | 3 | 4 | ## Autofilter Expressions 5 | 6 | PHPEXcel 1.7.8 introduced the ability to actually create, read and write filter expressions; initially only for Excel2007 files, but later releases will extend this to other formats. 7 | 8 | To apply a filter expression to an autoFilter range, you first need to identify which column you're going to be applying this filter to. 9 | 10 | ```php 11 | $autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter(); 12 | $columnFilter = $autoFilter->getColumn('C'); 13 | ``` 14 | 15 | This returns an autoFilter column object, and you can then apply filter expressions to that column. 16 | 17 | There are a number of different types of autofilter expressions. The most commonly used are: 18 | 19 | - Simple Filters 20 | - DateGroup Filters 21 | - Custom filters 22 | - Dynamic Filters 23 | - Top Ten Filters 24 | 25 | These different types are mutually exclusive within any single column. You should not mix the different types of filter in the same column. PHPExcel will not actively prevent you from doing this, but the results are unpredictable. 26 | 27 | Other filter expression types (such as cell colour filters) are not yet supported. 28 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "phpoffice/phpexcel", 3 | "description": "PHPExcel - OpenXML - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine", 4 | "keywords": ["PHP","Excel","OpenXML","xlsx","xls","spreadsheet"], 5 | "homepage": "https://github.com/PHPOffice/PHPExcel", 6 | "type": "library", 7 | "license": "LGPL-2.1", 8 | "authors": [ 9 | { 10 | "name": "Maarten Balliauw", 11 | "homepage": "http://blog.maartenballiauw.be" 12 | }, 13 | { 14 | "name": "Mark Baker", 15 | "homepage": "http://markbakeruk.net" 16 | }, 17 | { 18 | "name": "Franck Lefevre", 19 | "homepage": "http://rootslabs.net" 20 | }, 21 | { 22 | "name": "Erik Tilt" 23 | } 24 | ], 25 | "require": { 26 | "php": "^5.2|^7.0", 27 | "ext-mbstring": "*", 28 | "ext-xml": "*", 29 | "ext-xmlwriter": "*" 30 | }, 31 | "require-dev": { 32 | "squizlabs/php_codesniffer": "2.*" 33 | }, 34 | "recommend": { 35 | "ext-zip": "*", 36 | "ext-gd": "*" 37 | }, 38 | "autoload": { 39 | "psr-0": { 40 | "PHPExcel": "Classes/" 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Classes/PHPExcel/locale/en/uk/config: -------------------------------------------------------------------------------- 1 | ## 2 | ## PHPExcel 3 | ## 4 | ## Copyright (c) 2006 - 2013 PHPExcel 5 | ## 6 | ## This library is free software; you can redistribute it and/or 7 | ## modify it under the terms of the GNU Lesser General Public 8 | ## License as published by the Free Software Foundation; either 9 | ## version 2.1 of the License, or (at your option) any later version. 10 | ## 11 | ## This library is distributed in the hope that it will be useful, 12 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | ## Lesser General Public License for more details. 15 | ## 16 | ## You should have received a copy of the GNU Lesser General Public 17 | ## License along with this library; if not, write to the Free Software 18 | ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | ## 20 | ## @category PHPExcel 21 | ## @package PHPExcel_Settings 22 | ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) 23 | ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL 24 | ## @version ##VERSION##, ##DATE## 25 | ## 26 | ## 27 | 28 | 29 | ## 30 | ## (For future use) 31 | ## 32 | currencySymbol = £ 33 | -------------------------------------------------------------------------------- /Documentation/Examples/Calculations/index.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Calculation Function Examples 14 | 15 | 16 | 17 | 18 | PHPExcel Calculation Function Examples'; 21 | 22 | $exampleTypeList = glob('./*',GLOB_ONLYDIR); 23 | 24 | foreach($exampleTypeList as $exampleType) { 25 | 26 | echo '

' . pathinfo($exampleType,PATHINFO_BASENAME) . ' Function Examples

'; 27 | 28 | $exampleList = glob('./'.$exampleType.'/*.php'); 29 | 30 | foreach($exampleList as $exampleFile) { 31 | $fileData = file_get_contents($exampleFile); 32 | 33 | $h1Pattern = '#

(.*?)

#'; 34 | $h2Pattern = '#

(.*?)

#'; 35 | 36 | if (preg_match($h1Pattern, $fileData, $out)) { 37 | $h1Text = $out[1]; 38 | $h2Text = (preg_match($h2Pattern, $fileData, $out)) ? $out[1] : ''; 39 | 40 | echo '',$h1Text,'
'; 41 | if ($h2Text > '') { 42 | echo $h2Text,'
'; 43 | } 44 | } 45 | 46 | } 47 | } 48 | 49 | ?> 50 | 51 | -------------------------------------------------------------------------------- /Classes/PHPExcel/IComparable.php: -------------------------------------------------------------------------------- 1 | PHPExcel_Style_Border::BORDER_NONE, 7 | 0x01 => PHPExcel_Style_Border::BORDER_THIN, 8 | 0x02 => PHPExcel_Style_Border::BORDER_MEDIUM, 9 | 0x03 => PHPExcel_Style_Border::BORDER_DASHED, 10 | 0x04 => PHPExcel_Style_Border::BORDER_DOTTED, 11 | 0x05 => PHPExcel_Style_Border::BORDER_THICK, 12 | 0x06 => PHPExcel_Style_Border::BORDER_DOUBLE, 13 | 0x07 => PHPExcel_Style_Border::BORDER_HAIR, 14 | 0x08 => PHPExcel_Style_Border::BORDER_MEDIUMDASHED, 15 | 0x09 => PHPExcel_Style_Border::BORDER_DASHDOT, 16 | 0x0A => PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT, 17 | 0x0B => PHPExcel_Style_Border::BORDER_DASHDOTDOT, 18 | 0x0C => PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT, 19 | 0x0D => PHPExcel_Style_Border::BORDER_SLANTDASHDOT, 20 | ); 21 | 22 | /** 23 | * Map border style 24 | * OpenOffice documentation: 2.5.11 25 | * 26 | * @param int $index 27 | * @return string 28 | */ 29 | public static function lookup($index) 30 | { 31 | if (isset(self::$map[$index])) { 32 | return self::$map[$index]; 33 | } 34 | return PHPExcel_Style_Border::BORDER_NONE; 35 | } 36 | } -------------------------------------------------------------------------------- /Documentation/markdown/CalculationEngine/FunctionReference/02-General-Introduction.md: -------------------------------------------------------------------------------- 1 | # Calculation Engine - Formula Function Reference 2 | 3 | ## General Introduction 4 | 5 | ### Function that are not Supported in Excel5 6 | 7 | Not all functions are supported by the Excel 5 Writer. Use of these functions within your workbooks will result in an error when trying to write to Excel5. 8 | 9 | The following is the list of those functions that are implemented within PHPExcel, but that cannot currently be written to Excel 5. 10 | 11 | #### Cube Functions 12 | 13 | Excel Function | Notes 14 | --------------------|--------- 15 | CUBEKPIMEMBER | Not yet Implemented 16 | CUBEMEMBER | Not yet Implemented 17 | CUBEMEMBERPROPERTY | Not yet Implemented 18 | CUBERANKEDMEMBER | Not yet Implemented 19 | CUBESET | Not yet Implemented 20 | CUBESETCOUNT | Not yet Implemented 21 | CUBEVALUE | Not yet Implemented 22 | 23 | 24 | #### Database Functions 25 | 26 | Excel Function | Notes 27 | ---------------|--------- 28 | 29 | 30 | #### Date and Time Functions 31 | 32 | Excel Function | Notes 33 | ---------------|--------- 34 | EDATE | Not a standard function within Excel 5, but an add-in from the Analysis ToolPak. 35 | EOMONTH | Not a standard function within Excel 5, but an add-in from the Analysis ToolPak. 36 | 37 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader04.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #04 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #04

19 |

Simple File Reader using the PHPExcel_IOFactory to Identify a Reader to Use

20 | '; 33 | 34 | echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory with the identified reader type
'; 35 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 36 | $objPHPExcel = $objReader->load($inputFileName); 37 | 38 | 39 | echo '
'; 40 | 41 | $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 42 | var_dump($sheetData); 43 | 44 | 45 | ?> 46 | 47 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader18.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #18 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #18

19 |

Reading list of WorkSheets without loading entire file

20 | '; 37 | 38 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 39 | $worksheetNames = $objReader->listWorksheetNames($inputFileName); 40 | 41 | echo '

Worksheet Names

'; 42 | echo '
    '; 43 | foreach ($worksheetNames as $worksheetName) { 44 | echo '
  1. ', $worksheetName, '
  2. '; 45 | } 46 | echo '
'; 47 | 48 | ?> 49 | 50 | -------------------------------------------------------------------------------- /Documentation/Examples/Reading WorkBook Data/exampleWorkBookReader02.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reading WorkBook Data Example #02 14 | 15 | 16 | 17 | 18 |

PHPExcel Reading WorkBook Data Example #02

19 |

Read a list of Custom Properties for a WorkBook

20 | load($inputFileName); 36 | 37 | 38 | echo '
'; 39 | 40 | /** Read an array list of any custom properties for this document **/ 41 | $customPropertyList = $objPHPExcel->getProperties()->getCustomProperties(); 42 | 43 | echo 'Custom Property names:
'; 44 | foreach($customPropertyList as $customPropertyName) { 45 | echo $customPropertyName,'
'; 46 | } 47 | 48 | 49 | 50 | ?> 51 | 52 | 53 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader02.php: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | PHPExcel Reader Example #02 21 | 22 | 23 | 24 | 25 |

PHPExcel Reader Example #02

26 |

Simple File Reader using a Specified Reader

27 | '; 32 | $objReader = new PHPExcel_Reader_Excel5(); 33 | // $objReader = new PHPExcel_Reader_Excel2007(); 34 | // $objReader = new PHPExcel_Reader_Excel2003XML(); 35 | // $objReader = new PHPExcel_Reader_OOCalc(); 36 | // $objReader = new PHPExcel_Reader_SYLK(); 37 | // $objReader = new PHPExcel_Reader_Gnumeric(); 38 | // $objReader = new PHPExcel_Reader_CSV(); 39 | $objPHPExcel = $objReader->load($inputFileName); 40 | 41 | 42 | echo '
'; 43 | 44 | $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 45 | var_dump($sheetData); 46 | 47 | 48 | ?> 49 | 50 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader03.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #03 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #03

19 |

Simple File Reader using the PHPExcel_IOFactory to Return a Reader

20 | '; 39 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 40 | $objPHPExcel = $objReader->load($inputFileName); 41 | 42 | 43 | echo '
'; 44 | 45 | $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 46 | var_dump($sheetData); 47 | 48 | 49 | ?> 50 | 51 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader05.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #05 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #05

19 |

Simple File Reader using the "Read Data Only" Option

20 | '; 37 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 38 | echo 'Turning Formatting off for Load
'; 39 | $objReader->setReadDataOnly(true); 40 | $objPHPExcel = $objReader->load($inputFileName); 41 | 42 | 43 | echo '
'; 44 | 45 | $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 46 | var_dump($sheetData); 47 | 48 | 49 | ?> 50 | 51 | -------------------------------------------------------------------------------- /Documentation/markdown/Overview/03-Creating-a-Spreadsheet.md: -------------------------------------------------------------------------------- 1 | # PHPExcel Developer Documentation 2 | 3 | 4 | ## Creating a spreadsheet 5 | 6 | ### The PHPExcel class 7 | 8 | The PHPExcel class is the core of PHPExcel. It contains references to the contained worksheets, document security settings and document meta data. 9 | 10 | To simplify the PHPExcel concept: the PHPExcel class represents your workbook. 11 | 12 | Typically, you will create a workbook in one of two ways, either by loading it from a spreadsheet file, or creating it manually. A third option, though less commonly used, is cloning an existing workbook that has been created using one of the previous two methods. 13 | 14 | #### Loading a Workbook from a file 15 | 16 | Details of the different spreadsheet formats supported, and the options available to read them into a PHPExcel object are described fully in the PHPExcel User Documentation - Reading Spreadsheet Files document. 17 | 18 | ```php 19 | $inputFileName = './sampleData/example1.xls'; 20 | 21 | /** Load $inputFileName to a PHPExcel Object **/ 22 | $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); 23 | ``` 24 | 25 | #### Creating a new workbook 26 | 27 | If you want to create a new workbook, rather than load one from file, then you simply need to instantiate it as a new PHPExcel object. 28 | 29 | ```php 30 | /** Create a new PHPExcel Object **/ 31 | $objPHPExcel = new PHPExcel(); 32 | ``` 33 | 34 | A new workbook will always be created with a single worksheet. 35 | -------------------------------------------------------------------------------- /Classes/PHPExcel/locale/bg/config: -------------------------------------------------------------------------------- 1 | ## 2 | ## PHPExcel 3 | ## 4 | 5 | ## Copyright (c) 2006 - 2013 PHPExcel 6 | ## 7 | ## This library is free software; you can redistribute it and/or 8 | ## modify it under the terms of the GNU Lesser General Public 9 | ## License as published by the Free Software Foundation; either 10 | ## version 2.1 of the License, or (at your option) any later version. 11 | ## 12 | ## This library is distributed in the hope that it will be useful, 13 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | ## Lesser General Public License for more details. 16 | ## 17 | ## You should have received a copy of the GNU Lesser General Public 18 | ## License along with this library; if not, write to the Free Software 19 | ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | ## 21 | ## @category PHPExcel 22 | ## @package PHPExcel_Settings 23 | ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) 24 | ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL 25 | ## @version ##VERSION##, ##DATE## 26 | ## 27 | ## 28 | 29 | 30 | ArgumentSeparator = ; 31 | 32 | 33 | ## 34 | ## (For future use) 35 | ## 36 | currencySymbol = лв 37 | 38 | 39 | ## 40 | ## Excel Error Codes (For future use) 41 | 42 | ## 43 | NULL = #ПРАЗНО! 44 | DIV0 = #ДЕЛ/0! 45 | VALUE = #СТОЙНОСТ! 46 | REF = #РЕФ! 47 | NAME = #ИМЕ? 48 | NUM = #ЧИСЛО! 49 | NA = #Н/Д 50 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Writer/IWriter.php: -------------------------------------------------------------------------------- 1 | See Examples/Reader/exampleReader01.php for a working example of this code. 15 | 16 | The load() method will attempt to identify the file type, and instantiate a loader for that file type; using it to load the file and store the data and any formatting in a PHPExcel object. 17 | 18 | The method makes an initial guess at the loader to instantiate based on the file extension; but will test the file before actually executing the load: so if (for example) the file is actually a CSV file or contains HTML markup, but that has been given a .xls extension (quite a common practise), it will reject the Excel5 loader that it would normally use for a .xls file; and test the file using the other loaders until it finds the appropriate loader, and then use that to read the file. 19 | 20 | While easy to implement in your code, and you don't need to worry about the file type; this isn't the most efficient method to load a file; and it lacks the flexibility to configure the loader in any way before actually reading the file into a PHPExcel object. 21 | 22 | -------------------------------------------------------------------------------- /Classes/PHPExcel/locale/fi/config: -------------------------------------------------------------------------------- 1 | ## 2 | ## PHPExcel 3 | ## 4 | ## Copyright (c) 2006 - 2013 PHPExcel 5 | ## 6 | ## This library is free software; you can redistribute it and/or 7 | ## modify it under the terms of the GNU Lesser General Public 8 | ## License as published by the Free Software Foundation; either 9 | ## version 2.1 of the License, or (at your option) any later version. 10 | ## 11 | ## This library is distributed in the hope that it will be useful, 12 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | ## Lesser General Public License for more details. 15 | ## 16 | ## You should have received a copy of the GNU Lesser General Public 17 | ## License along with this library; if not, write to the Free Software 18 | ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | ## 20 | ## @category PHPExcel 21 | ## @package PHPExcel_Settings 22 | ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) 23 | ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL 24 | ## @version ##VERSION##, ##DATE## 25 | ## 26 | ## 27 | 28 | 29 | ArgumentSeparator = ; 30 | 31 | 32 | ## 33 | ## (For future use) 34 | ## 35 | currencySymbol = $ # Symbol not known, should it be a € (Euro)? 36 | 37 | 38 | ## 39 | ## Excel Error Codes (For future use) 40 | ## 41 | NULL = #TYHJÄ! 42 | DIV0 = #JAKO/0! 43 | VALUE = #ARVO! 44 | REF = #VIITTAUS! 45 | NAME = #NIMI? 46 | NUM = #LUKU! 47 | NA = #PUUTTUU 48 | -------------------------------------------------------------------------------- /Classes/PHPExcel/locale/es/config: -------------------------------------------------------------------------------- 1 | ## 2 | ## PHPExcel 3 | ## 4 | ## Copyright (c) 2006 - 2013 PHPExcel 5 | ## 6 | ## This library is free software; you can redistribute it and/or 7 | ## modify it under the terms of the GNU Lesser General Public 8 | ## License as published by the Free Software Foundation; either 9 | ## version 2.1 of the License, or (at your option) any later version. 10 | ## 11 | ## This library is distributed in the hope that it will be useful, 12 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | ## Lesser General Public License for more details. 15 | ## 16 | ## You should have received a copy of the GNU Lesser General Public 17 | ## License along with this library; if not, write to the Free Software 18 | ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | ## 20 | ## @category PHPExcel 21 | ## @package PHPExcel_Settings 22 | ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) 23 | ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL 24 | ## @version ##VERSION##, ##DATE## 25 | ## 26 | ## 27 | 28 | 29 | ArgumentSeparator = ; 30 | 31 | 32 | ## 33 | ## (For future use) 34 | ## 35 | currencySymbol = $ ## I'm surprised that the Excel Documentation suggests $ rather than € 36 | 37 | 38 | ## 39 | ## Excel Error Codes (For future use) 40 | ## 41 | NULL = #¡NULO! 42 | DIV0 = #¡DIV/0! 43 | VALUE = #¡VALOR! 44 | REF = #¡REF! 45 | NAME = #¿NOMBRE? 46 | NUM = #¡NÚM! 47 | NA = #N/A 48 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader19.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #19 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #19

19 |

Reading WorkSheet information without loading entire file

20 | '; 37 | 38 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 39 | $worksheetData = $objReader->listWorksheetInfo($inputFileName); 40 | 41 | echo '

Worksheet Information

'; 42 | echo '
    '; 43 | foreach ($worksheetData as $worksheet) { 44 | echo '
  1. ', $worksheet['worksheetName'], '
    '; 45 | echo 'Rows: ', $worksheet['totalRows'], ' Columns: ', $worksheet['totalColumns'], '
    '; 46 | echo 'Cell Range: A1:', $worksheet['lastColumnLetter'], $worksheet['totalRows']; 47 | echo '
  2. '; 48 | } 49 | echo '
'; 50 | 51 | ?> 52 | 53 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader17.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #17 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #17

19 |

Simple File Reader Loading Several Named WorkSheets

20 | '; 37 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 38 | 39 | 40 | /** Read the list of Worksheet Names from the Workbook file **/ 41 | echo 'Read the list of Worksheets in the WorkBook
'; 42 | $worksheetNames = $objReader->listWorksheetNames($inputFileName); 43 | 44 | echo 'There are ',count($worksheetNames),' worksheet',((count($worksheetNames) == 1) ? '' : 's'),' in the workbook

'; 45 | foreach($worksheetNames as $worksheetName) { 46 | echo $worksheetName,'
'; 47 | } 48 | 49 | 50 | ?> 51 | 52 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Reader/IReadFilter.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #06 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #06

19 |

Simple File Reader Loading All WorkSheets

20 | '; 37 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 38 | echo 'Loading all WorkSheets
'; 39 | $objReader->setLoadAllSheets(); 40 | $objPHPExcel = $objReader->load($inputFileName); 41 | 42 | 43 | echo '
'; 44 | 45 | echo $objPHPExcel->getSheetCount(),' worksheet',(($objPHPExcel->getSheetCount() == 1) ? '' : 's'),' loaded

'; 46 | $loadedSheetNames = $objPHPExcel->getSheetNames(); 47 | foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) { 48 | echo $sheetIndex,' -> ',$loadedSheetName,'
'; 49 | } 50 | 51 | 52 | ?> 53 | 54 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Calculation/ExceptionHandler.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #07 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #07

19 |

Simple File Reader Loading a Single Named WorkSheet

20 | '; 38 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 39 | echo 'Loading Sheet "',$sheetname,'" only
'; 40 | $objReader->setLoadSheetsOnly($sheetname); 41 | $objPHPExcel = $objReader->load($inputFileName); 42 | 43 | 44 | echo '
'; 45 | 46 | echo $objPHPExcel->getSheetCount(),' worksheet',(($objPHPExcel->getSheetCount() == 1) ? '' : 's'),' loaded

'; 47 | $loadedSheetNames = $objPHPExcel->getSheetNames(); 48 | foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) { 49 | echo $sheetIndex,' -> ',$loadedSheetName,'
'; 50 | } 51 | 52 | 53 | ?> 54 | 55 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Chart/Exception.php: -------------------------------------------------------------------------------- 1 | line = $line; 43 | $e->file = $file; 44 | throw $e; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Reader/Exception.php: -------------------------------------------------------------------------------- 1 | line = $line; 43 | $e->file = $file; 44 | throw $e; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Writer/Exception.php: -------------------------------------------------------------------------------- 1 | line = $line; 43 | $e->file = $file; 44 | throw $e; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Cell/IValueBinder.php: -------------------------------------------------------------------------------- 1 | line = $line; 43 | $e->file = $file; 44 | throw $e; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Reader/Excel5/Style/FillPattern.php: -------------------------------------------------------------------------------- 1 | PHPExcel_Style_Fill::FILL_NONE, 7 | 0x01 => PHPExcel_Style_Fill::FILL_SOLID, 8 | 0x02 => PHPExcel_Style_Fill::FILL_PATTERN_MEDIUMGRAY, 9 | 0x03 => PHPExcel_Style_Fill::FILL_PATTERN_DARKGRAY, 10 | 0x04 => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRAY, 11 | 0x05 => PHPExcel_Style_Fill::FILL_PATTERN_DARKHORIZONTAL, 12 | 0x06 => PHPExcel_Style_Fill::FILL_PATTERN_DARKVERTICAL, 13 | 0x07 => PHPExcel_Style_Fill::FILL_PATTERN_DARKDOWN, 14 | 0x08 => PHPExcel_Style_Fill::FILL_PATTERN_DARKUP, 15 | 0x09 => PHPExcel_Style_Fill::FILL_PATTERN_DARKGRID, 16 | 0x0A => PHPExcel_Style_Fill::FILL_PATTERN_DARKTRELLIS, 17 | 0x0B => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTHORIZONTAL, 18 | 0x0C => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTVERTICAL, 19 | 0x0D => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTDOWN, 20 | 0x0E => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTUP, 21 | 0x0F => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRID, 22 | 0x10 => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTTRELLIS, 23 | 0x11 => PHPExcel_Style_Fill::FILL_PATTERN_GRAY125, 24 | 0x12 => PHPExcel_Style_Fill::FILL_PATTERN_GRAY0625, 25 | ); 26 | 27 | /** 28 | * Get fill pattern from index 29 | * OpenOffice documentation: 2.5.12 30 | * 31 | * @param int $index 32 | * @return string 33 | */ 34 | public static function lookup($index) 35 | { 36 | if (isset(self::$map[$index])) { 37 | return self::$map[$index]; 38 | } 39 | return PHPExcel_Style_Fill::FILL_NONE; 40 | } 41 | } -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader08.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #08 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #08

19 |

Simple File Reader Loading Several Named WorkSheets

20 | '; 38 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 39 | echo 'Loading Sheet',((count($sheetnames) == 1) ? '' : 's'),' "',implode('" and "',$sheetnames),'" only
'; 40 | $objReader->setLoadSheetsOnly($sheetnames); 41 | $objPHPExcel = $objReader->load($inputFileName); 42 | 43 | 44 | echo '
'; 45 | 46 | echo $objPHPExcel->getSheetCount(),' worksheet',(($objPHPExcel->getSheetCount() == 1) ? '' : 's'),' loaded

'; 47 | $loadedSheetNames = $objPHPExcel->getSheetNames(); 48 | foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) { 49 | echo $sheetIndex,' -> ',$loadedSheetName,'
'; 50 | } 51 | 52 | 53 | ?> 54 | 55 | -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Classes/PHPExcel_Reader_Excel5.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ClassDiagrams 6 | { 7 | public class PHPExcel_Reader_Excel5 : PHPExcel_Reader_IReader 8 | { 9 | #region PHPExcel_Writer_IReader Members 10 | 11 | public PHPExcel reads 12 | { 13 | get 14 | { 15 | throw new Exception("The method or operation is not implemented."); 16 | } 17 | set 18 | { 19 | throw new Exception("The method or operation is not implemented."); 20 | } 21 | } 22 | 23 | #endregion 24 | } 25 | 26 | public class PHPExcel_Reader_Excel2003XML : PHPExcel_Reader_IReader 27 | { 28 | #region PHPExcel_Writer_IReader Members 29 | 30 | public PHPExcel reads 31 | { 32 | get 33 | { 34 | throw new Exception("The method or operation is not implemented."); 35 | } 36 | set 37 | { 38 | throw new Exception("The method or operation is not implemented."); 39 | } 40 | } 41 | 42 | #endregion 43 | } 44 | 45 | public class PHPExcel_Reader_SYLK : PHPExcel_Reader_IReader 46 | { 47 | #region PHPExcel_Writer_IReader Members 48 | 49 | public PHPExcel reads 50 | { 51 | get 52 | { 53 | throw new Exception("The method or operation is not implemented."); 54 | } 55 | set 56 | { 57 | throw new Exception("The method or operation is not implemented."); 58 | } 59 | } 60 | 61 | #endregion 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Classes/PHPExcel/RichText/ITextElement.php: -------------------------------------------------------------------------------- 1 | listWorksheetNames($inputFileName); 16 | 17 | echo '

Worksheet Names

'; 18 | echo '
    '; 19 | foreach ($worksheetNames as $worksheetName) { 20 | echo '
  1. ', $worksheetName, '
  2. '; 21 | } 22 | echo '
'; 23 | ``` 24 | > See Examples/Reader/exampleReader18.php for a working example of this code. 25 | 26 | ### listWorksheetInfo 27 | 28 | The `listWorksheetInfo()` method returns a nested array, with each entry listing the name and dimensions for a worksheet: 29 | 30 | ```php 31 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 32 | 33 | $worksheetData = $objReader->listWorksheetInfo($inputFileName); 34 | 35 | echo '

Worksheet Information

'; 36 | echo '
    '; 37 | foreach ($worksheetData as $worksheet) { 38 | echo '
  1. ', $worksheet['worksheetName'], '
    '; 39 | echo 'Rows: ', $worksheet['totalRows'], 40 | ' Columns: ', $worksheet['totalColumns'], '
    '; 41 | echo 'Cell Range: A1:', 42 | $worksheet['lastColumnLetter'], $worksheet['totalRows']; 43 | echo '
  2. '; 44 | } 45 | echo '
'; 46 | ``` 47 | > See Examples/Reader/exampleReader19.php for a working example of this code. 48 | -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/04-02-Autofilter-Expressions-Dategroup.md: -------------------------------------------------------------------------------- 1 | # PHPExcel AutoFilter Reference 2 | 3 | 4 | ## Autofilter Expressions 5 | 6 | ### DateGroup Filters 7 | 8 | In MS Excel, DateGroup filters provide a series of dropdown filter selectors for date values, so you can specify entire years, or months within a year, or individual days within each month. 9 | 10 | ![04-02-dategroup-autofilter.png](./images/04-02-dategroup-autofilter.png "") 11 | 12 | DateGroup filters are still applied as a Standard Filter type. 13 | 14 | ```php 15 | $columnFilter->setFilterType( 16 | PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER 17 | ); 18 | ``` 19 | 20 | Creating a dateGroup filter in PHPExcel, you specify the values for "checked" columns as an associative array of year. month, day, hour minute and second. To select a year and month, you need to create a DateGroup rule identifying the selected year and month: 21 | 22 | ```php 23 | $columnFilter->createRule() 24 | ->setRule( 25 | PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, 26 | array( 27 | 'year' => 2012, 28 | 'month' => 1 29 | ) 30 | ) 31 | ->setRuleType( 32 | PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP 33 | ); 34 | ``` 35 | 36 | The key values for the associative array are: 37 | 38 | - year 39 | - month 40 | - day 41 | - hour 42 | - minute 43 | - second 44 | 45 | Like Standard filters, DateGroup filters are always a match of EQUALS, and multiple standard filters are always treated as being joined by an OR condition. 46 | 47 | Note that we alse specify a ruleType: to differentiate this from a standard filter, we explicitly set the Rule's Type to AUTOFILTER_RULETYPE_DATEGROUP. As with standard filters, we can create any number of DateGroup Filters. 48 | 49 | -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/05-Executing-Autofilters.md: -------------------------------------------------------------------------------- 1 | # PHPExcel AutoFilter Reference 2 | 3 | 4 | ## Executing an AutoFilter 5 | 6 | When an autofilter is applied in MS Excel, it sets the row hidden/visible flags for each row of the autofilter area based on the selected criteria, so that only those rows that match the filter criteria are displayed. 7 | 8 | PHPExcel will not execute the equivalent function automatically when you set or change a filter expression, but only when the file is saved. 9 | 10 | ### Applying the Filter 11 | 12 | If you wish to execute your filter from within a script, you need to do this manually. You can do this using the autofilters showHideRows() method. 13 | 14 | ```php 15 | $autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter(); 16 | $autoFilter->showHideRows(); 17 | ``` 18 | 19 | This will set all rows that match the filter criteria to visible, while hiding all other rows within the autofilter area. 20 | 21 | ### Displaying Filtered Rows 22 | 23 | Simply looping through the rows in an autofilter area will still access ever row, whether it matches the filter criteria or not. To selectively access only the filtered rows, you need to test each row’s visibility settings. 24 | 25 | ```php 26 | foreach ($objPHPExcel->getActiveSheet()->getRowIterator() as $row) { 27 | if ($objPHPExcel->getActiveSheet() 28 | ->getRowDimension($row->getRowIndex())->getVisible()) { 29 | echo ' Row number - ' , $row->getRowIndex() , ' '; 30 | echo $objPHPExcel->getActiveSheet() 31 | ->getCell( 32 | 'C'.$row->getRowIndex() 33 | ) 34 | ->getValue(), ' '; 35 | echo $objPHPExcel->getActiveSheet() 36 | ->getCell( 37 | 'D'.$row->getRowIndex() 38 | )->getFormattedValue(), ' '; 39 | echo EOL; 40 | } 41 | } 42 | ``` 43 | -------------------------------------------------------------------------------- /Documentation/Examples/Reading WorkBook Data/exampleWorkBookReader04.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reading WorkBook Data Example #04 14 | 15 | 16 | 17 | 18 |

PHPExcel Reading WorkBook Data Example #04

19 |

Get a List of the Worksheets in a WorkBook

20 | load($inputFileName); 36 | 37 | 38 | echo '
'; 39 | 40 | echo 'Reading the number of Worksheets in the WorkBook
'; 41 | /** Use the PHPExcel object's getSheetCount() method to get a count of the number of WorkSheets in the WorkBook */ 42 | $sheetCount = $objPHPExcel->getSheetCount(); 43 | echo 'There ',(($sheetCount == 1) ? 'is' : 'are'),' ',$sheetCount,' WorkSheet',(($sheetCount == 1) ? '' : 's'),' in the WorkBook

'; 44 | 45 | echo 'Reading the names of Worksheets in the WorkBook
'; 46 | /** Use the PHPExcel object's getSheetNames() method to get an array listing the names/titles of the WorkSheets in the WorkBook */ 47 | $sheetNames = $objPHPExcel->getSheetNames(); 48 | foreach($sheetNames as $sheetIndex => $sheetName) { 49 | echo 'WorkSheet #',$sheetIndex,' is named "',$sheetName,'"
'; 50 | } 51 | 52 | 53 | ?> 54 | 55 | 56 | -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/01-Autofilters.md: -------------------------------------------------------------------------------- 1 | # PHPExcel AutoFilter Reference 2 | 3 | 4 | ## AutoFilters 5 | 6 | Each worksheet in an Excel Workbook can contain a single autoFilter range. Filtered data displays only the rows that meet criteria that you specify and hides rows that you do not want displayed. You can filter by more than one column: filters are additive, which means that each additional filter is based on the current filter and further reduces the subset of data. 7 | 8 | ![01-01-autofilter.png](./images/01-01-autofilter.png "") 9 | 10 | When an AutoFilter is applied to a range of cells, the first row in an autofilter range will be the heading row, which displays the autoFilter dropdown icons. It is not part of the actual autoFiltered data. All subsequent rows are the autoFiltered data. So an AutoFilter range should always contain the heading row and one or more data rows (one data row is pretty meaningless), but PHPExcel won't actually stop you specifying a meaningless range: it's up to you as the developer to avoid such errors. 11 | 12 | To determine if a filter is applied, note the icon in the column heading. A drop-down arrow (![01-03-filter-icon-1.png](./images/01-03-filter-icon-1.png "")) means that filtering is enabled but not applied. In MS Excel, when you hover over the heading of a column with filtering enabled but not applied, a screen tip displays the cell text for the first row in that column, and the message "(Showing All)". 13 | 14 | ![01-02-autofilter.png](./images/01-02-autofilter.png "") 15 | 16 | 17 | A Filter button (![01-03-filter-icon-2.png](./images/01-03-filter-icon-2.png "")) means that a filter is applied. When you hover over the heading of a filtered column, a screen tip displays the filter that has been applied to that column, such as "Equals a red cell color" or "Larger than 150". 18 | 19 | ![01-04-autofilter.png](./images/01-04-autofilter.png "") 20 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Exception.php: -------------------------------------------------------------------------------- 1 | line = $line; 51 | $e->file = $file; 52 | throw $e; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Examples/40duplicateStyle.php: -------------------------------------------------------------------------------- 1 | '); 9 | 10 | date_default_timezone_set('Europe/London'); 11 | 12 | /** Include PHPExcel */ 13 | require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; 14 | 15 | echo date('H:i:s') , " Create new PHPExcel object" , EOL; 16 | $objPHPExcel = new PHPExcel(); 17 | $worksheet = $objPHPExcel->getActiveSheet(); 18 | 19 | echo date('H:i:s') , " Create styles array" , EOL; 20 | $styles = array(); 21 | for ($i = 0; $i < 10; $i++) { 22 | $style = new PHPExcel_Style(); 23 | $style->getFont()->setSize($i + 4); 24 | $styles[] = $style; 25 | } 26 | 27 | echo date('H:i:s') , " Add data (begin)" , EOL; 28 | $t = microtime(true); 29 | for ($col = 0; $col < 50; $col++) { 30 | for ($row = 0; $row < 100; $row++) { 31 | $str = ($row + $col); 32 | $style = $styles[$row % 10]; 33 | $coord = PHPExcel_Cell::stringFromColumnIndex($col) . ($row + 1); 34 | $worksheet->setCellValue($coord, $str); 35 | $worksheet->duplicateStyle($style, $coord); 36 | } 37 | } 38 | $d = microtime(true) - $t; 39 | echo date('H:i:s') , " Add data (end), time: " . round($d, 2) . " s", EOL; 40 | 41 | 42 | echo date('H:i:s') , " Write to Excel2007 format" , EOL; 43 | $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 44 | $objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 45 | echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; 46 | 47 | 48 | echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; 49 | 50 | echo date('H:i:s') , " Done writing file" , EOL; 51 | echo 'File has been created in ' , getcwd() , EOL; 52 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Reader/DefaultReadFilter.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #09 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #09

19 |

Simple File Reader Using a Read Filter

20 | = 1 && $row <= 7) { 43 | if (in_array($column,range('A','E'))) { 44 | return true; 45 | } 46 | } 47 | return false; 48 | } 49 | } 50 | 51 | $filterSubset = new MyReadFilter(); 52 | 53 | 54 | echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
'; 55 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 56 | echo 'Loading Sheet "',$sheetname,'" only
'; 57 | $objReader->setLoadSheetsOnly($sheetname); 58 | echo 'Loading Sheet using filter
'; 59 | $objReader->setReadFilter($filterSubset); 60 | $objPHPExcel = $objReader->load($inputFileName); 61 | 62 | 63 | echo '
'; 64 | 65 | $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 66 | var_dump($sheetData); 67 | 68 | 69 | ?> 70 | 71 | -------------------------------------------------------------------------------- /Documentation/Examples/Calculations/DateTime/TIMEVALUE.php: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | PHPExcel Calculation Examples 15 | 16 | 17 | 18 | 19 |

TIMEVALUE

20 |

Converts a time in the form of text to a serial number.

21 | getActiveSheet(); 33 | 34 | // Add some data 35 | $testDates = array( '3:15', '13:15', '15:15:15', '3:15 AM', '3:15 PM', '5PM', '9:15AM', '13:15AM' 36 | ); 37 | $testDateCount = count($testDates); 38 | 39 | for($row = 1; $row <= $testDateCount; ++$row) { 40 | $worksheet->setCellValue('A'.$row, $testDates[$row-1]); 41 | $worksheet->setCellValue('B'.$row, '=TIMEVALUE(A'.$row.')'); 42 | $worksheet->setCellValue('C'.$row, '=B'.$row); 43 | } 44 | 45 | $worksheet->getStyle('C1:C'.$testDateCount) 46 | ->getNumberFormat() 47 | ->setFormatCode('hh:mm:ss'); 48 | 49 | 50 | echo '
'; 51 | 52 | 53 | // Test the formulae 54 | ?> 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | '; 65 | echo ''; 66 | echo ''; 67 | echo ''; 68 | echo ''; 69 | echo ''; 70 | } 71 | ?> 72 |
Time StringFormulaExcel TimeStampFormatted TimeStamp
' , $worksheet->getCell('A'.$row)->getFormattedValue() , '' , $worksheet->getCell('B'.$row)->getValue() , '' , $worksheet->getCell('B'.$row)->getFormattedValue() , '' , $worksheet->getCell('C'.$row)->getFormattedValue() , '
-------------------------------------------------------------------------------- /Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php: -------------------------------------------------------------------------------- 1 | BSECollection[] = $BSE; 45 | $BSE->setParent($this); 46 | } 47 | 48 | /** 49 | * Get the collection of BLIP Store Entries 50 | * 51 | * @return PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE[] 52 | */ 53 | public function getBSECollection() 54 | { 55 | return $this->BSECollection; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Examples/SylkReader.php: -------------------------------------------------------------------------------- 1 | save(str_replace('.php', '.xlsx', __FILE__)); 43 | echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; 44 | 45 | 46 | // Echo memory peak usage 47 | echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; 48 | 49 | // Echo done 50 | echo date('H:i:s') , " Done writing file" , PHP_EOL; 51 | -------------------------------------------------------------------------------- /Examples/44worksheetInfo.php: -------------------------------------------------------------------------------- 1 | '); 33 | 34 | date_default_timezone_set('Europe/London'); 35 | 36 | /** Include PHPExcel_IOFactory */ 37 | require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; 38 | 39 | 40 | if (!file_exists("05featuredemo.xlsx")) { 41 | exit("Please run 05featuredemo.php first." . EOL); 42 | } 43 | 44 | $inputFileName = "05featuredemo.xlsx"; 45 | $inputFileType = PHPExcel_IOFactory::identify($inputFileName); 46 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 47 | $sheetList = $objReader->listWorksheetNames($inputFileName); 48 | $sheetInfo = $objReader->listWorksheetInfo($inputFileName); 49 | 50 | echo 'File Type:', PHP_EOL; 51 | var_dump($inputFileType); 52 | 53 | echo 'Worksheet Names:', PHP_EOL; 54 | var_dump($sheetList); 55 | 56 | echo 'Worksheet Names:', PHP_EOL; 57 | var_dump($sheetInfo); 58 | 59 | -------------------------------------------------------------------------------- /Documentation/markdown/Features/Autofilters/04-01-Autofilter-Expressions-Simple.md: -------------------------------------------------------------------------------- 1 | # PHPExcel AutoFilter Reference 2 | 3 | 4 | ## Autofilter Expressions 5 | 6 | ### Simple filters 7 | 8 | In MS Excel, Simple Filters are a dropdown list of all values used in that column, and the user can select which ones they want to display and which ones they want to hide by ticking and unticking the checkboxes alongside each option. When the filter is applied, rows containing the checked entries will be displayed, rows that don't contain those values will be hidden. 9 | 10 | ![04-01-simple-autofilter.png](./images/04-01-simple-autofilter.png "") 11 | 12 | To create a filter expression, we need to start by identifying the filter type. In this case, we're just going to specify that this filter is a standard filter. 13 | 14 | ```php 15 | $columnFilter->setFilterType( 16 | PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER 17 | ); 18 | ``` 19 | 20 | Now we've identified the filter type, we can create a filter rule and set the filter values: 21 | 22 | When creating a simple filter in PHPExcel, you only need to specify the values for "checked" columns: you do this by creating a filter rule for each value. 23 | 24 | ```php 25 | $columnFilter->createRule() 26 | ->setRule( 27 | PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, 28 | 'France' 29 | ); 30 | 31 | $columnFilter->createRule() 32 | ->setRule( 33 | PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, 34 | 'Germany' 35 | ); 36 | ``` 37 | 38 | This creates two filter rules: the column will be filtered by values that match “France” OR “Germany”. For Simple Filters, you can create as many rules as you want 39 | 40 | Simple filters are always a comparison match of EQUALS, and multiple standard filters are always treated as being joined by an OR condition. 41 | 42 | #### Matching Blanks 43 | 44 | If you want to create a filter to select blank cells, you would use: 45 | 46 | ```php 47 | $columnFilter->createRule() 48 | ->setRule( 49 | PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, 50 | '' 51 | ); 52 | ``` 53 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Reader/Excel5/Color/BIFF5.php: -------------------------------------------------------------------------------- 1 | '000000', 7 | 0x09 => 'FFFFFF', 8 | 0x0A => 'FF0000', 9 | 0x0B => '00FF00', 10 | 0x0C => '0000FF', 11 | 0x0D => 'FFFF00', 12 | 0x0E => 'FF00FF', 13 | 0x0F => '00FFFF', 14 | 0x10 => '800000', 15 | 0x11 => '008000', 16 | 0x12 => '000080', 17 | 0x13 => '808000', 18 | 0x14 => '800080', 19 | 0x15 => '008080', 20 | 0x16 => 'C0C0C0', 21 | 0x17 => '808080', 22 | 0x18 => '8080FF', 23 | 0x19 => '802060', 24 | 0x1A => 'FFFFC0', 25 | 0x1B => 'A0E0F0', 26 | 0x1C => '600080', 27 | 0x1D => 'FF8080', 28 | 0x1E => '0080C0', 29 | 0x1F => 'C0C0FF', 30 | 0x20 => '000080', 31 | 0x21 => 'FF00FF', 32 | 0x22 => 'FFFF00', 33 | 0x23 => '00FFFF', 34 | 0x24 => '800080', 35 | 0x25 => '800000', 36 | 0x26 => '008080', 37 | 0x27 => '0000FF', 38 | 0x28 => '00CFFF', 39 | 0x29 => '69FFFF', 40 | 0x2A => 'E0FFE0', 41 | 0x2B => 'FFFF80', 42 | 0x2C => 'A6CAF0', 43 | 0x2D => 'DD9CB3', 44 | 0x2E => 'B38FEE', 45 | 0x2F => 'E3E3E3', 46 | 0x30 => '2A6FF9', 47 | 0x31 => '3FB8CD', 48 | 0x32 => '488436', 49 | 0x33 => '958C41', 50 | 0x34 => '8E5E42', 51 | 0x35 => 'A0627A', 52 | 0x36 => '624FAC', 53 | 0x37 => '969696', 54 | 0x38 => '1D2FBE', 55 | 0x39 => '286676', 56 | 0x3A => '004500', 57 | 0x3B => '453E01', 58 | 0x3C => '6A2813', 59 | 0x3D => '85396A', 60 | 0x3E => '4A3285', 61 | 0x3F => '424242', 62 | ); 63 | 64 | /** 65 | * Map color array from BIFF5 built-in color index 66 | * 67 | * @param int $color 68 | * @return array 69 | */ 70 | public static function lookup($color) 71 | { 72 | if (isset(self::$map[$color])) { 73 | return array('rgb' => self::$map[$color]); 74 | } 75 | return array('rgb' => '000000'); 76 | } 77 | } -------------------------------------------------------------------------------- /Classes/PHPExcel/Reader/Excel5/Color/BIFF8.php: -------------------------------------------------------------------------------- 1 | '000000', 7 | 0x09 => 'FFFFFF', 8 | 0x0A => 'FF0000', 9 | 0x0B => '00FF00', 10 | 0x0C => '0000FF', 11 | 0x0D => 'FFFF00', 12 | 0x0E => 'FF00FF', 13 | 0x0F => '00FFFF', 14 | 0x10 => '800000', 15 | 0x11 => '008000', 16 | 0x12 => '000080', 17 | 0x13 => '808000', 18 | 0x14 => '800080', 19 | 0x15 => '008080', 20 | 0x16 => 'C0C0C0', 21 | 0x17 => '808080', 22 | 0x18 => '9999FF', 23 | 0x19 => '993366', 24 | 0x1A => 'FFFFCC', 25 | 0x1B => 'CCFFFF', 26 | 0x1C => '660066', 27 | 0x1D => 'FF8080', 28 | 0x1E => '0066CC', 29 | 0x1F => 'CCCCFF', 30 | 0x20 => '000080', 31 | 0x21 => 'FF00FF', 32 | 0x22 => 'FFFF00', 33 | 0x23 => '00FFFF', 34 | 0x24 => '800080', 35 | 0x25 => '800000', 36 | 0x26 => '008080', 37 | 0x27 => '0000FF', 38 | 0x28 => '00CCFF', 39 | 0x29 => 'CCFFFF', 40 | 0x2A => 'CCFFCC', 41 | 0x2B => 'FFFF99', 42 | 0x2C => '99CCFF', 43 | 0x2D => 'FF99CC', 44 | 0x2E => 'CC99FF', 45 | 0x2F => 'FFCC99', 46 | 0x30 => '3366FF', 47 | 0x31 => '33CCCC', 48 | 0x32 => '99CC00', 49 | 0x33 => 'FFCC00', 50 | 0x34 => 'FF9900', 51 | 0x35 => 'FF6600', 52 | 0x36 => '666699', 53 | 0x37 => '969696', 54 | 0x38 => '003366', 55 | 0x39 => '339966', 56 | 0x3A => '003300', 57 | 0x3B => '333300', 58 | 0x3C => '993300', 59 | 0x3D => '993366', 60 | 0x3E => '333399', 61 | 0x3F => '333333', 62 | ); 63 | 64 | /** 65 | * Map color array from BIFF8 built-in color index 66 | * 67 | * @param int $color 68 | * @return array 69 | */ 70 | public static function lookup($color) 71 | { 72 | if (isset(self::$map[$color])) { 73 | return array('rgb' => self::$map[$color]); 74 | } 75 | return array('rgb' => '000000'); 76 | } 77 | } -------------------------------------------------------------------------------- /Classes/PHPExcel/Shared/Escher/DgContainer.php: -------------------------------------------------------------------------------- 1 | dgId; 49 | } 50 | 51 | public function setDgId($value) 52 | { 53 | $this->dgId = $value; 54 | } 55 | 56 | public function getLastSpId() 57 | { 58 | return $this->lastSpId; 59 | } 60 | 61 | public function setLastSpId($value) 62 | { 63 | $this->lastSpId = $value; 64 | } 65 | 66 | public function getSpgrContainer() 67 | { 68 | return $this->spgrContainer; 69 | } 70 | 71 | public function setSpgrContainer($spgrContainer) 72 | { 73 | return $this->spgrContainer = $spgrContainer; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader13.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #13 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #13

19 |

Simple File Reader for Multiple CSV Files

20 | '; 35 | $objPHPExcel = $objReader->load($inputFileName); 36 | $objPHPExcel->getActiveSheet()->setTitle(pathinfo($inputFileName,PATHINFO_BASENAME)); 37 | foreach($inputFileNames as $sheet => $inputFileName) { 38 | echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' into WorkSheet #',($sheet+2),' using IOFactory with a defined reader type of ',$inputFileType,'
'; 39 | $objReader->setSheetIndex($sheet+1); 40 | $objReader->loadIntoExisting($inputFileName,$objPHPExcel); 41 | $objPHPExcel->getActiveSheet()->setTitle(pathinfo($inputFileName,PATHINFO_BASENAME)); 42 | } 43 | 44 | 45 | echo '
'; 46 | 47 | echo $objPHPExcel->getSheetCount(),' worksheet',(($objPHPExcel->getSheetCount() == 1) ? '' : 's'),' loaded

'; 48 | $loadedSheetNames = $objPHPExcel->getSheetNames(); 49 | foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) { 50 | echo 'Worksheet #',$sheetIndex,' -> ',$loadedSheetName,'
'; 51 | $objPHPExcel->setActiveSheetIndexByName($loadedSheetName); 52 | $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 53 | var_dump($sheetData); 54 | echo '

'; 55 | } 56 | 57 | 58 | ?> 59 | 60 | -------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Architecture.cd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Classes\PHPExcel.cs 8 | AAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAA= 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | Classes\Worksheet.cs 18 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= 19 | 20 | 21 | 22 | 23 | 24 | Classes\IReader.cs 25 | AAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA= 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | Classes\IWriter.cs 40 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA= 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /Documentation/Examples/Calculations/DateTime/DATEVALUE.php: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | PHPExcel Calculation Examples 15 | 16 | 17 | 18 | 19 |

DATEVALUE

20 |

Converts a date in the form of text to a serial number.

21 | getActiveSheet(); 33 | 34 | // Add some data 35 | $testDates = array( '26 March 2012', '29 Feb 2012', 'April 1, 2012', '25/12/2012', 36 | '2012-Oct-31', '5th November', 'January 1st', 'April 2012', 37 | '17-03', '03-2012', '29 Feb 2011', '03-05-07', 38 | '03-MAY-07', '03-13-07', 39 | ); 40 | $testDateCount = count($testDates); 41 | 42 | for($row = 1; $row <= $testDateCount; ++$row) { 43 | $worksheet->setCellValue('A'.$row, $testDates[$row-1]); 44 | $worksheet->setCellValue('B'.$row, '=DATEVALUE(A'.$row.')'); 45 | $worksheet->setCellValue('C'.$row, '=B'.$row); 46 | } 47 | 48 | $worksheet->getStyle('C1:C'.$testDateCount) 49 | ->getNumberFormat() 50 | ->setFormatCode('yyyy-mmm-dd'); 51 | 52 | 53 | echo '
'; 54 | 55 | 56 | // Test the formulae 57 | ?> 58 |

Warning: The PHPExcel DATEVALUE() function accepts a wider range of date formats than MS Excel's DATEFORMAT() function.

59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | '; 69 | echo ''; 70 | echo ''; 71 | echo ''; 72 | echo ''; 73 | echo ''; 74 | } 75 | ?> 76 |
Date StringFormulaExcel DateStampFormatted DateStamp
' , $worksheet->getCell('A'.$row)->getFormattedValue() , '' , $worksheet->getCell('B'.$row)->getValue() , '' , $worksheet->getCell('B'.$row)->getFormattedValue() , '' , $worksheet->getCell('C'.$row)->getFormattedValue() , '
-------------------------------------------------------------------------------- /Documentation/assets/ClassDiagrams/Classes/PHPExcel_Writer_Serialized.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ClassDiagrams 6 | { 7 | public class PHPExcel_Writer_Serialized : PHPExcel_Writer_IWriter 8 | { 9 | #region IWriter Members 10 | 11 | public PHPExcel writes 12 | { 13 | get 14 | { 15 | throw new Exception("The method or operation is not implemented."); 16 | } 17 | set 18 | { 19 | throw new Exception("The method or operation is not implemented."); 20 | } 21 | } 22 | 23 | #endregion 24 | } 25 | 26 | public class PHPExcel_Writer_CSV : PHPExcel_Writer_IWriter 27 | { 28 | #region IWriter Members 29 | 30 | public PHPExcel writes 31 | { 32 | get 33 | { 34 | throw new Exception("The method or operation is not implemented."); 35 | } 36 | set 37 | { 38 | throw new Exception("The method or operation is not implemented."); 39 | } 40 | } 41 | 42 | #endregion 43 | } 44 | 45 | public class PHPExcel_Writer_Excel5 : PHPExcel_Writer_IWriter 46 | { 47 | #region IWriter Members 48 | 49 | public PHPExcel writes 50 | { 51 | get 52 | { 53 | throw new Exception("The method or operation is not implemented."); 54 | } 55 | set 56 | { 57 | throw new Exception("The method or operation is not implemented."); 58 | } 59 | } 60 | 61 | #endregion 62 | } 63 | 64 | public class PHPExcel_Writer_HTML : PHPExcel_Writer_IWriter 65 | { 66 | #region IWriter Members 67 | 68 | public PHPExcel writes 69 | { 70 | get 71 | { 72 | throw new Exception("The method or operation is not implemented."); 73 | } 74 | set 75 | { 76 | throw new Exception("The method or operation is not implemented."); 77 | } 78 | } 79 | 80 | #endregion 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /Documentation/Examples/Reader/exampleReader10.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reader Example #10 14 | 15 | 16 | 17 | 18 |

PHPExcel Reader Example #10

19 |

Simple File Reader Using a Configurable Read Filter

20 | _startRow = $startRow; 48 | $this->_endRow = $endRow; 49 | $this->_columns = $columns; 50 | } 51 | 52 | public function readCell($column, $row, $worksheetName = '') { 53 | if ($row >= $this->_startRow && $row <= $this->_endRow) { 54 | if (in_array($column,$this->_columns)) { 55 | return true; 56 | } 57 | } 58 | return false; 59 | } 60 | } 61 | 62 | $filterSubset = new MyReadFilter(9,15,range('G','K')); 63 | 64 | 65 | echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
'; 66 | $objReader = PHPExcel_IOFactory::createReader($inputFileType); 67 | echo 'Loading Sheet "',$sheetname,'" only
'; 68 | $objReader->setLoadSheetsOnly($sheetname); 69 | echo 'Loading Sheet using configurable filter
'; 70 | $objReader->setReadFilter($filterSubset); 71 | $objPHPExcel = $objReader->load($inputFileName); 72 | 73 | 74 | echo '
'; 75 | 76 | $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 77 | var_dump($sheetData); 78 | 79 | 80 | ?> 81 | 82 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Chart/Title.php: -------------------------------------------------------------------------------- 1 | caption = $caption; 51 | $this->layout = $layout; 52 | } 53 | 54 | /** 55 | * Get caption 56 | * 57 | * @return string 58 | */ 59 | public function getCaption() 60 | { 61 | return $this->caption; 62 | } 63 | 64 | /** 65 | * Set caption 66 | * 67 | * @param string $caption 68 | * @return PHPExcel_Chart_Title 69 | */ 70 | public function setCaption($caption = null) 71 | { 72 | $this->caption = $caption; 73 | 74 | return $this; 75 | } 76 | 77 | /** 78 | * Get Layout 79 | * 80 | * @return PHPExcel_Chart_Layout 81 | */ 82 | public function getLayout() 83 | { 84 | return $this->layout; 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /Documentation/Examples/Calculations/DateTime/TIME.php: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | PHPExcel Calculation Examples 15 | 16 | 17 | 18 | 19 |

TIME

20 |

Returns the serial number of a particular time.

21 | getActiveSheet(); 33 | 34 | // Add some data 35 | $testDates = array( array(3,15), array(13,15), array(15,15,15), array(3,15,30), 36 | array(15,15,15), array(5), array(9,15,0), array(9,15,-1), 37 | array(13,-14,-15), array(0,0,-1) 38 | ); 39 | $testDateCount = count($testDates); 40 | 41 | $worksheet->fromArray($testDates,NULL,'A1',true); 42 | 43 | for ($row = 1; $row <= $testDateCount; ++$row) { 44 | $worksheet->setCellValue('D'.$row, '=TIME(A'.$row.',B'.$row.',C'.$row.')'); 45 | $worksheet->setCellValue('E'.$row, '=D'.$row); 46 | } 47 | $worksheet->getStyle('E1:E'.$testDateCount) 48 | ->getNumberFormat() 49 | ->setFormatCode('hh:mm:ss'); 50 | 51 | 52 | echo '
'; 53 | 54 | 55 | // Test the formulae 56 | ?> 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | '; 72 | echo ''; 73 | echo ''; 74 | echo ''; 75 | echo ''; 76 | echo ''; 77 | echo ''; 78 | echo ''; 79 | } 80 | ?> 81 |
Date ValueFormulaExcel TimeStampFormatted TimeStamp
HourMinuteSecond
' , $worksheet->getCell('A'.$row)->getFormattedValue() , '' , $worksheet->getCell('B'.$row)->getFormattedValue() , '' , $worksheet->getCell('C'.$row)->getFormattedValue() , '' , $worksheet->getCell('D'.$row)->getValue() , '' , $worksheet->getCell('D'.$row)->getFormattedValue() , '' , $worksheet->getCell('E'.$row)->getFormattedValue() , '
-------------------------------------------------------------------------------- /Documentation/Examples/Reading WorkBook Data/exampleWorkBookReader03.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | PHPExcel Reading WorkBook Data Example #03 14 | 15 | 16 | 17 | 18 |

PHPExcel Reading WorkBook Data Example #03

19 |

Read Custom Property Values for a WorkBook

20 | load($inputFileName); 36 | 37 | 38 | echo '
'; 39 | 40 | /** Read an array list of any custom properties for this document **/ 41 | $customPropertyList = $objPHPExcel->getProperties()->getCustomProperties(); 42 | 43 | echo 'Custom Properties:
'; 44 | /** Loop through the list of custom properties **/ 45 | foreach($customPropertyList as $customPropertyName) { 46 | echo '',$customPropertyName,': '; 47 | /** Retrieve the property value **/ 48 | $propertyValue = $objPHPExcel->getProperties()->getCustomPropertyValue($customPropertyName); 49 | /** Retrieve the property type **/ 50 | $propertyType = $objPHPExcel->getProperties()->getCustomPropertyType($customPropertyName); 51 | 52 | /** Manipulate properties as appropriate for display purposes **/ 53 | switch($propertyType) { 54 | case 'i' : // integer 55 | $propertyType = 'integer number'; 56 | break; 57 | case 'f' : // float 58 | $propertyType = 'floating point number'; 59 | break; 60 | case 's' : // string 61 | $propertyType = 'string'; 62 | break; 63 | case 'd' : // date 64 | $propertyValue = date('l, d<\s\up>S F Y g:i A',$propertyValue); 65 | $propertyType = 'date'; 66 | break; 67 | case 'b' : // boolean 68 | $propertyValue = ($propertyValue) ? 'TRUE' : 'FALSE'; 69 | $propertyType = 'boolean'; 70 | break; 71 | } 72 | 73 | echo $propertyValue,' (',$propertyType,')
'; 74 | } 75 | 76 | 77 | 78 | ?> 79 | 80 | 81 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php: -------------------------------------------------------------------------------- 1 | data; 52 | } 53 | 54 | /** 55 | * Set the raw image data 56 | * 57 | * @param string 58 | */ 59 | public function setData($data) 60 | { 61 | $this->data = $data; 62 | } 63 | 64 | /** 65 | * Set parent BSE 66 | * 67 | * @param PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE $parent 68 | */ 69 | public function setParent($parent) 70 | { 71 | $this->parent = $parent; 72 | } 73 | 74 | /** 75 | * Get parent BSE 76 | * 77 | * @return PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE $parent 78 | */ 79 | public function getParent() 80 | { 81 | return $this->parent; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /Examples/OOCalcReader.php: -------------------------------------------------------------------------------- 1 | load("OOCalcTest.ods"); 41 | 42 | 43 | $callEndTime = microtime(true); 44 | $callTime = $callEndTime - $callStartTime; 45 | echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL; 46 | // Echo memory usage 47 | echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; 48 | 49 | 50 | echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL; 51 | $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 52 | $objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 53 | echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; 54 | 55 | 56 | // Echo memory peak usage 57 | echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; 58 | 59 | // Echo done 60 | echo date('H:i:s') , " Done writing file" , PHP_EOL; 61 | 62 | -------------------------------------------------------------------------------- /Examples/GnumericReader.php: -------------------------------------------------------------------------------- 1 | load("GnumericTest.gnumeric"); 41 | 42 | 43 | $callEndTime = microtime(true); 44 | $callTime = $callEndTime - $callStartTime; 45 | echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL; 46 | // Echo memory usage 47 | echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; 48 | 49 | 50 | echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL; 51 | $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 52 | $objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 53 | echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; 54 | 55 | 56 | // Echo memory peak usage 57 | echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; 58 | 59 | // Echo done 60 | echo date('H:i:s') , " Done writing file" , PHP_EOL; 61 | -------------------------------------------------------------------------------- /Examples/XMLReader.php: -------------------------------------------------------------------------------- 1 | load($inputFileName); 48 | 49 | 50 | echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL; 51 | $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 52 | $objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 53 | echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; 54 | 55 | 56 | // Echo memory peak usage 57 | echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; 58 | 59 | // Echo done 60 | echo date('H:i:s') , " Done writing file" , PHP_EOL; 61 | -------------------------------------------------------------------------------- /Examples/14excel5.php: -------------------------------------------------------------------------------- 1 | '); 34 | 35 | date_default_timezone_set('Europe/London'); 36 | 37 | include "05featuredemo.inc.php"; 38 | 39 | /** PHPExcel_IOFactory */ 40 | require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; 41 | 42 | 43 | // Save Excel 95 file 44 | echo date('H:i:s') , " Write to Excel5 format" , EOL; 45 | $callStartTime = microtime(true); 46 | 47 | $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 48 | $objWriter->save(str_replace('.php', '.xls', __FILE__)); 49 | $callEndTime = microtime(true); 50 | $callTime = $callEndTime - $callStartTime; 51 | 52 | echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; 53 | echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; 54 | // Echo memory usage 55 | echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; 56 | 57 | 58 | // Echo memory peak usage 59 | echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; 60 | 61 | // Echo done 62 | echo date('H:i:s') , " Done writing file" , EOL; 63 | echo 'File has been created in ' , getcwd() , EOL; 64 | -------------------------------------------------------------------------------- /Examples/Excel2003XMLReader.php: -------------------------------------------------------------------------------- 1 | load("Excel2003XMLTest.xml"); 42 | 43 | 44 | $callEndTime = microtime(true); 45 | $callTime = $callEndTime - $callStartTime; 46 | echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL; 47 | // Echo memory usage 48 | echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; 49 | 50 | 51 | echo date('H:i:s') , " Write to Excel5 format" , PHP_EOL; 52 | $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 53 | $objWriter->save(str_replace('.php', '.xls', __FILE__)); 54 | echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', __FILE__) , PHP_EOL; 55 | 56 | 57 | // Echo memory peak usage 58 | echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; 59 | 60 | // Echo done 61 | echo date('H:i:s') , " Done writing file" , PHP_EOL; 62 | -------------------------------------------------------------------------------- /Classes/PHPExcel/Shared/Escher.php: -------------------------------------------------------------------------------- 1 | dggContainer; 52 | } 53 | 54 | /** 55 | * Set Drawing Group Container 56 | * 57 | * @param PHPExcel_Shared_Escher_DggContainer $dggContainer 58 | */ 59 | public function setDggContainer($dggContainer) 60 | { 61 | return $this->dggContainer = $dggContainer; 62 | } 63 | 64 | /** 65 | * Get Drawing Container 66 | * 67 | * @return PHPExcel_Shared_Escher_DgContainer 68 | */ 69 | public function getDgContainer() 70 | { 71 | return $this->dgContainer; 72 | } 73 | 74 | /** 75 | * Set Drawing Container 76 | * 77 | * @param PHPExcel_Shared_Escher_DgContainer $dgContainer 78 | */ 79 | public function setDgContainer($dgContainer) 80 | { 81 | return $this->dgContainer = $dgContainer; 82 | } 83 | } 84 | --------------------------------------------------------------------------------