Copy disabled (too large)
Download .txt
Showing preview only (13,684K chars total). Download the full file to get everything.
Repository: PHPOffice/PhpSpreadsheet
Branch: master
Commit: a1dacfdf79e4
Files: 3117
Total size: 12.5 MB
Directory structure:
gitextract_kqtir3pu/
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── dependabot.yml
│ ├── stale.yml
│ ├── support.yml
│ └── workflows/
│ ├── github-pages.yml
│ └── main.yml
├── .gitignore
├── .php-cs-fixer.dist.php
├── .phpcs.xml.dist
├── .readthedocs.yaml
├── CHANGELOG.PHPExcel.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── bin/
│ ├── check-phpdoc-types.php
│ ├── generate-document.php
│ ├── generate-locales.php
│ └── pre-commit
├── composer.json
├── docs/
│ ├── extra/
│ │ ├── extra.css
│ │ └── extrajs.js
│ ├── faq.md
│ ├── index.md
│ ├── references/
│ │ ├── features-cross-reference.md
│ │ ├── function-list-by-category.md
│ │ ├── function-list-by-name-compact.md
│ │ └── function-list-by-name.md
│ └── topics/
│ ├── Behind the Mask.md
│ ├── Excel Anomalies.md
│ ├── Looping the Loop.md
│ ├── The Dating Game.md
│ ├── accessing-cells.md
│ ├── architecture.md
│ ├── autofilters.md
│ ├── calculation-engine.md
│ ├── conditional-formatting.md
│ ├── creating-spreadsheet.md
│ ├── defined-names.md
│ ├── file-formats.md
│ ├── images/
│ │ └── Behind the Mask/
│ │ └── Stock Portfolio.xlsx
│ ├── memory_saving.md
│ ├── migration-from-PHPExcel.md
│ ├── reading-and-writing-to-file.md
│ ├── reading-files.md
│ ├── recipes.md
│ ├── settings.md
│ ├── tables.md
│ └── worksheets.md
├── infra/
│ ├── DocumentGenerator.php
│ └── LocaleGenerator.php
├── mkdocs.yml
├── phpstan-baseline.neon
├── phpstan.neon.dist
├── phpunit.xml.dist
├── samples/
│ ├── Autofilter/
│ │ ├── 10_Autofilter.php
│ │ ├── 10_Autofilter_dynamic_dates.php
│ │ ├── 10_Autofilter_selection_1.php
│ │ ├── 10_Autofilter_selection_2.php
│ │ └── 10_Autofilter_selection_display.php
│ ├── Basic/
│ │ ├── 01_Simple.php
│ │ ├── 01_Simple_download_ods.php
│ │ ├── 01_Simple_download_pdf.php
│ │ ├── 01_Simple_download_xls.php
│ │ ├── 01_Simple_download_xlsx.php
│ │ ├── 02_Types.php
│ │ ├── 03_Formulas.php
│ │ ├── 04_Printing.php
│ │ ├── 05_Feature_demo.php
│ │ ├── 05_UnexpectedCharacters.php
│ │ ├── 06_Largescale.php
│ │ ├── 07_Reader.php
│ │ ├── 08_Conditional_formatting.php
│ │ ├── 08_Conditional_formatting_2.php
│ │ └── 09_Pagebreaks.php
│ ├── Basic1/
│ │ ├── 11_Documentsecurity.php
│ │ ├── 12_CellProtection.php
│ │ ├── 13_Calculation.php
│ │ ├── 13_CalculationCyclicFormulae.php
│ │ ├── 14_Xls.php
│ │ ├── 15_Datavalidation.php
│ │ ├── 16_Csv.php
│ │ ├── 17_Html.php
│ │ ├── 17a_Html.php
│ │ ├── 17b_Html.php
│ │ ├── 18_Extendedcalculation.php
│ │ └── 19_Namedrange.php
│ ├── Basic2/
│ │ ├── 20_Read_Excel2003XML.php
│ │ ├── 20_Read_Gnumeric.php
│ │ ├── 20_Read_Ods.php
│ │ ├── 20_Read_Sylk.php
│ │ ├── 20_Read_Xls.php
│ │ ├── 22_Heavily_formatted.php
│ │ ├── 23_Sharedstyles.php
│ │ ├── 24_Readfilter.php
│ │ ├── 25_In_memory_image.php
│ │ ├── 26_Utf8.php
│ │ ├── 27_Images_Html_Pdf.php
│ │ ├── 27_Images_Xls.php
│ │ ├── 27_Images_Xlsx.php
│ │ ├── 28_Iterator.php
│ │ └── 29_Advanced_value_binder.php
│ ├── Basic3/
│ │ ├── 30_Template.php
│ │ ├── 30_Templatebiff5.php
│ │ ├── 31_Document_properties_write.php
│ │ ├── 31_Document_properties_write_xls.php
│ │ ├── 37_Page_layout_view.php
│ │ ├── 38_Clone_worksheet.php
│ │ ├── 39_Dropdown.php
│ │ └── data/
│ │ └── continents/
│ │ ├── Africa.txt
│ │ ├── Asia.txt
│ │ ├── Europe.txt
│ │ ├── North America.txt
│ │ ├── Oceania.txt
│ │ └── South America.txt
│ ├── Basic4/
│ │ ├── 40_Duplicate_style.php
│ │ ├── 41_Password.php
│ │ ├── 42_RichText.php
│ │ ├── 42b_RichText.php
│ │ ├── 43_Merge_workbooks.php
│ │ ├── 44_Worksheet_info.php
│ │ ├── 45_Quadratic_equation_solver.php
│ │ ├── 46_ReadHtml.php
│ │ ├── 47_xlsfill.php
│ │ ├── 47_xlsxfill.php
│ │ ├── 48_Image_move_size_with_cells.php
│ │ └── 49_alignment.php
│ ├── Basic5/
│ │ ├── 50_xlsverticalbreak.php
│ │ ├── 51_ProtectedSort.php
│ │ ├── 52_Currency.php
│ │ ├── 53_ImageOpacity.php
│ │ ├── 54_ImagesInAndOut.php
│ │ ├── 55_DefinedStyles.php
│ │ └── 56_OdsToISO8601.php
│ ├── Bitwise/
│ │ ├── BITAND.php
│ │ ├── BITLSHIFT.php
│ │ ├── BITOR.php
│ │ ├── BITRSHIFT.php
│ │ └── BITXOR.php
│ ├── Bootstrap.php
│ ├── Chart/
│ │ ├── 32_Chart_read_write.php
│ │ ├── 32_Chart_read_write_HTML.php
│ │ ├── 32_Chart_read_write_PDF.php
│ │ ├── 34_Chart_update.php
│ │ ├── 35_Chart_render.php
│ │ ├── 35_Chart_render33.php
│ │ └── 37_Chart_dynamic_title.php
│ ├── Chart33a/
│ │ ├── 33_Chart_create_area.php
│ │ ├── 33_Chart_create_area_2.php
│ │ ├── 33_Chart_create_bar.php
│ │ ├── 33_Chart_create_bar_custom_colors.php
│ │ ├── 33_Chart_create_bar_labels_lines.php
│ │ ├── 33_Chart_create_bar_stacked.php
│ │ ├── 33_Chart_create_bubble.php
│ │ ├── 33_Chart_create_column.php
│ │ ├── 33_Chart_create_column_2.php
│ │ ├── 33_Chart_create_composite.alternate.php
│ │ ├── 33_Chart_create_composite.php
│ │ ├── 33_Chart_create_line.php
│ │ └── 33_Chart_create_line_dateaxis.php
│ ├── Chart33b/
│ │ ├── 33_Chart_create_multiple_charts.php
│ │ ├── 33_Chart_create_pie.php
│ │ ├── 33_Chart_create_pie_custom_colors.php
│ │ ├── 33_Chart_create_radar.php
│ │ ├── 33_Chart_create_scatter.php
│ │ ├── 33_Chart_create_scatter2.php
│ │ ├── 33_Chart_create_scatter3.php
│ │ ├── 33_Chart_create_scatter4.php
│ │ ├── 33_Chart_create_scatter5_trendlines.php
│ │ ├── 33_Chart_create_scatter6_value_xaxis.php
│ │ ├── 33_Chart_create_scatter7_blanks.php
│ │ ├── 33_Chart_create_stock.php
│ │ └── 33_Chart_create_stock2.php
│ ├── ComplexNumbers1/
│ │ ├── COMPLEX.php
│ │ ├── IMABS.php
│ │ ├── IMAGINARY.php
│ │ ├── IMARGUMENT.php
│ │ ├── IMCONJUGATE.php
│ │ └── IMREAL.php
│ ├── ComplexNumbers2/
│ │ ├── IMCOS.php
│ │ ├── IMCOSH.php
│ │ ├── IMCOT.php
│ │ ├── IMCSC.php
│ │ ├── IMCSCH.php
│ │ ├── IMDIV.php
│ │ ├── IMEXP.php
│ │ ├── IMLN.php
│ │ ├── IMLOG10.php
│ │ └── IMLOG2.php
│ ├── ComplexNumbers3/
│ │ ├── IMPOWER.php
│ │ ├── IMPRODUCT.php
│ │ ├── IMSEC.php
│ │ ├── IMSECH.php
│ │ ├── IMSIN.php
│ │ ├── IMSINH.php
│ │ ├── IMSQRT.php
│ │ ├── IMSUB.php
│ │ ├── IMSUM.php
│ │ └── IMTAN.php
│ ├── ConditionalFormatting/
│ │ ├── 01_Basic_Comparisons.php
│ │ ├── 02_Text_Comparisons.php
│ │ ├── 03_Blank_Comparisons.php
│ │ ├── 04_Error_Comparisons.php
│ │ ├── 05_Date_Comparisons.php
│ │ ├── 06_Duplicate_Comparisons.php
│ │ ├── 07_Expression_Comparisons.php
│ │ ├── cond08_colorscale.php
│ │ └── cond09_iconset.php
│ ├── Database/
│ │ ├── DAVERAGE.php
│ │ ├── DCOUNT.php
│ │ ├── DCOUNTA.php
│ │ ├── DGET.php
│ │ ├── DMAX.php
│ │ ├── DMIN.php
│ │ ├── DPRODUCT.php
│ │ ├── DSTDEV.php
│ │ ├── DSTDEVP.php
│ │ ├── DSUM.php
│ │ ├── DVAR.php
│ │ └── DVARP.php
│ ├── DateTime/
│ │ ├── DATE.php
│ │ ├── DATEDIF.php
│ │ ├── DATEVALUE.php
│ │ ├── DAY.php
│ │ ├── DAYS.php
│ │ ├── DAYS360.php
│ │ ├── EDATE.php
│ │ ├── EOMONTH.php
│ │ ├── HOUR.php
│ │ ├── ISOWEEKNUM.php
│ │ ├── MINUTE.php
│ │ └── MONTH.php
│ ├── DateTime2/
│ │ ├── NETWORKDAYS.php
│ │ ├── NOW.php
│ │ ├── SECOND.php
│ │ ├── TIME.php
│ │ ├── TIMEVALUE.php
│ │ ├── TODAY.php
│ │ ├── WEEKDAY.php
│ │ ├── WEEKNUM.php
│ │ ├── WORKDAY.php
│ │ ├── YEAR.php
│ │ └── YEARFRAC.php
│ ├── DefinedNames/
│ │ ├── AbsoluteNamedRange.php
│ │ ├── CrossWorksheetNamedFormula.php
│ │ ├── NamedFormulaeAndRanges.php
│ │ ├── RelativeNamedRange.php
│ │ ├── RelativeNamedRange2.php
│ │ ├── RelativeNamedRangeAsFunction.php
│ │ ├── ScopedNamedRange.php
│ │ ├── ScopedNamedRange2.php
│ │ ├── SimpleNamedFormula.php
│ │ └── SimpleNamedRange.php
│ ├── Engineering/
│ │ ├── BESSELI.php
│ │ ├── BESSELJ.php
│ │ ├── BESSELK.php
│ │ ├── BESSELY.php
│ │ ├── CONVERT.php
│ │ ├── Convert-Online.php
│ │ ├── DELTA.php
│ │ ├── ERF.php
│ │ ├── ERFC.php
│ │ └── GESTEP.php
│ ├── Financial1/
│ │ ├── ACCRINT.php
│ │ ├── ACCRINTM.php
│ │ ├── AMORDEGRC.php
│ │ ├── AMORLINC.php
│ │ ├── COUPDAYBS.php
│ │ ├── COUPDAYS.php
│ │ ├── COUPDAYSNC.php
│ │ ├── COUPNCD.php
│ │ ├── COUPNUM.php
│ │ ├── COUPPCD.php
│ │ ├── CUMIPMT.php
│ │ └── CUMPRINC.php
│ ├── Financial2/
│ │ ├── DB.php
│ │ ├── DDB.php
│ │ ├── DISC.php
│ │ ├── DOLLARDE.php
│ │ ├── DOLLARFR.php
│ │ ├── EFFECT.php
│ │ ├── FV.php
│ │ └── FVSCHEDULE.php
│ ├── Financial3/
│ │ ├── INTRATE.php
│ │ ├── IPMT.php
│ │ ├── IRR.php
│ │ ├── ISPMT.php
│ │ ├── MIRR.php
│ │ ├── NOMINAL.php
│ │ ├── NPER.php
│ │ └── NPV.php
│ ├── Header.php
│ ├── HexEtcConversions/
│ │ ├── BIN2DEC.php
│ │ ├── BIN2HEX.php
│ │ ├── BIN2OCT.php
│ │ ├── DEC2BIN.php
│ │ ├── DEC2HEX.php
│ │ ├── DEC2OCT.php
│ │ ├── HEX2BIN.php
│ │ ├── HEX2DEC.php
│ │ ├── HEX2OCT.php
│ │ ├── OCT2BIN.php
│ │ ├── OCT2DEC.php
│ │ └── OCT2HEX.php
│ ├── Html/
│ │ ├── html_01_Basic_Conditional_Formatting.php
│ │ ├── html_02_More_Conditional_Formatting.php
│ │ ├── html_03_Color_Scale.php
│ │ ├── html_04_Table_Format_without_Conditional.php
│ │ ├── html_05_Table_Format_with_Conditional.php
│ │ └── html_06_Table_Cellspacing.php
│ ├── LookupRef/
│ │ ├── ADDRESS.php
│ │ ├── COLUMN.php
│ │ ├── COLUMNS.php
│ │ ├── INDEX.php
│ │ ├── INDIRECT.php
│ │ ├── OFFSET.php
│ │ ├── ROW.php
│ │ ├── ROWS.php
│ │ ├── SortExcel.php
│ │ ├── SortExcelCols.php
│ │ └── VLOOKUP.php
│ ├── Pdf/
│ │ ├── 21_Pdf_Domdf.php
│ │ ├── 21_Pdf_TCPDF.php
│ │ ├── 21_Pdf_mPDF.php
│ │ ├── 21a_Pdf.php
│ │ ├── 21b_Pdf.php
│ │ ├── 21d_FitToHeightPdf.php
│ │ ├── 21e_UnusualFont_mpdf.php
│ │ ├── 21f_Drawing.php
│ │ ├── 21g_Direction.php
│ │ ├── 21h_DirectionMultiple.php
│ │ ├── Dompdf_Canvas_Headers.php
│ │ ├── Dompdf_Custom_Headers.php
│ │ ├── Mpdf_Custom_Headers.php
│ │ └── Tcpdf_Custom_Headers.php
│ ├── Reader/
│ │ ├── 01_Simple_file_reader_using_IOFactory.php
│ │ ├── 02_Simple_file_reader_using_a_specified_reader.php
│ │ ├── 03_Simple_file_reader_using_the_IOFactory_to_return_a_reader.php
│ │ ├── 04_Simple_file_reader_using_the_IOFactory_to_identify_a_reader_to_use.php
│ │ ├── 05_Simple_file_reader_using_the_read_data_only_option.php
│ │ ├── 06_Simple_file_reader_loading_all_worksheets.php
│ │ ├── 07_Simple_file_reader_loading_a_single_named_worksheet.php
│ │ ├── 08_Simple_file_reader_loading_several_named_worksheets.php
│ │ ├── 09_Simple_file_reader_using_a_read_filter.php
│ │ ├── 10_Simple_file_reader_using_a_configurable_read_filter.php
│ │ ├── 11_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_version_1.php
│ │ ├── 12_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_version_2.php
│ │ └── sampleData/
│ │ ├── example1.xls
│ │ ├── example1xls
│ │ └── example2.xls
│ ├── Reader2/
│ │ ├── 13_Simple_file_reader_for_multiple_CSV_files.php
│ │ ├── 14_Reading_a_large_CSV_file_in_chunks_to_split_across_multiple_worksheets.php
│ │ ├── 15_Simple_file_reader_for_tab_separated_value_file_using_the_Advanced_Value_Binder.php
│ │ ├── 16_Handling_loader_exceptions_using_TryCatch.php
│ │ ├── 17_Simple_file_reader_loading_several_named_worksheets.php
│ │ ├── 18_Reading_list_of_worksheets_without_loading_entire_file.php
│ │ ├── 19_Reading_worksheet_information_without_loading_entire_file.php
│ │ ├── 20_Reader_worksheet_hyperlink_image.php
│ │ ├── 21_Reader_CSV_Long_Integers_with_String_Value_Binder.php
│ │ ├── 22_Reader_formscomments.php
│ │ ├── 22_Reader_issue1767.php
│ │ ├── 23_iterateRowsYield.php
│ │ └── sampleData/
│ │ ├── example1.csv
│ │ ├── example1.tsv
│ │ ├── example1.xls
│ │ ├── example2.csv
│ │ ├── formscomments.xlsx
│ │ ├── issue.1767.xlsx
│ │ └── longIntegers.csv
│ ├── Reading_workbook_data/
│ │ ├── Custom_properties.php
│ │ ├── Custom_property_names.php
│ │ ├── Properties.php
│ │ ├── Worksheet_count_and_names.php
│ │ └── sampleData/
│ │ ├── example1.xls
│ │ ├── example1.xlsx
│ │ └── example2.xls
│ ├── Table/
│ │ ├── 01_Table.php
│ │ ├── 02_Table_Total.php
│ │ ├── 03_Column_Formula.php
│ │ └── 04_Column_Formula_with_Totals.php
│ ├── Wizards/
│ │ ├── Header.php
│ │ └── NumberFormat/
│ │ ├── Accounting.php
│ │ ├── Currency.php
│ │ ├── Number.php
│ │ ├── Percentage.php
│ │ └── Scientific.php
│ ├── bootstrap/
│ │ ├── css/
│ │ │ └── phpspreadsheet.css
│ │ └── fonts/
│ │ └── FontAwesome.otf
│ ├── download.php
│ ├── index.php
│ └── templates/
│ ├── 21d_FitToHeightPdf.xlsx
│ ├── 26template.xlsx
│ ├── 27template.xls
│ ├── 27template.xlsx
│ ├── 28iterators.xlsx
│ ├── 30template.xls
│ ├── 30templatebiff5.xls
│ ├── 31docproperties.xls
│ ├── 31docproperties.xlsx
│ ├── 32chartreadwrite.xlsx
│ ├── 32complexChartreadwrite.xlsx
│ ├── 32readwriteAreaChart1.xlsx
│ ├── 32readwriteAreaChart2.xlsx
│ ├── 32readwriteAreaChart3.xlsx
│ ├── 32readwriteAreaChart3D1.xlsx
│ ├── 32readwriteAreaChart4.xlsx
│ ├── 32readwriteAreaPercentageChart1.xlsx
│ ├── 32readwriteAreaPercentageChart2.xlsx
│ ├── 32readwriteAreaPercentageChart3D1.xlsx
│ ├── 32readwriteAreaStackedChart1.xlsx
│ ├── 32readwriteAreaStackedChart2.xlsx
│ ├── 32readwriteAreaStackedChart3D1.xlsx
│ ├── 32readwriteBarChart1.xlsx
│ ├── 32readwriteBarChart2.xlsx
│ ├── 32readwriteBarChart3.xlsx
│ ├── 32readwriteBarChart3D1.xlsx
│ ├── 32readwriteBarChart4.xlsx
│ ├── 32readwriteBarPercentageChart1.xlsx
│ ├── 32readwriteBarPercentageChart2.xlsx
│ ├── 32readwriteBarPercentageChart3D1.xlsx
│ ├── 32readwriteBarStackedChart1.xlsx
│ ├── 32readwriteBarStackedChart2.xlsx
│ ├── 32readwriteBarStackedChart3D1.xlsx
│ ├── 32readwriteBubbleChart1.xlsx
│ ├── 32readwriteBubbleChart2.xlsx
│ ├── 32readwriteBubbleChart3D1.xlsx
│ ├── 32readwriteChartWithImages1.xlsx
│ ├── 32readwriteColumnChart1.xlsx
│ ├── 32readwriteColumnChart2.xlsx
│ ├── 32readwriteColumnChart3.xlsx
│ ├── 32readwriteColumnChart3D1.xlsx
│ ├── 32readwriteColumnChart4.xlsx
│ ├── 32readwriteColumnPercentageChart1.xlsx
│ ├── 32readwriteColumnPercentageChart2.xlsx
│ ├── 32readwriteColumnPercentageChart3D1.xlsx
│ ├── 32readwriteColumnStackedChart1.xlsx
│ ├── 32readwriteColumnStackedChart2.xlsx
│ ├── 32readwriteColumnStackedChart3D1.xlsx
│ ├── 32readwriteComboChart1.xlsx
│ ├── 32readwriteDonutChart1.xlsx
│ ├── 32readwriteDonutChart2.xlsx
│ ├── 32readwriteDonutChart3.xlsx
│ ├── 32readwriteDonutChart4.xlsx
│ ├── 32readwriteDonutChartExploded1.xlsx
│ ├── 32readwriteDonutChartMultiseries1.xlsx
│ ├── 32readwriteLineChart1.xlsx
│ ├── 32readwriteLineChart2.xlsx
│ ├── 32readwriteLineChart3.xlsx
│ ├── 32readwriteLineChart3D1.xlsx
│ ├── 32readwriteLineChart4.xlsx
│ ├── 32readwriteLineChart5.xlsx
│ ├── 32readwriteLineChart6.xlsx
│ ├── 32readwriteLineChartNoPointMarkers1.xlsx
│ ├── 32readwriteLineDateAxisChart1.xlsx
│ ├── 32readwriteLinePercentageChart1.xlsx
│ ├── 32readwriteLinePercentageChart2.xlsx
│ ├── 32readwriteLineStackedChart1.xlsx
│ ├── 32readwriteLineStackedChart2.xlsx
│ ├── 32readwritePieChart1.xlsx
│ ├── 32readwritePieChart2.xlsx
│ ├── 32readwritePieChart3.xlsx
│ ├── 32readwritePieChart3D1.xlsx
│ ├── 32readwritePieChart4.xlsx
│ ├── 32readwritePieChartExploded1.xlsx
│ ├── 32readwritePieChartExploded3D1.xlsx
│ ├── 32readwriteRadarChart1.xlsx
│ ├── 32readwriteRadarChart2.xlsx
│ ├── 32readwriteRadarChart3.xlsx
│ ├── 32readwriteScatterChart1.xlsx
│ ├── 32readwriteScatterChart10.xlsx
│ ├── 32readwriteScatterChart2.xlsx
│ ├── 32readwriteScatterChart3.xlsx
│ ├── 32readwriteScatterChart4.xlsx
│ ├── 32readwriteScatterChart5.xlsx
│ ├── 32readwriteScatterChart6.xlsx
│ ├── 32readwriteScatterChart7.xlsx
│ ├── 32readwriteScatterChart8.xlsx
│ ├── 32readwriteScatterChart9.xlsx
│ ├── 32readwriteScatterChartTrendlines1.xlsx
│ ├── 32readwriteStockChart1.xlsx
│ ├── 32readwriteStockChart2.xlsx
│ ├── 32readwriteStockChart3.xlsx
│ ├── 32readwriteStockChart4.xlsx
│ ├── 32readwriteStockChart5.xlsx
│ ├── 32readwriteSurfaceChart1.xlsx
│ ├── 32readwriteSurfaceChart2.xlsx
│ ├── 32readwriteSurfaceChart3.xlsx
│ ├── 32readwriteSurfaceChart4.xlsx
│ ├── 36writeLineChart1.xlsx
│ ├── 36writeMultiple1.xlsx
│ ├── 37dynamictitle.xlsx
│ ├── 43mergeBook1.xlsx
│ ├── 43mergeBook2.xlsx
│ ├── 46readHtml.html
│ ├── 47_xlsfill.xls
│ ├── 47_xlsxfill.xlsx
│ ├── 50_xlsverticalbreak.xls
│ ├── 56_MixedDateFormats.ods
│ ├── BasicConditionalFormatting.xlsx
│ ├── ColourScale.xlsx
│ ├── ConditionalFormattingConditions.xlsx
│ ├── Excel2003XMLTest.xml
│ ├── GnumericTest.gnumeric
│ ├── Mpdf2.php
│ ├── OOCalcTest.ods
│ ├── ShadowsIntoLight.OFL.txt
│ ├── SylkTest.slk
│ ├── TableFormat.xlsx
│ ├── chart-with-and-without-overlays.xlsx
│ ├── chartSpreadsheet.php
│ ├── excel2003.short.bad.xml
│ ├── excel2003.xml
│ ├── largeSpreadsheet.php
│ ├── old.gnumeric
│ ├── sampleSpreadsheet.php
│ └── sampleSpreadsheet2.php
├── src/
│ └── PhpSpreadsheet/
│ ├── Calculation/
│ │ ├── ArrayEnabled.php
│ │ ├── BinaryComparison.php
│ │ ├── Calculation.php
│ │ ├── CalculationBase.php
│ │ ├── CalculationLocale.php
│ │ ├── CalculationParserOnly.php
│ │ ├── Category.php
│ │ ├── Database/
│ │ │ ├── DAverage.php
│ │ │ ├── DCount.php
│ │ │ ├── DCountA.php
│ │ │ ├── DGet.php
│ │ │ ├── DMax.php
│ │ │ ├── DMin.php
│ │ │ ├── DProduct.php
│ │ │ ├── DStDev.php
│ │ │ ├── DStDevP.php
│ │ │ ├── DSum.php
│ │ │ ├── DVar.php
│ │ │ ├── DVarP.php
│ │ │ └── DatabaseAbstract.php
│ │ ├── DateTimeExcel/
│ │ │ ├── Constants.php
│ │ │ ├── Current.php
│ │ │ ├── Date.php
│ │ │ ├── DateParts.php
│ │ │ ├── DateValue.php
│ │ │ ├── Days.php
│ │ │ ├── Days360.php
│ │ │ ├── Difference.php
│ │ │ ├── Helpers.php
│ │ │ ├── Month.php
│ │ │ ├── NetworkDays.php
│ │ │ ├── Time.php
│ │ │ ├── TimeParts.php
│ │ │ ├── TimeValue.php
│ │ │ ├── Week.php
│ │ │ ├── WorkDay.php
│ │ │ └── YearFrac.php
│ │ ├── Engine/
│ │ │ ├── ArrayArgumentHelper.php
│ │ │ ├── ArrayArgumentProcessor.php
│ │ │ ├── BranchPruner.php
│ │ │ ├── CyclicReferenceStack.php
│ │ │ ├── FormattedNumber.php
│ │ │ ├── Logger.php
│ │ │ └── Operands/
│ │ │ ├── Operand.php
│ │ │ └── StructuredReference.php
│ │ ├── Engineering/
│ │ │ ├── BesselI.php
│ │ │ ├── BesselJ.php
│ │ │ ├── BesselK.php
│ │ │ ├── BesselY.php
│ │ │ ├── BitWise.php
│ │ │ ├── Compare.php
│ │ │ ├── Complex.php
│ │ │ ├── ComplexFunctions.php
│ │ │ ├── ComplexOperations.php
│ │ │ ├── Constants.php
│ │ │ ├── ConvertBase.php
│ │ │ ├── ConvertBinary.php
│ │ │ ├── ConvertDecimal.php
│ │ │ ├── ConvertHex.php
│ │ │ ├── ConvertOctal.php
│ │ │ ├── ConvertUOM.php
│ │ │ ├── EngineeringValidations.php
│ │ │ ├── Erf.php
│ │ │ └── ErfC.php
│ │ ├── Exception.php
│ │ ├── ExceptionHandler.php
│ │ ├── Financial/
│ │ │ ├── Amortization.php
│ │ │ ├── CashFlow/
│ │ │ │ ├── CashFlowValidations.php
│ │ │ │ ├── Constant/
│ │ │ │ │ ├── Periodic/
│ │ │ │ │ │ ├── Cumulative.php
│ │ │ │ │ │ ├── Interest.php
│ │ │ │ │ │ ├── InterestAndPrincipal.php
│ │ │ │ │ │ └── Payments.php
│ │ │ │ │ └── Periodic.php
│ │ │ │ ├── Single.php
│ │ │ │ └── Variable/
│ │ │ │ ├── NonPeriodic.php
│ │ │ │ └── Periodic.php
│ │ │ ├── Constants.php
│ │ │ ├── Coupons.php
│ │ │ ├── Depreciation.php
│ │ │ ├── Dollar.php
│ │ │ ├── FinancialValidations.php
│ │ │ ├── Helpers.php
│ │ │ ├── InterestRate.php
│ │ │ ├── Securities/
│ │ │ │ ├── AccruedInterest.php
│ │ │ │ ├── Price.php
│ │ │ │ ├── Rates.php
│ │ │ │ ├── SecurityValidations.php
│ │ │ │ └── Yields.php
│ │ │ └── TreasuryBill.php
│ │ ├── FormulaParser.php
│ │ ├── FormulaToken.php
│ │ ├── FunctionArray.php
│ │ ├── Functions.php
│ │ ├── Information/
│ │ │ ├── ErrorValue.php
│ │ │ ├── ExcelError.php
│ │ │ ├── Info.php
│ │ │ └── Value.php
│ │ ├── Internal/
│ │ │ ├── ExcelArrayPseudoFunctions.php
│ │ │ ├── MakeMatrix.php
│ │ │ └── WildcardMatch.php
│ │ ├── Logical/
│ │ │ ├── Boolean.php
│ │ │ ├── Conditional.php
│ │ │ └── Operations.php
│ │ ├── LookupRef/
│ │ │ ├── Address.php
│ │ │ ├── ChooseRowsEtc.php
│ │ │ ├── ExcelMatch.php
│ │ │ ├── Filter.php
│ │ │ ├── Formula.php
│ │ │ ├── HLookup.php
│ │ │ ├── Helpers.php
│ │ │ ├── Hstack.php
│ │ │ ├── Hyperlink.php
│ │ │ ├── Indirect.php
│ │ │ ├── Lookup.php
│ │ │ ├── LookupBase.php
│ │ │ ├── LookupRefValidations.php
│ │ │ ├── Matrix.php
│ │ │ ├── Offset.php
│ │ │ ├── RowColumnInformation.php
│ │ │ ├── Selection.php
│ │ │ ├── Sort.php
│ │ │ ├── TorowTocol.php
│ │ │ ├── Unique.php
│ │ │ ├── VLookup.php
│ │ │ └── Vstack.php
│ │ ├── MathTrig/
│ │ │ ├── Absolute.php
│ │ │ ├── Angle.php
│ │ │ ├── Arabic.php
│ │ │ ├── Base.php
│ │ │ ├── Ceiling.php
│ │ │ ├── Combinations.php
│ │ │ ├── Exp.php
│ │ │ ├── Factorial.php
│ │ │ ├── Floor.php
│ │ │ ├── Gcd.php
│ │ │ ├── Helpers.php
│ │ │ ├── IntClass.php
│ │ │ ├── Lcm.php
│ │ │ ├── Logarithms.php
│ │ │ ├── MatrixFunctions.php
│ │ │ ├── Operations.php
│ │ │ ├── Random.php
│ │ │ ├── Roman.php
│ │ │ ├── Round.php
│ │ │ ├── SeriesSum.php
│ │ │ ├── Sign.php
│ │ │ ├── Sqrt.php
│ │ │ ├── Subtotal.php
│ │ │ ├── Sum.php
│ │ │ ├── SumSquares.php
│ │ │ ├── Trig/
│ │ │ │ ├── Cosecant.php
│ │ │ │ ├── Cosine.php
│ │ │ │ ├── Cotangent.php
│ │ │ │ ├── Secant.php
│ │ │ │ ├── Sine.php
│ │ │ │ └── Tangent.php
│ │ │ └── Trunc.php
│ │ ├── Statistical/
│ │ │ ├── AggregateBase.php
│ │ │ ├── Averages/
│ │ │ │ └── Mean.php
│ │ │ ├── Averages.php
│ │ │ ├── Conditional.php
│ │ │ ├── Confidence.php
│ │ │ ├── Counts.php
│ │ │ ├── Deviations.php
│ │ │ ├── Distributions/
│ │ │ │ ├── Beta.php
│ │ │ │ ├── Binomial.php
│ │ │ │ ├── ChiSquared.php
│ │ │ │ ├── DistributionValidations.php
│ │ │ │ ├── Exponential.php
│ │ │ │ ├── F.php
│ │ │ │ ├── Fisher.php
│ │ │ │ ├── Gamma.php
│ │ │ │ ├── GammaBase.php
│ │ │ │ ├── HyperGeometric.php
│ │ │ │ ├── LogNormal.php
│ │ │ │ ├── NewtonRaphson.php
│ │ │ │ ├── Normal.php
│ │ │ │ ├── Poisson.php
│ │ │ │ ├── StandardNormal.php
│ │ │ │ ├── StudentT.php
│ │ │ │ └── Weibull.php
│ │ │ ├── MaxMinBase.php
│ │ │ ├── Maximum.php
│ │ │ ├── Minimum.php
│ │ │ ├── Percentiles.php
│ │ │ ├── Permutations.php
│ │ │ ├── Size.php
│ │ │ ├── StandardDeviations.php
│ │ │ ├── Standardize.php
│ │ │ ├── StatisticalValidations.php
│ │ │ ├── Trends.php
│ │ │ ├── VarianceBase.php
│ │ │ └── Variances.php
│ │ ├── TextData/
│ │ │ ├── CaseConvert.php
│ │ │ ├── CharacterConvert.php
│ │ │ ├── Concatenate.php
│ │ │ ├── Extract.php
│ │ │ ├── Format.php
│ │ │ ├── Helpers.php
│ │ │ ├── Replace.php
│ │ │ ├── Search.php
│ │ │ ├── Text.php
│ │ │ ├── Thai.php
│ │ │ └── Trim.php
│ │ ├── Token/
│ │ │ └── Stack.php
│ │ ├── Web/
│ │ │ └── Service.php
│ │ └── locale/
│ │ ├── Translations.xlsx
│ │ ├── bg/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── cs/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── da/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── de/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── en/
│ │ │ └── uk/
│ │ │ └── config
│ │ ├── es/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── fi/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── fr/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── hu/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── it/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── nb/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── nl/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── pl/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── pt/
│ │ │ ├── br/
│ │ │ │ ├── config
│ │ │ │ └── functions
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── ru/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── sv/
│ │ │ ├── config
│ │ │ └── functions
│ │ └── tr/
│ │ ├── config
│ │ └── functions
│ ├── Cell/
│ │ ├── AddressHelper.php
│ │ ├── AddressRange.php
│ │ ├── AdvancedValueBinder.php
│ │ ├── Cell.php
│ │ ├── CellAddress.php
│ │ ├── CellRange.php
│ │ ├── ColumnRange.php
│ │ ├── Coordinate.php
│ │ ├── DataType.php
│ │ ├── DataValidation.php
│ │ ├── DataValidator.php
│ │ ├── DefaultValueBinder.php
│ │ ├── Hyperlink.php
│ │ ├── IValueBinder.php
│ │ ├── IgnoredErrors.php
│ │ ├── RowRange.php
│ │ └── StringValueBinder.php
│ ├── CellReferenceHelper.php
│ ├── Chart/
│ │ ├── Axis.php
│ │ ├── AxisText.php
│ │ ├── Chart.php
│ │ ├── ChartColor.php
│ │ ├── DataSeries.php
│ │ ├── DataSeriesValues.php
│ │ ├── Exception.php
│ │ ├── GridLines.php
│ │ ├── Layout.php
│ │ ├── Legend.php
│ │ ├── PlotArea.php
│ │ ├── Properties.php
│ │ ├── Renderer/
│ │ │ ├── IRenderer.php
│ │ │ ├── JpGraph.php
│ │ │ ├── JpGraphRendererBase.php
│ │ │ ├── MtJpGraphRenderer.php
│ │ │ └── PHP Charting Libraries.txt
│ │ ├── Title.php
│ │ └── TrendLine.php
│ ├── Collection/
│ │ ├── Cells.php
│ │ ├── CellsFactory.php
│ │ └── Memory/
│ │ ├── SimpleCache1.php
│ │ └── SimpleCache3.php
│ ├── Comment.php
│ ├── DefinedName.php
│ ├── Document/
│ │ ├── Properties.php
│ │ └── Security.php
│ ├── Exception.php
│ ├── HashTable.php
│ ├── Helper/
│ │ ├── Dimension.php
│ │ ├── Downloader.php
│ │ ├── Handler.php
│ │ ├── Html.php
│ │ ├── Sample.php
│ │ ├── Size.php
│ │ ├── TextGrid.php
│ │ └── TextGridRightAlign.php
│ ├── IComparable.php
│ ├── IOFactory.php
│ ├── NamedFormula.php
│ ├── NamedRange.php
│ ├── Reader/
│ │ ├── BaseReader.php
│ │ ├── Csv/
│ │ │ └── Delimiter.php
│ │ ├── Csv.php
│ │ ├── DefaultReadFilter.php
│ │ ├── Exception.php
│ │ ├── Gnumeric/
│ │ │ ├── PageSetup.php
│ │ │ ├── Properties.php
│ │ │ └── Styles.php
│ │ ├── Gnumeric.php
│ │ ├── Html.php
│ │ ├── IReadFilter.php
│ │ ├── IReader.php
│ │ ├── Ods/
│ │ │ ├── AutoFilter.php
│ │ │ ├── BaseLoader.php
│ │ │ ├── DefinedNames.php
│ │ │ ├── FormulaTranslator.php
│ │ │ ├── PageSettings.php
│ │ │ └── Properties.php
│ │ ├── Ods.php
│ │ ├── Security/
│ │ │ └── XmlScanner.php
│ │ ├── Slk.php
│ │ ├── Xls/
│ │ │ ├── Biff5.php
│ │ │ ├── Biff8.php
│ │ │ ├── Color/
│ │ │ │ ├── BIFF5.php
│ │ │ │ ├── BIFF8.php
│ │ │ │ └── BuiltIn.php
│ │ │ ├── Color.php
│ │ │ ├── ConditionalFormatting.php
│ │ │ ├── DataValidationHelper.php
│ │ │ ├── ErrorCode.php
│ │ │ ├── Escher.php
│ │ │ ├── ListFunctions.php
│ │ │ ├── LoadSpreadsheet.php
│ │ │ ├── MD5.php
│ │ │ ├── Mappings.php
│ │ │ ├── RC4.php
│ │ │ └── Style/
│ │ │ ├── Border.php
│ │ │ ├── CellAlignment.php
│ │ │ ├── CellFont.php
│ │ │ └── FillPattern.php
│ │ ├── Xls.php
│ │ ├── XlsBase.php
│ │ ├── Xlsx/
│ │ │ ├── AutoFilter.php
│ │ │ ├── BaseParserClass.php
│ │ │ ├── Chart.php
│ │ │ ├── ColumnAndRowAttributes.php
│ │ │ ├── ConditionalStyles.php
│ │ │ ├── DataValidations.php
│ │ │ ├── Hyperlinks.php
│ │ │ ├── Namespaces.php
│ │ │ ├── PageSetup.php
│ │ │ ├── Properties.php
│ │ │ ├── SharedFormula.php
│ │ │ ├── SheetViewOptions.php
│ │ │ ├── SheetViews.php
│ │ │ ├── Styles.php
│ │ │ ├── TableReader.php
│ │ │ ├── Theme.php
│ │ │ └── WorkbookView.php
│ │ ├── Xlsx.php
│ │ ├── Xml/
│ │ │ ├── DataValidations.php
│ │ │ ├── PageSettings.php
│ │ │ ├── Properties.php
│ │ │ ├── Style/
│ │ │ │ ├── Alignment.php
│ │ │ │ ├── Border.php
│ │ │ │ ├── Fill.php
│ │ │ │ ├── Font.php
│ │ │ │ ├── NumberFormat.php
│ │ │ │ └── StyleBase.php
│ │ │ └── Style.php
│ │ └── Xml.php
│ ├── ReferenceHelper.php
│ ├── RichText/
│ │ ├── ITextElement.php
│ │ ├── RichText.php
│ │ ├── Run.php
│ │ └── TextElement.php
│ ├── Settings.php
│ ├── Shared/
│ │ ├── CodePage.php
│ │ ├── Date.php
│ │ ├── Drawing.php
│ │ ├── Escher/
│ │ │ ├── DgContainer/
│ │ │ │ ├── SpgrContainer/
│ │ │ │ │ └── SpContainer.php
│ │ │ │ └── SpgrContainer.php
│ │ │ ├── DgContainer.php
│ │ │ ├── DggContainer/
│ │ │ │ ├── BstoreContainer/
│ │ │ │ │ ├── BSE/
│ │ │ │ │ │ └── Blip.php
│ │ │ │ │ └── BSE.php
│ │ │ │ └── BstoreContainer.php
│ │ │ └── DggContainer.php
│ │ ├── Escher.php
│ │ ├── File.php
│ │ ├── Font.php
│ │ ├── IntOrFloat.php
│ │ ├── OLE/
│ │ │ ├── ChainedBlockStream.php
│ │ │ ├── PPS/
│ │ │ │ ├── File.php
│ │ │ │ └── Root.php
│ │ │ └── PPS.php
│ │ ├── OLE.php
│ │ ├── OLERead.php
│ │ ├── PasswordHasher.php
│ │ ├── StringHelper.php
│ │ ├── TimeZone.php
│ │ ├── Trend/
│ │ │ ├── BestFit.php
│ │ │ ├── ExponentialBestFit.php
│ │ │ ├── LinearBestFit.php
│ │ │ ├── LogarithmicBestFit.php
│ │ │ ├── PolynomialBestFit.php
│ │ │ ├── PowerBestFit.php
│ │ │ └── Trend.php
│ │ ├── XMLWriter.php
│ │ └── Xls.php
│ ├── Spreadsheet.php
│ ├── Style/
│ │ ├── Alignment.php
│ │ ├── Border.php
│ │ ├── Borders.php
│ │ ├── Color.php
│ │ ├── Conditional.php
│ │ ├── ConditionalFormatting/
│ │ │ ├── CellMatcher.php
│ │ │ ├── CellStyleAssessor.php
│ │ │ ├── ConditionalColorScale.php
│ │ │ ├── ConditionalDataBar.php
│ │ │ ├── ConditionalDataBarExtension.php
│ │ │ ├── ConditionalFormatValueObject.php
│ │ │ ├── ConditionalFormattingRuleExtension.php
│ │ │ ├── ConditionalIconSet.php
│ │ │ ├── IconSetValues.php
│ │ │ ├── MergedCellStyle.php
│ │ │ ├── StyleMerger.php
│ │ │ ├── Wizard/
│ │ │ │ ├── Blanks.php
│ │ │ │ ├── CellValue.php
│ │ │ │ ├── DateValue.php
│ │ │ │ ├── Duplicates.php
│ │ │ │ ├── Errors.php
│ │ │ │ ├── Expression.php
│ │ │ │ ├── TextValue.php
│ │ │ │ ├── WizardAbstract.php
│ │ │ │ └── WizardInterface.php
│ │ │ └── Wizard.php
│ │ ├── Fill.php
│ │ ├── Font.php
│ │ ├── NumberFormat/
│ │ │ ├── BaseFormatter.php
│ │ │ ├── DateFormatter.php
│ │ │ ├── Formatter.php
│ │ │ ├── FractionFormatter.php
│ │ │ ├── NumberFormatter.php
│ │ │ ├── PercentageFormatter.php
│ │ │ └── Wizard/
│ │ │ ├── Accounting.php
│ │ │ ├── Currency.php
│ │ │ ├── CurrencyBase.php
│ │ │ ├── CurrencyNegative.php
│ │ │ ├── Date.php
│ │ │ ├── DateTime.php
│ │ │ ├── DateTimeWizard.php
│ │ │ ├── Duration.php
│ │ │ ├── Locale.php
│ │ │ ├── Number.php
│ │ │ ├── NumberBase.php
│ │ │ ├── Percentage.php
│ │ │ ├── Scientific.php
│ │ │ ├── Time.php
│ │ │ └── Wizard.php
│ │ ├── NumberFormat.php
│ │ ├── Protection.php
│ │ ├── RgbTint.php
│ │ ├── Style.php
│ │ └── Supervisor.php
│ ├── Theme.php
│ ├── Worksheet/
│ │ ├── AutoFilter/
│ │ │ ├── Column/
│ │ │ │ └── Rule.php
│ │ │ └── Column.php
│ │ ├── AutoFilter.php
│ │ ├── AutoFit.php
│ │ ├── BaseDrawing.php
│ │ ├── CellIterator.php
│ │ ├── Column.php
│ │ ├── ColumnCellIterator.php
│ │ ├── ColumnDimension.php
│ │ ├── ColumnIterator.php
│ │ ├── Dimension.php
│ │ ├── Drawing/
│ │ │ └── Shadow.php
│ │ ├── Drawing.php
│ │ ├── HeaderFooter.php
│ │ ├── HeaderFooterDrawing.php
│ │ ├── Iterator.php
│ │ ├── MemoryDrawing.php
│ │ ├── PageBreak.php
│ │ ├── PageMargins.php
│ │ ├── PageSetup.php
│ │ ├── Pane.php
│ │ ├── ProtectedRange.php
│ │ ├── Protection.php
│ │ ├── Row.php
│ │ ├── RowCellIterator.php
│ │ ├── RowDimension.php
│ │ ├── RowIterator.php
│ │ ├── SheetView.php
│ │ ├── Table/
│ │ │ ├── Column.php
│ │ │ ├── TableDxfsStyle.php
│ │ │ └── TableStyle.php
│ │ ├── Table.php
│ │ ├── Validations.php
│ │ └── Worksheet.php
│ └── Writer/
│ ├── BaseWriter.php
│ ├── Csv.php
│ ├── Exception.php
│ ├── Html.php
│ ├── IWriter.php
│ ├── Ods/
│ │ ├── AutoFilters.php
│ │ ├── Cell/
│ │ │ ├── Comment.php
│ │ │ └── Style.php
│ │ ├── Content.php
│ │ ├── Formula.php
│ │ ├── Meta.php
│ │ ├── MetaInf.php
│ │ ├── Mimetype.php
│ │ ├── NamedExpressions.php
│ │ ├── Settings.php
│ │ ├── Styles.php
│ │ ├── Thumbnails.php
│ │ └── WriterPart.php
│ ├── Ods.php
│ ├── Pdf/
│ │ ├── Dompdf.php
│ │ ├── Mpdf.php
│ │ ├── Tcpdf.php
│ │ └── TcpdfNoDie.php
│ ├── Pdf.php
│ ├── Xls/
│ │ ├── BIFFwriter.php
│ │ ├── CellDataValidation.php
│ │ ├── ConditionalHelper.php
│ │ ├── ErrorCode.php
│ │ ├── Escher.php
│ │ ├── Font.php
│ │ ├── Parser.php
│ │ ├── Style/
│ │ │ ├── CellAlignment.php
│ │ │ ├── CellBorder.php
│ │ │ └── CellFill.php
│ │ ├── Workbook.php
│ │ ├── Worksheet.php
│ │ └── Xf.php
│ ├── Xls.php
│ ├── Xlsx/
│ │ ├── AutoFilter.php
│ │ ├── Chart.php
│ │ ├── Comments.php
│ │ ├── ContentTypes.php
│ │ ├── DefinedNames.php
│ │ ├── DocProps.php
│ │ ├── Drawing.php
│ │ ├── FeaturePropertyBag.php
│ │ ├── FunctionPrefix.php
│ │ ├── Metadata.php
│ │ ├── Rels.php
│ │ ├── RelsRibbon.php
│ │ ├── RelsVBA.php
│ │ ├── RichDataDrawing.php
│ │ ├── StringTable.php
│ │ ├── Style.php
│ │ ├── Table.php
│ │ ├── Theme.php
│ │ ├── Workbook.php
│ │ ├── Worksheet.php
│ │ └── WriterPart.php
│ ├── Xlsx.php
│ ├── ZipStream0.php
│ ├── ZipStream2.php
│ └── ZipStream3.php
└── tests/
├── PhpSpreadsheetTests/
│ ├── A1LocaleGeneratorTest.php
│ ├── Calculation/
│ │ ├── ArrayFormulaTest.php
│ │ ├── ArrayTest.php
│ │ ├── AssociativityTest.php
│ │ ├── BinaryComparisonTest.php
│ │ ├── CalculationCoverageTest.php
│ │ ├── CalculationErrorTest.php
│ │ ├── CalculationFunctionListTest.php
│ │ ├── CalculationLoggingTest.php
│ │ ├── CalculationSettingsTest.php
│ │ ├── CalculationTest.php
│ │ ├── CustomFunction.php
│ │ ├── CustomFunctionTest.php
│ │ ├── CyclicTest.php
│ │ ├── DefinedNameConfusedForCellTest.php
│ │ ├── DefinedNameWithQuotePrefixedCellTest.php
│ │ ├── DefinedNamesCalculationTest.php
│ │ ├── Discussion1950Test.php
│ │ ├── Engine/
│ │ │ ├── FormattedNumberSlashTest.php
│ │ │ ├── FormattedNumberTest.php
│ │ │ ├── RangeTest.php
│ │ │ ├── StructuredReferenceSlashTest.php
│ │ │ └── StructuredReferenceTest.php
│ │ ├── FormulaAsStringTest.php
│ │ ├── FormulaParserTest.php
│ │ ├── Functions/
│ │ │ ├── Database/
│ │ │ │ ├── DAverageTest.php
│ │ │ │ ├── DCountATest.php
│ │ │ │ ├── DCountTest.php
│ │ │ │ ├── DGetTest.php
│ │ │ │ ├── DMaxTest.php
│ │ │ │ ├── DMinTest.php
│ │ │ │ ├── DProductTest.php
│ │ │ │ ├── DStDevPTest.php
│ │ │ │ ├── DStDevTest.php
│ │ │ │ ├── DSumTest.php
│ │ │ │ ├── DVarPTest.php
│ │ │ │ ├── DVarTest.php
│ │ │ │ └── SetupTeardownDatabases.php
│ │ │ ├── DateTime/
│ │ │ │ ├── DateDifTest.php
│ │ │ │ ├── DateTest.php
│ │ │ │ ├── DateValueTest.php
│ │ │ │ ├── DayTest.php
│ │ │ │ ├── Days360Test.php
│ │ │ │ ├── DaysTest.php
│ │ │ │ ├── EDateTest.php
│ │ │ │ ├── EoMonthTest.php
│ │ │ │ ├── HelpersTest.php
│ │ │ │ ├── HourTest.php
│ │ │ │ ├── IsoWeekNumTest.php
│ │ │ │ ├── MinuteTest.php
│ │ │ │ ├── MonthTest.php
│ │ │ │ ├── NetworkDaysTest.php
│ │ │ │ ├── NowTest.php
│ │ │ │ ├── SecondTest.php
│ │ │ │ ├── TimeTest.php
│ │ │ │ ├── TimeValueTest.php
│ │ │ │ ├── TodayTest.php
│ │ │ │ ├── WeekDayTest.php
│ │ │ │ ├── WeekNumTest.php
│ │ │ │ ├── WorkDayTest.php
│ │ │ │ ├── YearFracTest.php
│ │ │ │ └── YearTest.php
│ │ │ ├── Engineering/
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── BesselITest.php
│ │ │ │ ├── BesselJTest.php
│ │ │ │ ├── BesselKTest.php
│ │ │ │ ├── BesselYTest.php
│ │ │ │ ├── Bin2DecTest.php
│ │ │ │ ├── Bin2HexTest.php
│ │ │ │ ├── Bin2OctTest.php
│ │ │ │ ├── BitAndTest.php
│ │ │ │ ├── BitLShiftTest.php
│ │ │ │ ├── BitOrTest.php
│ │ │ │ ├── BitRShiftTest.php
│ │ │ │ ├── BitXorTest.php
│ │ │ │ ├── ComplexTest.php
│ │ │ │ ├── ConvertUoMTest.php
│ │ │ │ ├── Dec2BinTest.php
│ │ │ │ ├── Dec2HexTest.php
│ │ │ │ ├── Dec2OctTest.php
│ │ │ │ ├── DeltaTest.php
│ │ │ │ ├── ErfCTest.php
│ │ │ │ ├── ErfPreciseTest.php
│ │ │ │ ├── ErfTest.php
│ │ │ │ ├── GeStepTest.php
│ │ │ │ ├── Hex2BinTest.php
│ │ │ │ ├── Hex2DecTest.php
│ │ │ │ ├── Hex2OctTest.php
│ │ │ │ ├── ImAbsTest.php
│ │ │ │ ├── ImArgumentTest.php
│ │ │ │ ├── ImConjugateTest.php
│ │ │ │ ├── ImCosTest.php
│ │ │ │ ├── ImCoshTest.php
│ │ │ │ ├── ImCotTest.php
│ │ │ │ ├── ImCscTest.php
│ │ │ │ ├── ImCschTest.php
│ │ │ │ ├── ImDivTest.php
│ │ │ │ ├── ImExpTest.php
│ │ │ │ ├── ImLnTest.php
│ │ │ │ ├── ImLog10Test.php
│ │ │ │ ├── ImLog2Test.php
│ │ │ │ ├── ImPowerTest.php
│ │ │ │ ├── ImProductTest.php
│ │ │ │ ├── ImRealTest.php
│ │ │ │ ├── ImSecTest.php
│ │ │ │ ├── ImSechTest.php
│ │ │ │ ├── ImSinTest.php
│ │ │ │ ├── ImSinhTest.php
│ │ │ │ ├── ImSqrtTest.php
│ │ │ │ ├── ImSubTest.php
│ │ │ │ ├── ImSumTest.php
│ │ │ │ ├── ImTanTest.php
│ │ │ │ ├── ImaginaryTest.php
│ │ │ │ ├── Oct2BinTest.php
│ │ │ │ ├── Oct2DecTest.php
│ │ │ │ └── Oct2HexTest.php
│ │ │ ├── Financial/
│ │ │ │ ├── AccrintMTest.php
│ │ │ │ ├── AccrintTest.php
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── AmorDegRcTest.php
│ │ │ │ ├── AmorLincTest.php
│ │ │ │ ├── CoupDayBsTest.php
│ │ │ │ ├── CoupDaysNcTest.php
│ │ │ │ ├── CoupDaysTest.php
│ │ │ │ ├── CoupNcdTest.php
│ │ │ │ ├── CoupNumTest.php
│ │ │ │ ├── CoupPcdTest.php
│ │ │ │ ├── CumIpmtTest.php
│ │ │ │ ├── CumPrincTest.php
│ │ │ │ ├── DbTest.php
│ │ │ │ ├── DdbTest.php
│ │ │ │ ├── DiscTest.php
│ │ │ │ ├── DollarDeTest.php
│ │ │ │ ├── DollarFrTest.php
│ │ │ │ ├── EffectTest.php
│ │ │ │ ├── FvScheduleTest.php
│ │ │ │ ├── FvTest.php
│ │ │ │ ├── HelpersTest.php
│ │ │ │ ├── IPmtTest.php
│ │ │ │ ├── IntRateTest.php
│ │ │ │ ├── IrrTest.php
│ │ │ │ ├── IsPmtTest.php
│ │ │ │ ├── MirrTest.php
│ │ │ │ ├── NPerTest.php
│ │ │ │ ├── NominalTest.php
│ │ │ │ ├── NpvTest.php
│ │ │ │ ├── PDurationTest.php
│ │ │ │ ├── PmtTest.php
│ │ │ │ ├── PpmtTest.php
│ │ │ │ ├── PriceDiscTest.php
│ │ │ │ ├── PriceMatTest.php
│ │ │ │ ├── PriceTest.php
│ │ │ │ ├── PvTest.php
│ │ │ │ ├── RateTest.php
│ │ │ │ ├── ReceivedTest.php
│ │ │ │ ├── RriTest.php
│ │ │ │ ├── SlnTest.php
│ │ │ │ ├── SydTest.php
│ │ │ │ ├── TBillEqTest.php
│ │ │ │ ├── TBillPriceTest.php
│ │ │ │ ├── TBillYieldTest.php
│ │ │ │ ├── UsDollarTest.php
│ │ │ │ ├── XNpvTest.php
│ │ │ │ ├── XirrTest.php
│ │ │ │ ├── YieldDiscTest.php
│ │ │ │ └── YieldMatTest.php
│ │ │ ├── FormulaArguments.php
│ │ │ ├── Information/
│ │ │ │ ├── Div0Test.php
│ │ │ │ ├── ErrorTypeTest.php
│ │ │ │ ├── InfoTest.php
│ │ │ │ ├── IsBlankTest.php
│ │ │ │ ├── IsErrTest.php
│ │ │ │ ├── IsErrorTest.php
│ │ │ │ ├── IsEvenTest.php
│ │ │ │ ├── IsFormulaTest.php
│ │ │ │ ├── IsLogicalTest.php
│ │ │ │ ├── IsNaTest.php
│ │ │ │ ├── IsNonTextTest.php
│ │ │ │ ├── IsNumberTest.php
│ │ │ │ ├── IsOddTest.php
│ │ │ │ ├── IsRefTest.php
│ │ │ │ ├── IsTextTest.php
│ │ │ │ ├── NTest.php
│ │ │ │ ├── NaTest.php
│ │ │ │ ├── NameTest.php
│ │ │ │ ├── NanTest.php
│ │ │ │ ├── NullTest.php
│ │ │ │ ├── RefTest.php
│ │ │ │ ├── TypeTest.php
│ │ │ │ └── ValueTest.php
│ │ │ ├── Logical/
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── AndTest.php
│ │ │ │ ├── FalseTest.php
│ │ │ │ ├── IfErrorTest.php
│ │ │ │ ├── IfNaTest.php
│ │ │ │ ├── IfTest.php
│ │ │ │ ├── IfsTest.php
│ │ │ │ ├── NotTest.php
│ │ │ │ ├── OrTest.php
│ │ │ │ ├── SwitchTest.php
│ │ │ │ ├── TrueTest.php
│ │ │ │ └── XorTest.php
│ │ │ ├── LookupRef/
│ │ │ │ ├── AddressInternationalTest.php
│ │ │ │ ├── AddressTest.php
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── ChooseColsTest.php
│ │ │ │ ├── ChooseRowsTest.php
│ │ │ │ ├── ChooseTest.php
│ │ │ │ ├── ColumnOnSpreadsheetTest.php
│ │ │ │ ├── ColumnTest.php
│ │ │ │ ├── ColumnsOnSpreadsheetTest.php
│ │ │ │ ├── ColumnsTest.php
│ │ │ │ ├── DropTest.php
│ │ │ │ ├── ExpandTest.php
│ │ │ │ ├── FilterOnSpreadsheetTest.php
│ │ │ │ ├── FilterTest.php
│ │ │ │ ├── FormulaTextTest.php
│ │ │ │ ├── HLookupTest.php
│ │ │ │ ├── HStackTest.php
│ │ │ │ ├── HyperlinkTest.php
│ │ │ │ ├── IndexOnSpreadsheetTest.php
│ │ │ │ ├── IndexTest.php
│ │ │ │ ├── IndirectInternationalTest.php
│ │ │ │ ├── IndirectMissingCellTest.php
│ │ │ │ ├── IndirectTest.php
│ │ │ │ ├── LookupTest.php
│ │ │ │ ├── MatchTest.php
│ │ │ │ ├── MatrixHelperFunctionsTest.php
│ │ │ │ ├── OffsetTest.php
│ │ │ │ ├── RowOnSpreadsheetTest.php
│ │ │ │ ├── RowTest.php
│ │ │ │ ├── RowsOnSpreadsheetTest.php
│ │ │ │ ├── RowsTest.php
│ │ │ │ ├── SortBetterTest.php
│ │ │ │ ├── SortByBetterTest.php
│ │ │ │ ├── SortByTest.php
│ │ │ │ ├── SortTest.php
│ │ │ │ ├── TakeTest.php
│ │ │ │ ├── TocolTest.php
│ │ │ │ ├── TorowTest.php
│ │ │ │ ├── TransposeOnSpreadsheetTest.php
│ │ │ │ ├── TransposeTest.php
│ │ │ │ ├── UniqueTest.php
│ │ │ │ ├── VLookupTest.php
│ │ │ │ └── VStackTest.php
│ │ │ ├── MathTrig/
│ │ │ │ ├── AbsTest.php
│ │ │ │ ├── AcosTest.php
│ │ │ │ ├── AcoshTest.php
│ │ │ │ ├── AcotTest.php
│ │ │ │ ├── AcothTest.php
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── ArabicTest.php
│ │ │ │ ├── AsinTest.php
│ │ │ │ ├── AsinhTest.php
│ │ │ │ ├── Atan2Test.php
│ │ │ │ ├── AtanTest.php
│ │ │ │ ├── AtanhTest.php
│ │ │ │ ├── BaseTest.php
│ │ │ │ ├── CeilingMathTest.php
│ │ │ │ ├── CeilingPreciseTest.php
│ │ │ │ ├── CeilingTest.php
│ │ │ │ ├── CombinATest.php
│ │ │ │ ├── CombinTest.php
│ │ │ │ ├── CosTest.php
│ │ │ │ ├── CoshTest.php
│ │ │ │ ├── CotTest.php
│ │ │ │ ├── CothTest.php
│ │ │ │ ├── CscTest.php
│ │ │ │ ├── CschTest.php
│ │ │ │ ├── DegreesTest.php
│ │ │ │ ├── EvenTest.php
│ │ │ │ ├── ExpTest.php
│ │ │ │ ├── FactDoubleTest.php
│ │ │ │ ├── FactTest.php
│ │ │ │ ├── FloorMathTest.php
│ │ │ │ ├── FloorPreciseTest.php
│ │ │ │ ├── FloorTest.php
│ │ │ │ ├── GcdTest.php
│ │ │ │ ├── IntTest.php
│ │ │ │ ├── LcmTest.php
│ │ │ │ ├── LnTest.php
│ │ │ │ ├── Log10Test.php
│ │ │ │ ├── LogTest.php
│ │ │ │ ├── MInverseTest.php
│ │ │ │ ├── MMultTest.php
│ │ │ │ ├── MRoundTest.php
│ │ │ │ ├── MUnitTest.php
│ │ │ │ ├── MdeTermTest.php
│ │ │ │ ├── ModTest.php
│ │ │ │ ├── MultinomialTest.php
│ │ │ │ ├── OddTest.php
│ │ │ │ ├── PiTest.php
│ │ │ │ ├── PowerTest.php
│ │ │ │ ├── ProductTest.php
│ │ │ │ ├── QuotientTest.php
│ │ │ │ ├── RadiansTest.php
│ │ │ │ ├── RandArrayTest.php
│ │ │ │ ├── RandBetweenTest.php
│ │ │ │ ├── RandTest.php
│ │ │ │ ├── RomanTest.php
│ │ │ │ ├── RoundDownTest.php
│ │ │ │ ├── RoundTest.php
│ │ │ │ ├── RoundUpTest.php
│ │ │ │ ├── SecTest.php
│ │ │ │ ├── SechTest.php
│ │ │ │ ├── SequenceTest.php
│ │ │ │ ├── SeriesSumTest.php
│ │ │ │ ├── SignTest.php
│ │ │ │ ├── SinTest.php
│ │ │ │ ├── SinhTest.php
│ │ │ │ ├── SqrtPiTest.php
│ │ │ │ ├── SqrtTest.php
│ │ │ │ ├── SubTotalTest.php
│ │ │ │ ├── SumIfTest.php
│ │ │ │ ├── SumIfsTest.php
│ │ │ │ ├── SumProduct2Test.php
│ │ │ │ ├── SumProductTest.php
│ │ │ │ ├── SumSqTest.php
│ │ │ │ ├── SumTest.php
│ │ │ │ ├── SumX2MY2Test.php
│ │ │ │ ├── SumX2PY2Test.php
│ │ │ │ ├── SumXMY2Test.php
│ │ │ │ ├── TanTest.php
│ │ │ │ ├── TanhTest.php
│ │ │ │ └── TruncTest.php
│ │ │ ├── Statistical/
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── AveDevTest.php
│ │ │ │ ├── AverageATest.php
│ │ │ │ ├── AverageIf2Test.php
│ │ │ │ ├── AverageIfTest.php
│ │ │ │ ├── AverageIfsTest.php
│ │ │ │ ├── AverageTest.php
│ │ │ │ ├── BetaDistTest.php
│ │ │ │ ├── BetaInvTest.php
│ │ │ │ ├── BinomDistRangeTest.php
│ │ │ │ ├── BinomDistTest.php
│ │ │ │ ├── BinomInvTest.php
│ │ │ │ ├── ChiDistLeftTailTest.php
│ │ │ │ ├── ChiDistRightTailTest.php
│ │ │ │ ├── ChiInvLeftTailTest.php
│ │ │ │ ├── ChiInvRightTailTest.php
│ │ │ │ ├── ChiTestTest.php
│ │ │ │ ├── ConfidenceTest.php
│ │ │ │ ├── CorrelTest.php
│ │ │ │ ├── CountATest.php
│ │ │ │ ├── CountBlankTest.php
│ │ │ │ ├── CountIfTest.php
│ │ │ │ ├── CountIfsTest.php
│ │ │ │ ├── CountTest.php
│ │ │ │ ├── CovarTest.php
│ │ │ │ ├── DevSqTest.php
│ │ │ │ ├── ExponDistTest.php
│ │ │ │ ├── FDistTest.php
│ │ │ │ ├── FisherInvTest.php
│ │ │ │ ├── FisherTest.php
│ │ │ │ ├── ForecastTest.php
│ │ │ │ ├── GammaDistTest.php
│ │ │ │ ├── GammaInvTest.php
│ │ │ │ ├── GammaLnTest.php
│ │ │ │ ├── GammaTest.php
│ │ │ │ ├── GaussTest.php
│ │ │ │ ├── GeoMeanTest.php
│ │ │ │ ├── GrowthTest.php
│ │ │ │ ├── HarMeanTest.php
│ │ │ │ ├── HypGeomDistTest.php
│ │ │ │ ├── InterceptTest.php
│ │ │ │ ├── KurtTest.php
│ │ │ │ ├── LargeTest.php
│ │ │ │ ├── LinEstTest.php
│ │ │ │ ├── LogEstTest.php
│ │ │ │ ├── LogInvTest.php
│ │ │ │ ├── LogNormDist2Test.php
│ │ │ │ ├── LogNormDistTest.php
│ │ │ │ ├── MaxATest.php
│ │ │ │ ├── MaxIfsTest.php
│ │ │ │ ├── MaxTest.php
│ │ │ │ ├── MedianTest.php
│ │ │ │ ├── MinATest.php
│ │ │ │ ├── MinIfsTest.php
│ │ │ │ ├── MinTest.php
│ │ │ │ ├── ModeTest.php
│ │ │ │ ├── NegBinomDistTest.php
│ │ │ │ ├── NormDistTest.php
│ │ │ │ ├── NormInvTest.php
│ │ │ │ ├── NormSDist2Test.php
│ │ │ │ ├── NormSDistTest.php
│ │ │ │ ├── NormSInvTest.php
│ │ │ │ ├── PercentRankTest.php
│ │ │ │ ├── PercentileTest.php
│ │ │ │ ├── PermutTest.php
│ │ │ │ ├── PermutationATest.php
│ │ │ │ ├── PoissonTest.php
│ │ │ │ ├── QuartileTest.php
│ │ │ │ ├── RankTest.php
│ │ │ │ ├── RsqTest.php
│ │ │ │ ├── SkewTest.php
│ │ │ │ ├── SlopeTest.php
│ │ │ │ ├── SmallTest.php
│ │ │ │ ├── StDevATest.php
│ │ │ │ ├── StDevPATest.php
│ │ │ │ ├── StDevPTest.php
│ │ │ │ ├── StDevTest.php
│ │ │ │ ├── StandardizeTest.php
│ │ │ │ ├── SteyxTest.php
│ │ │ │ ├── TDist2TTest.php
│ │ │ │ ├── TDistRTTest.php
│ │ │ │ ├── TDistTest.php
│ │ │ │ ├── TDotInvDot2TTest.php
│ │ │ │ ├── TDotInvTest.php
│ │ │ │ ├── TdotDistFalseTest.php
│ │ │ │ ├── TdotDistTrueTest.php
│ │ │ │ ├── TinvTest.php
│ │ │ │ ├── TrendTest.php
│ │ │ │ ├── TrimMeanTest.php
│ │ │ │ ├── VarATest.php
│ │ │ │ ├── VarPATest.php
│ │ │ │ ├── VarPTest.php
│ │ │ │ ├── VarTest.php
│ │ │ │ ├── WeibullTest.php
│ │ │ │ └── ZTestTest.php
│ │ │ ├── TextData/
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── ArrayToTextTest.php
│ │ │ │ ├── BahtTest.php
│ │ │ │ ├── CharNonPrintableTest.php
│ │ │ │ ├── CharTest.php
│ │ │ │ ├── CleanTest.php
│ │ │ │ ├── CodeTest.php
│ │ │ │ ├── ConcatTest.php
│ │ │ │ ├── ConcatenateGnumericTest.php
│ │ │ │ ├── ConcatenateRangeTest.php
│ │ │ │ ├── ConcatenateTest.php
│ │ │ │ ├── DollarTest.php
│ │ │ │ ├── ErrorPropagationTest.php
│ │ │ │ ├── ExactTest.php
│ │ │ │ ├── FindTest.php
│ │ │ │ ├── FixedTest.php
│ │ │ │ ├── LeftTest.php
│ │ │ │ ├── LenTest.php
│ │ │ │ ├── LowerTest.php
│ │ │ │ ├── MidTest.php
│ │ │ │ ├── NumberValueTest.php
│ │ │ │ ├── OpenOfficeTest.php
│ │ │ │ ├── ProperTest.php
│ │ │ │ ├── ReplaceTest.php
│ │ │ │ ├── ReptTest.php
│ │ │ │ ├── RightTest.php
│ │ │ │ ├── SearchTest.php
│ │ │ │ ├── SubstituteTest.php
│ │ │ │ ├── TTest.php
│ │ │ │ ├── TextAfterTest.php
│ │ │ │ ├── TextBeforeTest.php
│ │ │ │ ├── TextJoinTest.php
│ │ │ │ ├── TextSplitTest.php
│ │ │ │ ├── TextTest.php
│ │ │ │ ├── TrimTest.php
│ │ │ │ ├── UnicharTest.php
│ │ │ │ ├── UnicodeTest.php
│ │ │ │ ├── UpperTest.php
│ │ │ │ ├── ValueTest.php
│ │ │ │ └── ValueToTextTest.php
│ │ │ └── Web/
│ │ │ ├── UrlEncodeTest.php
│ │ │ └── WebServiceTest.php
│ │ ├── FunctionsTest.php
│ │ ├── InternalFunctionsTest.php
│ │ ├── Issue4451Test.php
│ │ ├── Issue4656Test.php
│ │ ├── Issue606Test.php
│ │ ├── MergedCellTest.php
│ │ ├── MissingArgumentsTest.php
│ │ ├── NullEqualsZeroTest.php
│ │ ├── ParseFormulaTest.php
│ │ ├── RefErrorTest.php
│ │ ├── RowColumnReferenceTest.php
│ │ ├── StringLengthTest.php
│ │ ├── StructuredReferenceFormulaTest.php
│ │ ├── TranslationTest.php
│ │ └── XlfnFunctionsTest.php
│ ├── Cell/
│ │ ├── AddressHelperTest.php
│ │ ├── AddressRangeTest.php
│ │ ├── AdvancedValueBinderTest.php
│ │ ├── CellAddressTest.php
│ │ ├── CellArrayFormulaTest.php
│ │ ├── CellDetachTest.php
│ │ ├── CellFormulaTest.php
│ │ ├── CellRangeTest.php
│ │ ├── CellTest.php
│ │ ├── ColumnRangeTest.php
│ │ ├── ConvertSpecialArrayTest.php
│ │ ├── CoordinateTest.php
│ │ ├── DataType2Test.php
│ │ ├── DataTypeTest.php
│ │ ├── DataValidationTest.php
│ │ ├── DataValidator2Test.php
│ │ ├── DataValidator3Test.php
│ │ ├── DataValidatorTest.php
│ │ ├── DefaultValueBinderTest.php
│ │ ├── Hyperlink2Test.php
│ │ ├── HyperlinkTest.php
│ │ ├── RowRangeTest.php
│ │ ├── SetValueExplicitCellTest.php
│ │ ├── StringValueBinder2Test.php
│ │ ├── StringValueBinderTest.php
│ │ ├── StringableObject.php
│ │ └── ValueBinderWithOverriddenDataTypeForValue.php
│ ├── CellReferenceHelperTest.php
│ ├── Chart/
│ │ ├── AxisGlowTest.php
│ │ ├── AxisPropertiesTest.php
│ │ ├── AxisShadowTest.php
│ │ ├── BarChartCustomColorsTest.php
│ │ ├── ChartBorderTest.php
│ │ ├── ChartCloneTest.php
│ │ ├── ChartMethodTest.php
│ │ ├── Charts32CatAxValAxTest.php
│ │ ├── Charts32ColoredAxisLabelTest.php
│ │ ├── Charts32DsvGlowTest.php
│ │ ├── Charts32DsvLabelsTest.php
│ │ ├── Charts32ScatterTest.php
│ │ ├── Charts32XmlTest.php
│ │ ├── ChartsByNameTest.php
│ │ ├── ChartsDynamicTitleTest.php
│ │ ├── ChartsOpenpyxlTest.php
│ │ ├── ChartsTitleTest.php
│ │ ├── ColorTest.php
│ │ ├── DataSeriesColorTest.php
│ │ ├── DataSeriesValues2Test.php
│ │ ├── DataSeriesValuesTest.php
│ │ ├── DisplayBlanksAsTest.php
│ │ ├── GridlinesLineStyleTest.php
│ │ ├── GridlinesShadowGlowTest.php
│ │ ├── Issue2077Test.php
│ │ ├── Issue2506Test.php
│ │ ├── Issue2931Test.php
│ │ ├── Issue2965Test.php
│ │ ├── Issue316Test.php
│ │ ├── Issue3397Test.php
│ │ ├── Issue3833Test.php
│ │ ├── Issue4201Test.php
│ │ ├── Issue562Test.php
│ │ ├── Issue589Test.php
│ │ ├── LayoutEffectsTest.php
│ │ ├── LayoutTest.php
│ │ ├── LegendColorTest.php
│ │ ├── LegendTest.php
│ │ ├── LineStylesTest.php
│ │ ├── MultiplierTest.php
│ │ ├── PR3163Test.php
│ │ ├── PieFillTest.php
│ │ ├── PlotAreaTest.php
│ │ ├── RenderTest.php
│ │ ├── RoundedCornersTest.php
│ │ ├── ShadowPresetsTest.php
│ │ ├── TitleTest.php
│ │ └── TrendLineTest.php
│ ├── Collection/
│ │ ├── Cells2Test.php
│ │ ├── CellsTest.php
│ │ └── SimpleCache3xxx.php
│ ├── CommentTest.php
│ ├── Custom/
│ │ └── ComplexAssert.php
│ ├── CustomReader.php
│ ├── CustomWriter.php
│ ├── DefinedNameFormulaTest.php
│ ├── DefinedNameTest.php
│ ├── Document/
│ │ ├── EpochTest.php
│ │ ├── PropertiesTest.php
│ │ └── SecurityTest.php
│ ├── DocumentGeneratorTest.php
│ ├── Features/
│ │ └── AutoFilter/
│ │ └── Xlsx/
│ │ └── BasicLoadTest.php
│ ├── FloatImprecisionTest.php
│ ├── Functional/
│ │ ├── AbstractFunctional.php
│ │ ├── ActiveSheetTest.php
│ │ ├── ArrayFunctionsCellTest.php
│ │ ├── ArrayFunctionsSpillTest.php
│ │ ├── ColumnWidthTest.php
│ │ ├── CommentsTest.php
│ │ ├── ConditionalStopIfTrueTest.php
│ │ ├── ConditionalTextTest.php
│ │ ├── DrawingImageHyperlinkTest.php
│ │ ├── EnclosureTest.php
│ │ ├── FreezePaneTest.php
│ │ ├── MergedCellsTest.php
│ │ ├── PrintAreaTest.php
│ │ ├── ReadBlankCellsTest.php
│ │ ├── ReadFilterFilter.php
│ │ ├── ReadFilterTest.php
│ │ ├── SelectedCellsTest.php
│ │ ├── StreamTest.php
│ │ ├── TypeAttributePreservationTest.php
│ │ └── WorkbookViewAttributesTest.php
│ ├── HashTableTest.php
│ ├── Helper/
│ │ ├── DimensionTest.php
│ │ ├── HandlerTest.php
│ │ ├── HtmlTest.php
│ │ ├── SampleCoverageTest.php
│ │ ├── SampleTest.php
│ │ ├── TextGridExtended.php
│ │ └── TextGridTest.php
│ ├── IOFactoryRegisterTest.php
│ ├── IOFactoryTest.php
│ ├── Issue1449Test.php
│ ├── Issue4521Test.php
│ ├── NamedFormulaTest.php
│ ├── NamedRange2Test.php
│ ├── NamedRange3Test.php
│ ├── NamedRangeTest.php
│ ├── Reader/
│ │ ├── BaseNoLoad.php
│ │ ├── BaseNoLoadTest.php
│ │ ├── CreateBlankSheetIfNoneReadTest.php
│ │ ├── Csv/
│ │ │ ├── BinderTest.php
│ │ │ ├── CsvCallbackTest.php
│ │ │ ├── CsvContiguousFilter.php
│ │ │ ├── CsvContiguousTest.php
│ │ │ ├── CsvEncodingTest.php
│ │ │ ├── CsvIssue2232Test.php
│ │ │ ├── CsvIssue2840Test.php
│ │ │ ├── CsvLineEndingTest.php
│ │ │ ├── CsvLoadFromStringTest.php
│ │ │ ├── CsvNumberFormatLocaleTest.php
│ │ │ ├── CsvNumberFormatTest.php
│ │ │ ├── CsvTest.php
│ │ │ ├── NotHtmlTest.php
│ │ │ └── Php9Test.php
│ │ ├── Gnumeric/
│ │ │ ├── ArrayFormula2Test.php
│ │ │ ├── ArrayFormulaTest.php
│ │ │ ├── AutoFilterTest.php
│ │ │ ├── DefinedNameTest.php
│ │ │ ├── GnumericFilter.php
│ │ │ ├── GnumericInfoTest.php
│ │ │ ├── GnumericLoadTest.php
│ │ │ ├── GnumericStylesTest.php
│ │ │ ├── HiddenWorksheetTest.php
│ │ │ └── PageSetupTest.php
│ │ ├── Html/
│ │ │ ├── BinderTest.php
│ │ │ ├── DataFormulaTest.php
│ │ │ ├── DirectionTest.php
│ │ │ ├── HtmlBorderTest.php
│ │ │ ├── HtmlCharsetTest.php
│ │ │ ├── HtmlExtend.php
│ │ │ ├── HtmlHelper.php
│ │ │ ├── HtmlImage2Test.php
│ │ │ ├── HtmlImageTest.php
│ │ │ ├── HtmlLibxmlTest.php
│ │ │ ├── HtmlLoadStringTest.php
│ │ │ ├── HtmlPhpunit10Test.php
│ │ │ ├── HtmlTagsTest.php
│ │ │ ├── HtmlTest.php
│ │ │ ├── Issue1107Test.php
│ │ │ ├── Issue1284Test.php
│ │ │ ├── Issue2029Test.php
│ │ │ ├── Issue2810Test.php
│ │ │ ├── Issue2942Test.php
│ │ │ ├── OpacityTest.php
│ │ │ ├── StyleCheckBoxTest.php
│ │ │ └── ViewportTest.php
│ │ ├── Ods/
│ │ │ ├── AlignmentStyleTest.php
│ │ │ ├── ArrayFormulaTest.php
│ │ │ ├── ArrayTest.php
│ │ │ ├── AutoFilterTest.php
│ │ │ ├── BooleanDataTest.php
│ │ │ ├── BorderStyleTest.php
│ │ │ ├── CeilingFloorTest.php
│ │ │ ├── ColGroupTest.php
│ │ │ ├── CurrencyTest.php
│ │ │ ├── DefinedNamesTest.php
│ │ │ ├── EmptyFileTest.php
│ │ │ ├── FontStyleTest.php
│ │ │ ├── FormulaTranslatorTest.php
│ │ │ ├── HiddenMergeCellsTest.php
│ │ │ ├── HiddenWorksheetTest.php
│ │ │ ├── HyperlinkTest.php
│ │ │ ├── InvalidFileTest.php
│ │ │ ├── Issue2810Test.php
│ │ │ ├── Issue3721Test.php
│ │ │ ├── Issue4099Test.php
│ │ │ ├── Issue4435Test.php
│ │ │ ├── Issue804Test.php
│ │ │ ├── MergeRangeTest.php
│ │ │ ├── MultiLineCommentTest.php
│ │ │ ├── NestedTableRowTest.php
│ │ │ ├── NumberFormatCallbackTest.php
│ │ │ ├── OdsInfoTest.php
│ │ │ ├── OdsPropertiesTest.php
│ │ │ ├── OdsTest.php
│ │ │ ├── OldCalculatedTest.php
│ │ │ ├── PageSetupBug1772Test.php
│ │ │ ├── PageSetupTest.php
│ │ │ ├── ProtectionStyleTest.php
│ │ │ ├── RepeatEmptyCellsAndRowsTest.php
│ │ │ └── RepeatedColumnsTest.php
│ │ ├── Security/
│ │ │ └── XmlScannerTest.php
│ │ ├── Slk/
│ │ │ ├── BinderTest.php
│ │ │ ├── SlkCommentsTest.php
│ │ │ ├── SlkSharedFormulasTest.php
│ │ │ └── SlkTest.php
│ │ ├── Utility/
│ │ │ └── File.php
│ │ ├── Xls/
│ │ │ ├── Biff8CoverTest.php
│ │ │ ├── ColorMapTest.php
│ │ │ ├── ColourTest.php
│ │ │ ├── ConditionalBorderTest.php
│ │ │ ├── ConditionalFormattingBasicTest.php
│ │ │ ├── ConditionalFormattingExpressionTest.php
│ │ │ ├── ConditionalItalicTest.php
│ │ │ ├── DataValidationTest.php
│ │ │ ├── DateReaderTest.php
│ │ │ ├── DefinedNameTest.php
│ │ │ ├── ErrorCodeMapTest.php
│ │ │ ├── FormulasTest.php
│ │ │ ├── HiddenMergeCellsTest.php
│ │ │ ├── HiddenWorksheetTest.php
│ │ │ ├── InfoNamesTest.php
│ │ │ ├── IsOddTest.php
│ │ │ ├── Issue2463Test.php
│ │ │ ├── Issue3202Test.php
│ │ │ ├── Issue4356Test.php
│ │ │ ├── LoadSheetsOnlyTest.php
│ │ │ ├── Md5Test.php
│ │ │ ├── NonExistentFileTest.php
│ │ │ ├── NumberFormatGeneralTest.php
│ │ │ ├── PageBreakTest.php
│ │ │ ├── PageSetupTest.php
│ │ │ ├── PasswordTest.php
│ │ │ ├── Pr607Test.php
│ │ │ ├── Rc4Test.php
│ │ │ ├── RichTextSizeTest.php
│ │ │ ├── SheetProtectionTest.php
│ │ │ ├── WholeRowAndColumnTest.php
│ │ │ ├── XlsBugPr3734Test.php
│ │ │ ├── XlsSpecialCodePage.php
│ │ │ └── XlsTest.php
│ │ ├── Xlsx/
│ │ │ ├── AbsolutePathTest.php
│ │ │ ├── AlignmentTest.php
│ │ │ ├── ApostropheTest.php
│ │ │ ├── AutoFilter2Test.php
│ │ │ ├── AutoFilterEvaluateTest.php
│ │ │ ├── AutoFilterTest.php
│ │ │ ├── ChartSheetTest.php
│ │ │ ├── ColorTabTest.php
│ │ │ ├── CommentTest.php
│ │ │ ├── CondNumFmtTest.php
│ │ │ ├── ConditionalBorderTest.php
│ │ │ ├── ConditionalColorScaleTest.php
│ │ │ ├── ConditionalFormattingDataBarXlsxTest.php
│ │ │ ├── ConditionalIconSetTest.php
│ │ │ ├── ConditionalNoFormatSetTest.php
│ │ │ ├── ConditionalPriority2Test.php
│ │ │ ├── ConditionalPriorityTest.php
│ │ │ ├── ConditionalTest.php
│ │ │ ├── CoverageGapsTest.php
│ │ │ ├── DataValidationBooleanValueTest.php
│ │ │ ├── DataValidationTest.php
│ │ │ ├── DateReaderTest.php
│ │ │ ├── DefaultFillTest.php
│ │ │ ├── DefaultFontTest.php
│ │ │ ├── DirectorySeparatorTest.php
│ │ │ ├── DrawingInCellTest.php
│ │ │ ├── DrawingOneCellAnchorTest.php
│ │ │ ├── EmptyFileTest.php
│ │ │ ├── ExplicitDateTest.php
│ │ │ ├── GridlinesTest.php
│ │ │ ├── GroupByLimitedTest.php
│ │ │ ├── HiddenMergeCellsTest.php
│ │ │ ├── HiddenWorksheetTest.php
│ │ │ ├── HyperlinkTest.php
│ │ │ ├── IgnoredErrorTest.php
│ │ │ ├── InvalidFileTest.php
│ │ │ ├── Issue1482Test.php
│ │ │ ├── Issue1637Test.php
│ │ │ ├── Issue2301Test.php
│ │ │ ├── Issue2331Test.php
│ │ │ ├── Issue2362Test.php
│ │ │ ├── Issue2387Test.php
│ │ │ ├── Issue2450Test.php
│ │ │ ├── Issue2488Test.php
│ │ │ ├── Issue2490Test.php
│ │ │ ├── Issue2494Test.php
│ │ │ ├── Issue2501Test.php
│ │ │ ├── Issue2516Test.php
│ │ │ ├── Issue2542Test.php
│ │ │ ├── Issue2581Test.php
│ │ │ ├── Issue2778Test.php
│ │ │ ├── Issue2885Test.php
│ │ │ ├── Issue3126Test.php
│ │ │ ├── Issue3145Test.php
│ │ │ ├── Issue3277Test.php
│ │ │ ├── Issue3435Test.php
│ │ │ ├── Issue3464Test.php
│ │ │ ├── Issue3495Test.php
│ │ │ ├── Issue3534Test.php
│ │ │ ├── Issue3552Test.php
│ │ │ ├── Issue3553Test.php
│ │ │ ├── Issue3613Test.php
│ │ │ ├── Issue3665Test.php
│ │ │ ├── Issue3679ImgTest.php
│ │ │ ├── Issue3720Test.php
│ │ │ ├── Issue3730Test.php
│ │ │ ├── Issue3767Test.php
│ │ │ ├── Issue3770Test.php
│ │ │ ├── Issue3807Test.php
│ │ │ ├── Issue3863Test.php
│ │ │ ├── Issue3982Test.php
│ │ │ ├── Issue4039Test.php
│ │ │ ├── Issue4049Test.php
│ │ │ ├── Issue4063Test.php
│ │ │ ├── Issue4248Test.php
│ │ │ ├── Issue4356Test.php
│ │ │ ├── Issue4375Test.php
│ │ │ ├── Issue4415Test.php
│ │ │ ├── Issue4416Filter.php
│ │ │ ├── Issue4416Test.php
│ │ │ ├── Issue4477Test.php
│ │ │ ├── Issue4505Test.php
│ │ │ ├── Issue4629Test.php
│ │ │ ├── Issue4800Test.php
│ │ │ ├── Issue731Test.php
│ │ │ ├── LoadSheetsOnlyTest.php
│ │ │ ├── MySpreadsheet.php
│ │ │ ├── MyXlsxReader.php
│ │ │ ├── MyXlsxTest.php
│ │ │ ├── NamedRangeTest.php
│ │ │ ├── NamespaceIssue2109bTest.php
│ │ │ ├── NamespaceNonStdTest.php
│ │ │ ├── NamespaceOpenpyxl35Test.php
│ │ │ ├── NamespacePurlTest.php
│ │ │ ├── NamespaceStdTest.php
│ │ │ ├── NumericCellTypeTest.php
│ │ │ ├── OctothorpeTest.php
│ │ │ ├── OddColumnReadFilter.php
│ │ │ ├── OutlineTest.php
│ │ │ ├── PageSetup2Test.php
│ │ │ ├── PageSetupTest.php
│ │ │ ├── PropertiesTest.php
│ │ │ ├── ReadDynamTest.php
│ │ │ ├── RgbTintTest.php
│ │ │ ├── RibbonTest.php
│ │ │ ├── RichTextTest.php
│ │ │ ├── RowBreakTest.php
│ │ │ ├── SharedFormulaTest.php
│ │ │ ├── SharedFormulaeTest.php
│ │ │ ├── SheetProtectionTest.php
│ │ │ ├── SheetsXlsxChartTest.php
│ │ │ ├── SplitsTest.php
│ │ │ ├── TableTest.php
│ │ │ ├── URLImageTest.php
│ │ │ ├── UnderscoreTest.php
│ │ │ ├── VerticalAlignTest.php
│ │ │ ├── VmlTest.php
│ │ │ ├── WorksheetInfoNamesTest.php
│ │ │ ├── Xlsx2Test.php
│ │ │ ├── XlsxRootZipFilesTest.php
│ │ │ └── XlsxTest.php
│ │ └── Xml/
│ │ ├── ArrayFormulaTest.php
│ │ ├── DataValidationsTest.php
│ │ ├── HtmlEntitiesLoadTest.php
│ │ ├── Issue4448Test.php
│ │ ├── PageSetupTest.php
│ │ ├── ReadOrderTest.php
│ │ ├── SplitsTest.php
│ │ ├── XmlActiveSheetTest.php
│ │ ├── XmlColSpanTest.php
│ │ ├── XmlColumnRowHiddenTest.php
│ │ ├── XmlFilter.php
│ │ ├── XmlFontBoldItalicTest.php
│ │ ├── XmlFreezePanesTest.php
│ │ ├── XmlInfoTest.php
│ │ ├── XmlIssue4000Test.php
│ │ ├── XmlIssue4002Test.php
│ │ ├── XmlLoadTest.php
│ │ ├── XmlOddTest.php
│ │ ├── XmlPropertiesTest.php
│ │ ├── XmlProtectionTest.php
│ │ ├── XmlRichTextTest.php
│ │ ├── XmlStyleCoverageTest.php
│ │ ├── XmlStylesTest.php
│ │ ├── XmlTest.php
│ │ └── XmlTopLeftTest.php
│ ├── RefRangeTest.php
│ ├── ReferenceHelper2Test.php
│ ├── ReferenceHelper3Test.php
│ ├── ReferenceHelper4Test.php
│ ├── ReferenceHelper5Test.php
│ ├── ReferenceHelperDVTest.php
│ ├── ReferenceHelperTest.php
│ ├── RichTextTest.php
│ ├── SettingsTest.php
│ ├── Shared/
│ │ ├── CodePageTest.php
│ │ ├── Date2Test.php
│ │ ├── DateTest.php
│ │ ├── DgContainerTest.php
│ │ ├── DggContainerTest.php
│ │ ├── DrawingTest.php
│ │ ├── ExactFontTest.php
│ │ ├── FileTest.php
│ │ ├── Font2Test.php
│ │ ├── Font3Test.php
│ │ ├── FontFileNameTest.php
│ │ ├── FontTest.php
│ │ ├── Issue1324Test.php
│ │ ├── Issue347Test.php
│ │ ├── Issue4696Test.php
│ │ ├── OLEPhpunit10Test.php
│ │ ├── OLEReadTest.php
│ │ ├── OLETest.php
│ │ ├── PasswordHasherTest.php
│ │ ├── PasswordReloadTest.php
│ │ ├── SpgrContainerTest.php
│ │ ├── StringHelperInvalidCharTest.php
│ │ ├── StringHelperLocale2Test.php
│ │ ├── StringHelperLocaleTest.php
│ │ ├── StringHelperNoIconv.php
│ │ ├── StringHelperNoIconv2.php
│ │ ├── StringHelperNoIconv3.php
│ │ ├── StringHelperNoIntl.php
│ │ ├── StringHelperTest.php
│ │ ├── TimeZoneTest.php
│ │ ├── Trend/
│ │ │ ├── BestFitTest.php
│ │ │ ├── ExponentialBestFitTest.php
│ │ │ └── LinearBestFitTest.php
│ │ ├── XMLWriterNoUri.php
│ │ ├── XlsTest.php
│ │ └── XmlWriterTest.php
│ ├── SpreadsheetCopyCloneTest.php
│ ├── SpreadsheetCoverageTest.php
│ ├── SpreadsheetDuplicateSheetTest.php
│ ├── SpreadsheetSerializeTest.php
│ ├── SpreadsheetTest.php
│ ├── Style/
│ │ ├── AlignmentMiddleTest.php
│ │ ├── AlignmentTest.php
│ │ ├── BorderRangeTest.php
│ │ ├── BorderTest.php
│ │ ├── ColorIndexTest.php
│ │ ├── ColorTest.php
│ │ ├── ConditionalBoolTest.php
│ │ ├── ConditionalFormatting/
│ │ │ ├── CellMatcherTest.php
│ │ │ ├── PR3946Test.php
│ │ │ └── Wizard/
│ │ │ ├── BlankWizardTest.php
│ │ │ ├── CellValueWizardTest.php
│ │ │ ├── DateValueWizardTest.php
│ │ │ ├── DuplicatesWizardTest.php
│ │ │ ├── ErrorWizardTest.php
│ │ │ ├── ExpressionWizardTest.php
│ │ │ ├── TextValueWizardTest.php
│ │ │ └── WizardFactoryTest.php
│ │ ├── ConditionalTest.php
│ │ ├── ExportArrayTest.php
│ │ ├── FillTest.php
│ │ ├── FontTest.php
│ │ ├── NumberFormat/
│ │ │ └── Wizard/
│ │ │ ├── AccountingTest.php
│ │ │ ├── CurrencyTest.php
│ │ │ ├── DateTest.php
│ │ │ ├── DateTimeTest.php
│ │ │ ├── DurationTest.php
│ │ │ ├── NumberBase2.php
│ │ │ ├── NumberTest.php
│ │ │ ├── PercentageTest.php
│ │ │ ├── ScientificTest.php
│ │ │ └── TimeTest.php
│ │ ├── NumberFormatBuiltinTest.php
│ │ ├── NumberFormatFractionalSecondTest.php
│ │ ├── NumberFormatRoundTest.php
│ │ ├── NumberFormatSystemDateTimeTest.php
│ │ ├── NumberFormatTest.php
│ │ ├── ReplaceBuiltinNumberFormatTest.php
│ │ └── StyleTest.php
│ ├── Worksheet/
│ │ ├── ApplyStylesTest.php
│ │ ├── AutoFilter/
│ │ │ ├── AutoFilterAverageTop10Test.php
│ │ │ ├── AutoFilterCustomNumericTest.php
│ │ │ ├── AutoFilterCustomTextTest.php
│ │ │ ├── AutoFilterMonthTest.php
│ │ │ ├── AutoFilterQuarterTest.php
│ │ │ ├── AutoFilterTest.php
│ │ │ ├── AutoFilterTodayTest.php
│ │ │ ├── AutoFilterWeekTest.php
│ │ │ ├── AutoFilterYearTest.php
│ │ │ ├── ColumnTest.php
│ │ │ ├── DateGroupTest.php
│ │ │ ├── DeleteAutoFilterTest.php
│ │ │ ├── RuleCustomTest.php
│ │ │ ├── RuleDateGroupTest.php
│ │ │ ├── RuleTest.php
│ │ │ └── SetupTeardown.php
│ │ ├── AutoSizeTest.php
│ │ ├── ByColumnAndRowTest.php
│ │ ├── ByColumnAndRowUndeprecatedTest.php
│ │ ├── CloneTest.php
│ │ ├── ColumnCellIterator2Test.php
│ │ ├── ColumnCellIteratorTest.php
│ │ ├── ColumnDimension2Test.php
│ │ ├── ColumnDimension3Test.php
│ │ ├── ColumnDimensionTest.php
│ │ ├── ColumnIteratorEmptyTest.php
│ │ ├── ColumnIteratorTest.php
│ │ ├── ColumnRowStyleTest.php
│ │ ├── ColumnTest.php
│ │ ├── ConditionalIntersectionTest.php
│ │ ├── ConditionalStyleTest.php
│ │ ├── CopyCellsTest.php
│ │ ├── DefaultPaperSizeTest.php
│ │ ├── DrawingTest.php
│ │ ├── InsertTest.php
│ │ ├── Issue1203Test.php
│ │ ├── Issue1425Test.php
│ │ ├── Issue1457Test.php
│ │ ├── Issue4112Test.php
│ │ ├── Issue4128Test.php
│ │ ├── Issue4241Test.php
│ │ ├── Issue641Test.php
│ │ ├── IteratorTest.php
│ │ ├── MemoryDrawing2.php
│ │ ├── MemoryDrawingTest.php
│ │ ├── MergeBehaviourTest.php
│ │ ├── MergeCellsDeletedTest.php
│ │ ├── PageBreakTest.php
│ │ ├── PageMarginsTest.php
│ │ ├── PrintAreaTest.php
│ │ ├── ProtectedRangeTest.php
│ │ ├── Protection2Test.php
│ │ ├── ProtectionTest.php
│ │ ├── RemoveTest.php
│ │ ├── RowCellIterator2Test.php
│ │ ├── RowCellIteratorTest.php
│ │ ├── RowDimensionSaveTest.php
│ │ ├── RowDimensionTest.php
│ │ ├── RowIteratorEmptyTest.php
│ │ ├── RowIteratorTest.php
│ │ ├── RowTest.php
│ │ ├── SetValueExplicitWorksheetTest.php
│ │ ├── SheetViewTest.php
│ │ ├── Table/
│ │ │ ├── ColumnTest.php
│ │ │ ├── FormulaTest.php
│ │ │ ├── Issue3635Test.php
│ │ │ ├── Issue3659Test.php
│ │ │ ├── Issue3820Test.php
│ │ │ ├── RemoveTableTest.php
│ │ │ ├── SetupTeardown.php
│ │ │ ├── TableStyleTest.php
│ │ │ └── TableTest.php
│ │ ├── ToArrayOldCalculatedValueTest.php
│ │ ├── ToArrayTest.php
│ │ ├── Worksheet2Test.php
│ │ ├── Worksheet3Test.php
│ │ ├── WorksheetNamedRangesTest.php
│ │ ├── WorksheetParentTest.php
│ │ └── WorksheetTest.php
│ └── Writer/
│ ├── Csv/
│ │ ├── CsvArrayTest.php
│ │ ├── CsvEnclosureTest.php
│ │ ├── CsvExcelCompatibilityTest.php
│ │ ├── CsvOutputEncodingTest.php
│ │ ├── CsvWriteTest.php
│ │ ├── HyperlinkTest.php
│ │ └── VariableColumnsTest.php
│ ├── Dompdf/
│ │ ├── GridlinesInlineTest.php
│ │ ├── HideMergeTest.php
│ │ ├── HideTest.php
│ │ ├── PaperSizeArrayTest.php
│ │ ├── PrintAreaTest.php
│ │ └── TextRotationTest.php
│ ├── Html/
│ │ ├── AllOrOneSheetTest.php
│ │ ├── BackgroundImageTest.php
│ │ ├── BadCustomPropertyTest.php
│ │ ├── BadHyperlinkBaseTest.php
│ │ ├── BadHyperlinkTest.php
│ │ ├── BetterBooleanTest.php
│ │ ├── CalcErrorTest.php
│ │ ├── CallbackTest.php
│ │ ├── CommentAlignmentTest.php
│ │ ├── DirectionTest.php
│ │ ├── ExtendForChartsAndImagesTest.php
│ │ ├── FixHeightTest.php
│ │ ├── FloatInlineTest.php
│ │ ├── GridlinesInlineTest.php
│ │ ├── GridlinesTest.php
│ │ ├── HideMergeTest.php
│ │ ├── HideTest.php
│ │ ├── HtmlArrayTest.php
│ │ ├── HtmlColourScaleTest.php
│ │ ├── HtmlCommentsTest.php
│ │ ├── HtmlConditionalFormattingTest.php
│ │ ├── HtmlDifferentConditionalFormattingsTest.php
│ │ ├── HtmlExtend2.php
│ │ ├── HtmlNumberFormatTest.php
│ │ ├── HtmlTableFormatTest.php
│ │ ├── HtmlTableFormatWithConditionalTest.php
│ │ ├── ImageCopyTest.php
│ │ ├── ImageEmbedTest.php
│ │ ├── ImagesRootTest.php
│ │ ├── InvalidFileNameTest.php
│ │ ├── Issue1319Test.php
│ │ ├── Issue3678Test.php
│ │ ├── Issue4539Test.php
│ │ ├── Issue4773Test.php
│ │ ├── LineEndingTest.php
│ │ ├── LongTitleTest.php
│ │ ├── MailtoTest.php
│ │ ├── MemoryDrawingOffsetTest.php
│ │ ├── NavigationBadTitleTest.php
│ │ ├── NoJavascriptLinksTest.php
│ │ ├── NoTitleTest.php
│ │ ├── PrintAreaTest.php
│ │ ├── ReadOrderTest.php
│ │ ├── RepeatedRowsTest.php
│ │ ├── RichTextTest.php
│ │ ├── TextRotationTest.php
│ │ ├── TransparentDrawingsTest.php
│ │ ├── VisibilityTest.php
│ │ └── XssVulnerabilityTest.php
│ ├── Mpdf/
│ │ ├── GridlinesInlineTest.php
│ │ ├── HideMergeTest.php
│ │ ├── HideTest.php
│ │ ├── ImageCopyPdfTest.php
│ │ ├── Issue4773Test.php
│ │ ├── MergedBorderTest.php
│ │ ├── OrientationTest.php
│ │ ├── PrintAreaTest.php
│ │ └── TextRotationTest.php
│ ├── Ods/
│ │ ├── ArrayTest.php
│ │ ├── AutoColorTest.php
│ │ ├── AutoFilterTest.php
│ │ ├── ContentTest.php
│ │ ├── DefinedNamesTest.php
│ │ ├── DurationTest.php
│ │ ├── FreezeTest.php
│ │ ├── IndentTest.php
│ │ ├── Issue4537Test.php
│ │ ├── Issue4584Test.php
│ │ ├── Issue4798Test.php
│ │ ├── MergeRangeTest.php
│ │ ├── MicrosecondsTest.php
│ │ └── ReadOrderTest.php
│ ├── PreCalcTest.php
│ ├── RetainSelectedCellsTest.php
│ ├── Tcpdf/
│ │ ├── GridlinesInlineTest.php
│ │ ├── HideMergeTest.php
│ │ ├── HideTest.php
│ │ ├── MergedBorderTest.php
│ │ ├── MergedCellTest.php
│ │ ├── NoDieTest.php
│ │ └── PrintAreaTest.php
│ ├── Xls/
│ │ ├── BooleanLiteralTest.php
│ │ ├── Calendar1904Test.php
│ │ ├── ConditionalFontColorTest.php
│ │ ├── ConditionalLimitsTest.php
│ │ ├── ConditionalUnionTest.php
│ │ ├── DataValidationTest.php
│ │ ├── DimensionsRecordTest.php
│ │ ├── FormulaErrTest.php
│ │ ├── HyperlinkTest.php
│ │ ├── Issue4331Test.php
│ │ ├── Issue4584Test.php
│ │ ├── Issue642Test.php
│ │ ├── Issue918Test.php
│ │ ├── MicrosecondsTest.php
│ │ ├── NonLatinFormulasTest.php
│ │ ├── ParserTest.php
│ │ ├── ReadOrderTest.php
│ │ ├── RichTextTest.php
│ │ ├── Sample19Test.php
│ │ ├── VisibilityTest.php
│ │ ├── WorkbookTest.php
│ │ └── XlsGifBmpTest.php
│ └── Xlsx/
│ ├── ArrayFormulaPrefixTest.php
│ ├── ArrayFormulaValidationTest.php
│ ├── ArrayFunctions2Test.php
│ ├── ArrayFunctionsInlineTest.php
│ ├── ArrayFunctionsTest.php
│ ├── AutoColorTest.php
│ ├── BackgroundImageTest.php
│ ├── BadParamExceptionTest.php
│ ├── CalculationErrorTest.php
│ ├── Calendar1904Test.php
│ ├── CheckBoxStyleTest.php
│ ├── CommentAlignmentTest.php
│ ├── ConditionalFillTest.php
│ ├── ConditionalFormatIconSetTest.php
│ ├── ConditionalTest.php
│ ├── DataValidationTest.php
│ ├── DrawingInCellTest.php
│ ├── DrawingPassThroughTest.php
│ ├── DrawingsInsertRowsTest.php
│ ├── DrawingsTest.php
│ ├── ExplicitStyle0Test.php
│ ├── FloatsRetainedTest.php
│ ├── FontCharsetTest.php
│ ├── FunctionPrefixTest.php
│ ├── HyperlinkTest.php
│ ├── Issue2082Test.php
│ ├── Issue2266Test.php
│ ├── Issue2368Test.php
│ ├── Issue3443Test.php
│ ├── Issue3711Test.php
│ ├── Issue3843Test.php
│ ├── Issue3951Test.php
│ ├── Issue3988Test.php
│ ├── Issue4025Test.php
│ ├── Issue4179Test.php
│ ├── Issue4200Test.php
│ ├── Issue4269Test.php
│ ├── Issue4537Test.php
│ ├── Issue4542Test.php
│ ├── Issue4584Test.php
│ ├── Issue476Test.php
│ ├── Issue484Test.php
│ ├── Issue993Test.php
│ ├── LocaleFloatsTest.php
│ ├── MemoryDrawingTest.php
│ ├── MetadataTest.php
│ ├── MicrosecondsTest.php
│ ├── PageBreakTest.php
│ ├── RichTextTest.php
│ ├── StartsWithHashTest.php
│ ├── StylesWriterTest.php
│ ├── TableTest.php
│ ├── ThemeColorsTest.php
│ ├── ThemeFontsTest.php
│ ├── TransparentDrawingsTest.php
│ ├── Unparsed2396Test.php
│ ├── UnparsedDataCloneTest.php
│ ├── UnparsedDataTest.php
│ ├── VisibilityTest.php
│ └── WmfTest.php
├── bootstrap.php
└── data/
├── Calculation/
│ ├── BinaryComparisonOperations.php
│ ├── Calculation.php
│ ├── DateTime/
│ │ ├── DATE.php
│ │ ├── DATEDIF.php
│ │ ├── DATEVALUE.php
│ │ ├── DAY.php
│ │ ├── DAYOpenOffice.php
│ │ ├── DAYS.php
│ │ ├── DAYS360.php
│ │ ├── EDATE.php
│ │ ├── EOMONTH.php
│ │ ├── HOUR.php
│ │ ├── ISOWEEKNUM.php
│ │ ├── ISOWEEKNUM1904.php
│ │ ├── MINUTE.php
│ │ ├── MONTH.php
│ │ ├── NETWORKDAYS.php
│ │ ├── SECOND.php
│ │ ├── TIME.php
│ │ ├── TIMEVALUE.php
│ │ ├── WEEKDAY.php
│ │ ├── WEEKNUM.php
│ │ ├── WEEKNUM1904.php
│ │ ├── WORKDAY.php
│ │ ├── YEAR.php
│ │ └── YEARFRAC.php
│ ├── DefinedNames/
│ │ ├── NamedFormulae.xlsx
│ │ └── NamedRanges.xlsx
│ ├── Engineering/
│ │ ├── BESSELI.php
│ │ ├── BESSELJ.php
│ │ ├── BESSELK.php
│ │ ├── BESSELY.php
│ │ ├── BIN2DEC.php
│ │ ├── BIN2DECOpenOffice.php
│ │ ├── BIN2HEX.php
│ │ ├── BIN2HEXOpenOffice.php
│ │ ├── BIN2OCT.php
│ │ ├── BIN2OCTOpenOffice.php
│ │ ├── BITAND.php
│ │ ├── BITLSHIFT.php
│ │ ├── BITOR.php
│ │ ├── BITRSHIFT.php
│ │ ├── BITXOR.php
│ │ ├── COMPLEX.php
│ │ ├── CONVERTUOM.php
│ │ ├── DEC2BIN.php
│ │ ├── DEC2BINOpenOffice.php
│ │ ├── DEC2HEX.php
│ │ ├── DEC2HEXOpenOffice.php
│ │ ├── DEC2OCT.php
│ │ ├── DEC2OCTOpenOffice.php
│ │ ├── DELTA.php
│ │ ├── ERF.php
│ │ ├── ERFC.php
│ │ ├── ERFPRECISE.php
│ │ ├── GESTEP.php
│ │ ├── HEX2BIN.php
│ │ ├── HEX2BINOpenOffice.php
│ │ ├── HEX2DEC.php
│ │ ├── HEX2DECOpenOffice.php
│ │ ├── HEX2OCT.php
│ │ ├── HEX2OCTOpenOffice.php
│ │ ├── IMABS.php
│ │ ├── IMAGINARY.php
│ │ ├── IMARGUMENT.php
│ │ ├── IMCONJUGATE.php
│ │ ├── IMCOS.php
│ │ ├── IMCOSH.php
│ │ ├── IMCOT.php
│ │ ├── IMCSC.php
│ │ ├── IMCSCH.php
│ │ ├── IMDIV.php
│ │ ├── IMEXP.php
│ │ ├── IMLN.php
│ │ ├── IMLOG10.php
│ │ ├── IMLOG2.php
│ │ ├── IMPOWER.php
│ │ ├── IMPRODUCT.php
│ │ ├── IMREAL.php
│ │ ├── IMSEC.php
│ │ ├── IMSECH.php
│ │ ├── IMSIN.php
│ │ ├── IMSINH.php
│ │ ├── IMSQRT.php
│ │ ├── IMSUB.php
│ │ ├── IMSUM.php
│ │ ├── IMTAN.php
│ │ ├── OCT2BIN.php
│ │ ├── OCT2BINOpenOffice.php
│ │ ├── OCT2DEC.php
│ │ ├── OCT2DECOpenOffice.php
│ │ ├── OCT2HEX.php
│ │ └── OCT2HEXOpenOffice.php
│ ├── Financial/
│ │ ├── ACCRINT.php
│ │ ├── ACCRINTM.php
│ │ ├── AMORDEGRC.php
│ │ ├── AMORLINC.php
│ │ ├── COUPDAYBS.php
│ │ ├── COUPDAYS.php
│ │ ├── COUPDAYSNC.php
│ │ ├── COUPNCD.php
│ │ ├── COUPNUM.php
│ │ ├── COUPPCD.php
│ │ ├── CUMIPMT.php
│ │ ├── CUMPRINC.php
│ │ ├── DB.php
│ │ ├── DDB.php
│ │ ├── DISC.php
│ │ ├── DOLLARDE.php
│ │ ├── DOLLARFR.php
│ │ ├── DaysPerYear.php
│ │ ├── EFFECT.php
│ │ ├── FV.php
│ │ ├── FVSCHEDULE.php
│ │ ├── INTRATE.php
│ │ ├── IPMT.php
│ │ ├── IRR.php
│ │ ├── ISPMT.php
│ │ ├── MIRR.php
│ │ ├── NOMINAL.php
│ │ ├── NPER.php
│ │ ├── NPV.php
│ │ ├── PDURATION.php
│ │ ├── PMT.php
│ │ ├── PPMT.php
│ │ ├── PRICE.php
│ │ ├── PRICE3.php
│ │ ├── PRICEDISC.php
│ │ ├── PRICEMAT.php
│ │ ├── PV.php
│ │ ├── RATE.php
│ │ ├── RECEIVED.php
│ │ ├── RRI.php
│ │ ├── SLN.php
│ │ ├── SYD.php
│ │ ├── TBILLEQ.php
│ │ ├── TBILLPRICE.php
│ │ ├── TBILLYIELD.php
│ │ ├── USDOLLAR.php
│ │ ├── XIRR.php
│ │ ├── XNPV.php
│ │ ├── YIELDDISC.php
│ │ └── YIELDMAT.php
│ ├── Functions/
│ │ └── IF_CONDITION.php
│ ├── FunctionsAsString.php
│ ├── Information/
│ │ ├── ERROR_TYPE.php
│ │ ├── INFO.php
│ │ ├── IS_BLANK.php
│ │ ├── IS_ERR.php
│ │ ├── IS_ERROR.php
│ │ ├── IS_EVEN.php
│ │ ├── IS_LOGICAL.php
│ │ ├── IS_NA.php
│ │ ├── IS_NONTEXT.php
│ │ ├── IS_NUMBER.php
│ │ ├── IS_ODD.php
│ │ ├── IS_TEXT.php
│ │ ├── N.php
│ │ └── TYPE.php
│ ├── Logical/
│ │ ├── AND.php
│ │ ├── ANDLiteral.php
│ │ ├── IF.php
│ │ ├── IFERROR.php
│ │ ├── IFNA.php
│ │ ├── IFS.php
│ │ ├── NOT.php
│ │ ├── OR.php
│ │ ├── ORLiteral.php
│ │ ├── SWITCH.php
│ │ ├── XOR.php
│ │ └── XORLiteral.php
│ ├── LookupRef/
│ │ ├── ADDRESS.php
│ │ ├── CHOOSE.php
│ │ ├── CHOOSECOLS.php
│ │ ├── CHOOSEROWS.php
│ │ ├── COLUMN.php
│ │ ├── COLUMNS.php
│ │ ├── COLUMNSonSpreadsheet.php
│ │ ├── COLUMNonSpreadsheet.php
│ │ ├── DROP.php
│ │ ├── EXPAND.php
│ │ ├── FORMULATEXT.php
│ │ ├── HLOOKUP.php
│ │ ├── HYPERLINK.php
│ │ ├── INDEX.php
│ │ ├── INDEXonSpreadsheet.php
│ │ ├── INDIRECT.php
│ │ ├── IndirectDefinedName.xlsx
│ │ ├── IndirectFormulaSelection.xlsx
│ │ ├── LOOKUP.php
│ │ ├── MATCH.php
│ │ ├── OFFSET.php
│ │ ├── ROW.php
│ │ ├── ROWS.php
│ │ ├── ROWSonSpreadsheet.php
│ │ ├── ROWonSpreadsheet.php
│ │ ├── TAKE.php
│ │ ├── TRANSPOSE.php
│ │ └── VLOOKUP.php
│ ├── MathTrig/
│ │ ├── ABS.php
│ │ ├── ACOS.php
│ │ ├── ACOSH.php
│ │ ├── ACOT.php
│ │ ├── ACOTH.php
│ │ ├── ARABIC.php
│ │ ├── ASIN.php
│ │ ├── ASINH.php
│ │ ├── ATAN.php
│ │ ├── ATAN2.php
│ │ ├── ATANH.php
│ │ ├── BASE.php
│ │ ├── CEILING.php
│ │ ├── CEILINGMATH.php
│ │ ├── CEILINGPRECISE.php
│ │ ├── COMBIN.php
│ │ ├── COMBINA.php
│ │ ├── COS.php
│ │ ├── COSH.php
│ │ ├── COT.php
│ │ ├── COTH.php
│ │ ├── CSC.php
│ │ ├── CSCH.php
│ │ ├── DEGREES.php
│ │ ├── EVEN.php
│ │ ├── EXP.php
│ │ ├── FACT.php
│ │ ├── FACTDOUBLE.php
│ │ ├── FACTGNUMERIC.php
│ │ ├── FLOOR.php
│ │ ├── FLOORMATH.php
│ │ ├── FLOORPRECISE.php
│ │ ├── GCD.php
│ │ ├── INT.php
│ │ ├── LCM.php
│ │ ├── LN.php
│ │ ├── LOG.php
│ │ ├── LOG10.php
│ │ ├── MDETERM.php
│ │ ├── MINVERSE.php
│ │ ├── MMULT.php
│ │ ├── MOD.php
│ │ ├── MROUND.php
│ │ ├── MULTINOMIAL.php
│ │ ├── ODD.php
│ │ ├── PI.php
│ │ ├── POWER.php
│ │ ├── PRODUCT.php
│ │ ├── QUOTIENT.php
│ │ ├── RADIANS.php
│ │ ├── RANDBETWEEN.php
│ │ ├── ROMAN.php
│ │ ├── ROUND.php
│ │ ├── ROUNDDOWN.php
│ │ ├── ROUNDUP.php
│ │ ├── SEC.php
│ │ ├── SECH.php
│ │ ├── SEQUENCE.php
│ │ ├── SERIESSUM.php
│ │ ├── SIGN.php
│ │ ├── SIN.php
│ │ ├── SINH.php
│ │ ├── SQRT.php
│ │ ├── SQRTPI.php
│ │ ├── SUBTOTAL.php
│ │ ├── SUBTOTALHIDDEN.php
│ │ ├── SUM.php
│ │ ├── SUMIF.php
│ │ ├── SUMIFS.php
│ │ ├── SUMLITERALS.php
│ │ ├── SUMPRODUCT.php
│ │ ├── SUMSQ.php
│ │ ├── SUMWITHINDEXMATCH.php
│ │ ├── SUMX2MY2.php
│ │ ├── SUMX2PY2.php
│ │ ├── SUMXMY2.php
│ │ ├── TAN.php
│ │ ├── TANH.php
│ │ └── TRUNC.php
│ ├── Statistical/
│ │ ├── AVEDEV.php
│ │ ├── AVERAGE.php
│ │ ├── AVERAGEA.php
│ │ ├── AVERAGEIF.php
│ │ ├── AVERAGEIFS.php
│ │ ├── BETADIST.php
│ │ ├── BETAINV.php
│ │ ├── BINOMDIST.php
│ │ ├── BINOMDISTRANGE.php
│ │ ├── BINOMINV.php
│ │ ├── BasicCOUNT.php
│ │ ├── CHIDISTLeftTail.php
│ │ ├── CHIDISTRightTail.php
│ │ ├── CHIINVLeftTail.php
│ │ ├── CHIINVRightTail.php
│ │ ├── CHITEST.php
│ │ ├── CONFIDENCE.php
│ │ ├── CORREL.php
│ │ ├── COUNTA.php
│ │ ├── COUNTBLANK.php
│ │ ├── COUNTIF.php
│ │ ├── COUNTIFS.php
│ │ ├── COVAR.php
│ │ ├── DEVSQ.php
│ │ ├── EXPONDIST.php
│ │ ├── ExcelCOUNT.php
│ │ ├── FDIST.php
│ │ ├── FISHER.php
│ │ ├── FISHERINV.php
│ │ ├── FORECAST.php
│ │ ├── GAMMA.php
│ │ ├── GAMMADIST.php
│ │ ├── GAMMAINV.php
│ │ ├── GAMMALN.php
│ │ ├── GAUSS.php
│ │ ├── GEOMEAN.php
│ │ ├── GROWTH.php
│ │ ├── GnumericCOUNT.php
│ │ ├── HARMEAN.php
│ │ ├── HYPGEOMDIST.php
│ │ ├── INTERCEPT.php
│ │ ├── KURT.php
│ │ ├── LARGE.php
│ │ ├── LINEST.php
│ │ ├── LOGEST.php
│ │ ├── LOGINV.php
│ │ ├── LOGNORMDIST.php
│ │ ├── LOGNORMDIST2.php
│ │ ├── MAX.php
│ │ ├── MAXA.php
│ │ ├── MAXIFS.php
│ │ ├── MEDIAN.php
│ │ ├── MIN.php
│ │ ├── MINA.php
│ │ ├── MINIFS.php
│ │ ├── MODE.php
│ │ ├── NEGBINOMDIST.php
│ │ ├── NORMDIST.php
│ │ ├── NORMINV.php
│ │ ├── NORMSDIST.php
│ │ ├── NORMSDIST2.php
│ │ ├── NORMSINV.php
│ │ ├── OpenOfficeCOUNT.php
│ │ ├── PERCENTILE.php
│ │ ├── PERCENTRANK.php
│ │ ├── PERMUT.php
│ │ ├── PERMUTATIONA.php
│ │ ├── POISSON.php
│ │ ├── QUARTILE.php
│ │ ├── RANK.php
│ │ ├── RSQ.php
│ │ ├── SKEW.php
│ │ ├── SLOPE.php
│ │ ├── SMALL.php
│ │ ├── STANDARDIZE.php
│ │ ├── STDEV.php
│ │ ├── STDEVA.php
│ │ ├── STDEVA_ODS.php
│ │ ├── STDEVP.php
│ │ ├── STDEVPA.php
│ │ ├── STDEVPA_ODS.php
│ │ ├── STDEVP_ODS.php
│ │ ├── STDEV_ODS.php
│ │ ├── STEYX.php
│ │ ├── TDIST.php
│ │ ├── TDIST2T.php
│ │ ├── TDISTRT.php
│ │ ├── TINV.php
│ │ ├── TREND.php
│ │ ├── TRIMMEAN.php
│ │ ├── TdotINV.php
│ │ ├── VAR.php
│ │ ├── VARA.php
│ │ ├── VARA_ODS.php
│ │ ├── VARP.php
│ │ ├── VARPA.php
│ │ ├── VARPA_ODS.php
│ │ ├── VARP_ODS.php
│ │ ├── VAR_ODS.php
│ │ ├── WEIBULL.php
│ │ ├── ZTEST.php
│ │ ├── tDotDistFalse.php
│ │ └── tDotDistTrue.php
│ ├── TableFormulae.xlsx
│ ├── TextData/
│ │ ├── ARRAYTOTEXT.php
│ │ ├── BAHTTEXT.php
│ │ ├── CHAR.php
│ │ ├── CLEAN.php
│ │ ├── CODE.php
│ │ ├── CONCAT.php
│ │ ├── CONCATENATE.php
│ │ ├── DOLLAR.php
│ │ ├── EXACT.php
│ │ ├── FIND.php
│ │ ├── FIXED.php
│ │ ├── LEFT.php
│ │ ├── LEN.php
│ │ ├── LOWER.php
│ │ ├── MID.php
│ │ ├── NUMBERVALUE.php
│ │ ├── OpenOffice.php
│ │ ├── PROPER.php
│ │ ├── REPLACE.php
│ │ ├── REPT.php
│ │ ├── RIGHT.php
│ │ ├── SEARCH.php
│ │ ├── SUBSTITUTE.php
│ │ ├── T.php
│ │ ├── TEXT.php
│ │ ├── TEXTAFTER.php
│ │ ├── TEXTBEFORE.php
│ │ ├── TEXTJOIN.php
│ │ ├── TEXTSPLIT.php
│ │ ├── TRIM.php
│ │ ├── UPPER.php
│ │ ├── VALUE.php
│ │ └── VALUETOTEXT.php
│ ├── Translations.php
│ └── Web/
│ ├── URLENCODE.php
│ └── WEBSERVICE.php
├── CalculationBinaryComparisonOperation.php
├── Cell/
│ ├── A1ConversionToR1C1Absolute.php
│ ├── A1ConversionToR1C1Exception.php
│ ├── A1ConversionToR1C1Relative.php
│ ├── ConvertFormulaToA1FromR1C1Absolute.php
│ ├── ConvertFormulaToA1FromR1C1Relative.php
│ ├── ConvertFormulaToA1FromSpreadsheetXml.php
│ ├── CoordinateIsInsideRange.php
│ ├── CoordinateIsInsideRangeException.php
│ ├── IndexesFromString.php
│ ├── R1C1ConversionToA1Absolute.php
│ ├── R1C1ConversionToA1Exception.php
│ ├── R1C1ConversionToA1Relative.php
│ ├── SetValueExplicit.php
│ ├── SetValueExplicitException.php
│ └── SetValueExplicitTypeArguments.php
├── CellAbsoluteCoordinate.php
├── CellAbsoluteReference.php
├── CellBuildRange.php
├── CellCoordinates.php
├── CellExtractAllCellReferencesInRange.php
├── CellGetRangeBoundaries.php
├── CellMergeRangesInCollection.php
├── CellRangeBoundaries.php
├── CellRangeDimension.php
├── CellSplitRange.php
├── ColumnIndex.php
├── ColumnString.php
├── CoordinateIsRange.php
├── Features/
│ └── AutoFilter/
│ └── Xlsx/
│ ├── AutoFilter_Basic.xlsx
│ └── AutoFilter_Basic_Office365.xlsx
├── Functional/
│ └── TypeAttributePreservation/
│ └── Formula.php
├── Reader/
│ ├── CSV/
│ │ ├── NumberFormatTest.csv
│ │ ├── NumberFormatTest.de.csv
│ │ ├── backslash.csv
│ │ ├── contains_html.csv
│ │ ├── csv_without_extension
│ │ ├── empty.csv
│ │ ├── enclosure.csv
│ │ ├── encoding.iso88591.csv
│ │ ├── encoding.utf16be.csv
│ │ ├── encoding.utf16le.csv
│ │ ├── encoding.utf32be.csv
│ │ ├── encoding.utf32le.csv
│ │ ├── encoding.utf8.csv
│ │ ├── encoding.utf8bom.csv
│ │ ├── escape.csv
│ │ ├── issue.2232.csv
│ │ ├── line_break_escaped_32le.csv
│ │ ├── line_break_in_enclosure.csv
│ │ ├── line_break_in_enclosure_with_escaped_quotes.csv
│ │ ├── linend.mac.csv
│ │ ├── linend.unix.csv
│ │ ├── linend.win.csv
│ │ ├── no_delimiter.csv
│ │ ├── premiere.utf16be.csv
│ │ ├── premiere.utf16bebom.csv
│ │ ├── premiere.utf16le.csv
│ │ ├── premiere.utf16lebom.csv
│ │ ├── premiere.utf32be.csv
│ │ ├── premiere.utf32bebom.csv
│ │ ├── premiere.utf32le.csv
│ │ ├── premiere.utf32lebom.csv
│ │ ├── premiere.utf8.csv
│ │ ├── premiere.utf8bom.csv
│ │ ├── premiere.win1252.csv
│ │ ├── semicolon_separated.csv
│ │ ├── sep.csv
│ │ └── utf16be.line_break_in_enclosure.csv
│ ├── Gnumeric/
│ │ ├── ArrayFormulaTest.gnumeric
│ │ ├── ArrayFormulaTest2.gnumeric
│ │ ├── Autofilter_Basic.gnumeric
│ │ ├── HiddenSheet.gnumeric
│ │ ├── PageSetup.gnumeric
│ │ ├── PageSetup.gnumeric.unzipped.xml
│ │ ├── apostrophe3a.gnumeric
│ │ ├── apostrophe3b.gnumeric
│ │ └── xmlwithdoctype.gnumeric
│ ├── HTML/
│ │ ├── badhtml.html
│ │ ├── charset.ISO-8859-1.html
│ │ ├── charset.ISO-8859-1.html4.html
│ │ ├── charset.ISO-8859-2.html
│ │ ├── charset.UTF-16.bebom.html
│ │ ├── charset.UTF-16.lebom.html
│ │ ├── charset.UTF-8.bom.html
│ │ ├── charset.UTF-8.html
│ │ ├── charset.gb18030.html
│ │ ├── charset.nocharset.html
│ │ ├── charset.unknown.html
│ │ ├── csv_with_angle_bracket.csv
│ │ ├── html.opacity.3.html
│ │ ├── rowspan.html
│ │ ├── utf8chars.charset.html
│ │ ├── utf8chars.html
│ │ └── xhtml4.entity.xhtml
│ ├── NotASpreadsheetFile.doc
│ ├── Ods/
│ │ ├── ArrayFormulaTest.ods
│ │ ├── AutoFilter.ods
│ │ ├── DefinedNames.apostrophe.ods
│ │ ├── DefinedNames.ods
│ │ ├── HiddenMergeCellsTest.ods
│ │ ├── HiddenSheet2.ods
│ │ ├── MergeRangeTest.ods
│ │ ├── PageSetup.ods
│ │ ├── RepeatedCells.ods
│ │ ├── RepeatedDataCells.ods
│ │ ├── bug1772.ods
│ │ ├── colgroup.ods
│ │ ├── colheader.ods
│ │ ├── corruptMeta.ods
│ │ ├── currency4.ods
│ │ ├── data.ods
│ │ ├── issue.2507.ods
│ │ ├── issue.2810.ods
│ │ ├── issue.3658.ods
│ │ ├── issue.3721.ods
│ │ ├── issue.407.ods
│ │ ├── issue.4081.ods
│ │ ├── issue.4099.ods
│ │ ├── issue.4435b.ods
│ │ ├── issue.4528.ods
│ │ ├── issue.804.ods
│ │ ├── nomimetype.ods
│ │ ├── odsstyles5.ods
│ │ └── propertyTest.ods
│ ├── Slk/
│ │ ├── issue.2267c.slk
│ │ ├── issue.2276.slk
│ │ └── issue.3658.slk
│ ├── XLS/
│ │ ├── 1900_Calendar.xls
│ │ ├── 1904_Calendar.xls
│ │ ├── CF_Basic_Comparisons.xls
│ │ ├── CF_Expression_Comparisons.xls
│ │ ├── Colours.xls
│ │ ├── DataValidation.xls
│ │ ├── DefinedNameTest.xls
│ │ ├── HiddenMergeCellsTest.xls
│ │ ├── HiddenSheet.xls
│ │ ├── PageSetup.xls
│ │ ├── RichTextFontSize.xls
│ │ ├── WholeRowAndColumn.xls
│ │ ├── biff8cover.xls
│ │ ├── bug-pr-3734.xls
│ │ ├── bug1114.xls
│ │ ├── bug1505.xls
│ │ ├── bug1592.xls
│ │ ├── chartsheet.xls
│ │ ├── formulas.database.xls
│ │ ├── formulas.other.xls
│ │ ├── formulas.xls
│ │ ├── isodd.xls
│ │ ├── issue.2463.xls
│ │ ├── issue.3202.xls
│ │ ├── issue.3658.xls
│ │ ├── issue2239.xls
│ │ ├── maccentraleurope.biff5.xls
│ │ ├── maccentraleurope.xls
│ │ ├── pr.4687.excel.badendian.xls
│ │ ├── pr.4687.excel.xls
│ │ ├── pr607.sum_data.xls
│ │ ├── pwtest.xls
│ │ ├── pwtest2.xls
│ │ ├── pwtest3.xls
│ │ ├── sample.xls
│ │ └── visibility.xls
│ ├── XLSX/
│ │ ├── 1900_Calendar.xlsx
│ │ ├── 1904_Calendar.xlsx
│ │ ├── ChartSheet.xlsx
│ │ ├── ConditionalFormat_Ranges.xlsx
│ │ ├── HiddenMergeCellsTest.xlsx
│ │ ├── HiddenSheet.xlsx
│ │ ├── PageSetup.xlsx
│ │ ├── RgbTint.xlsx
│ │ ├── TableWithoutFilter.xlsx
│ │ ├── Zip-Linux-Directory-Separator.xlsx
│ │ ├── Zip-Windows-Directory-Separator.xlsx
│ │ ├── atsign.choosecols.xlsx
│ │ ├── autofilter2.xlsx
│ │ ├── autofilterTest.xlsx
│ │ ├── blankcell.xlsx
│ │ ├── bug1686b.xlsx
│ │ ├── colorscale.xlsx
│ │ ├── colortabs.xlsx
│ │ ├── condfmtnum.xlsx
│ │ ├── conditionalFormatting2Test.xlsx
│ │ ├── conditionalFormatting3Test.xlsx
│ │ ├── conditionalFormattingDataBarTest.xlsx
│ │ ├── conditionalFormattingIconSet.xlsx
│ │ ├── conditionalFormattingTest.xlsx
│ │ ├── dataValidation2Test.xlsx
│ │ ├── dataValidationTest.xlsx
│ │ ├── data_with_tables.xlsx
│ │ ├── double_attr_drawing.xlsx
│ │ ├── drawingOneCellAnchor.xlsx
│ │ ├── drawing_in_cell.xlsx
│ │ ├── ebcdic.dontuse
│ │ ├── empty_drawing.xlsx
│ │ ├── excel-groupby-one.xlsx
│ │ ├── excelChartsTest.xlsx
│ │ ├── explicitdate.xlsx
│ │ ├── fakewebservice.xlsx
│ │ ├── ignoreerror.xlsx
│ │ ├── issue.1319.bug2.xlsx
│ │ ├── issue.1432b.xlsx
│ │ ├── issue.1482.xlsx
│ │ ├── issue.1637.xlsx
│ │ ├── issue.2246a.xlsx
│ │ ├── issue.2246b.xlsx
│ │ ├── issue.2301.xlsx
│ │ ├── issue.2316.xlsx
│ │ ├── issue.2331c.xlsx
│ │ ├── issue.2362.xlsx
│ │ ├── issue.2387.xlsx
│ │ ├── issue.2450.xlsx
│ │ ├── issue.2488.xlsx
│ │ ├── issue.2490.xlsx
│ │ ├── issue.2494.xlsx
│ │ ├── issue.2501.b.xlsx
│ │ ├── issue.2506.xlsx
│ │ ├── issue.2516b.xlsx
│ │ ├── issue.2542.xlsx
│ │ ├── issue.2581.xlsx
│ │ ├── issue.2677.namespace.xlsx
│ │ ├── issue.2677.removeformula1.xlsx
│ │ ├── issue.2778.xlsx
│ │ ├── issue.282.xlsx
│ │ ├── issue.2885.xlsx
│ │ ├── issue.2965.xlsx
│ │ ├── issue.3093.xlsx
│ │ ├── issue.3126.xlsx
│ │ ├── issue.3143a.xlsx
│ │ ├── issue.3145.xlsx
│ │ ├── issue.3202.xlsx
│ │ ├── issue.3255.xlsx
│ │ ├── issue.3277.xlsx
│ │ ├── issue.3370.xlsx
│ │ ├── issue.3435.xlsx
│ │ ├── issue.3453.xlsx
│ │ ├── issue.3464.xlsx
│ │ ├── issue.3495d.xlsx
│ │ ├── issue.3534.xlsx
│ │ ├── issue.3552.xlsx
│ │ ├── issue.3553.xlsx
│ │ ├── issue.3613.xlsx
│ │ ├── issue.3654.xlsx
│ │ ├── issue.3654c.xlsx
│ │ ├── issue.3658.xlsx
│ │ ├── issue.3665.xlsx
│ │ ├── issue.3679.img.xlsx
│ │ ├── issue.3720.xlsx
│ │ ├── issue.3730.xlsx
│ │ ├── issue.3767.xlsx
│ │ ├── issue.3770.xlsx
│ │ ├── issue.3807.xlsx
│ │ ├── issue.3833.logarithm.xlsx
│ │ ├── issue.3833.units.xlsx
│ │ ├── issue.3863.xlsx
│ │ ├── issue.3909b.xlsx
│ │ ├── issue.3982.xlsx
│ │ ├── issue.4049.xlsx
│ │ ├── issue.4063.xlsx
│ │ ├── issue.4248.xlsx
│ │ ├── issue.4312c.xlsx
│ │ ├── issue.4318.xlsx
│ │ ├── issue.4375.small.xlsx
│ │ ├── issue.4415.xlsx
│ │ ├── issue.4416.smallauto.xlsx
│ │ ├── issue.4477.disclaimer.xlsx
│ │ ├── issue.4505.namespace.xlsx
│ │ ├── issue.4539.xlsx
│ │ ├── issue.4629.xlsx
│ │ ├── issue.4724.xlsx
│ │ ├── issue.4800.xlsx
│ │ ├── issue.731.xlsx
│ │ ├── issue2109b.xlsx
│ │ ├── namespacenonstd.xlsx
│ │ ├── namespacepurl.xlsx
│ │ ├── namespaces.openpyxl35.xlsx
│ │ ├── namespaces.xlsx
│ │ ├── namespacestd.xlsx
│ │ ├── octo#thorpe.xlsx
│ │ ├── outline.xlsx
│ │ ├── pageSetupTest.xlsx
│ │ ├── pr1769e.xlsx
│ │ ├── pr1769g.py.xlsx
│ │ ├── pr2050cf-fill.xlsx
│ │ ├── pr2225-datavalidation-onezero.xlsx
│ │ ├── pr2225-datavalidation-truefalse.xlsx
│ │ ├── propertyTest.xlsx
│ │ ├── rootZipFiles.xlsx
│ │ ├── rowColumnAttributeTest.xlsx
│ │ ├── sec-j47r.dontuse
│ │ ├── sec-p66w.dontuse
│ │ ├── sec-q229.dontuse
│ │ ├── sharedformulae.xlsx
│ │ ├── sheetprotect.xlsx
│ │ ├── sheetsChartsTest.xlsx
│ │ ├── splits.xlsx
│ │ ├── stylesTest.xlsx
│ │ ├── tableTest.xlsx
│ │ ├── threesheets.xlsx
│ │ ├── urlImage.bad.dontuse
│ │ ├── urlImage.notfound.xlsx
│ │ ├── urlImage.xlsx
│ │ ├── urlImage2.onecell.xlsx
│ │ ├── urlImage2.xlsx
│ │ ├── utf16be.bom.xlsx
│ │ ├── utf16be.xlsx
│ │ ├── utf16entity.dontuse
│ │ ├── utf7quoteorder.dontuse
│ │ ├── utf7white.dontuse
│ │ ├── utf8and16.dontuse
│ │ ├── utf8and16.entity.dontuse
│ │ ├── utf8entity.dontuse
│ │ ├── verticalAlignTest.xlsx
│ │ ├── visibility.xlsx
│ │ └── without_cell_reference.xlsx
│ └── Xml/
│ ├── ArrayFormula.xml
│ ├── CorruptedXmlFile.xml
│ ├── PageSetup.xml
│ ├── SecurityScannerWithCallbackExample.xml
│ ├── XEETestInvalidSimpleXML.xml
│ ├── XEETestInvalidUTF-16.xml
│ ├── XEETestInvalidUTF-16BE.xml
│ ├── XEETestInvalidUTF-16LE.xml
│ ├── XEETestInvalidUTF-7-single-quote.xml
│ ├── XEETestInvalidUTF-7-whitespace.xml
│ ├── XEETestInvalidUTF-7.xml
│ ├── XEETestInvalidUTF-7_DoubleEncoded.xml
│ ├── XEETestInvalidUTF-8.xml
│ ├── XEETestValidUTF-16.xml
│ ├── XEETestValidUTF-16BE.xml
│ ├── XEETestValidUTF-16LE.xml
│ ├── XEETestValidUTF-8-single-quote.xml
│ ├── XEETestValidUTF-8-whitespace.xml
│ ├── XEETestValidUTF-8.xml
│ ├── bug4669.xml
│ ├── datavalidations.wholerow.xml
│ ├── datavalidations.xml
│ ├── excel2003.iso8859-1.xml
│ ├── hyperlinkbase.xml
│ ├── issue.2157.small.xml
│ ├── issue.3658.xml
│ ├── issue.4448.xml
│ ├── issue.850.xml
│ ├── sec-w24f.dontuse
│ └── splits.xml
├── ReferenceHelperFormulaUpdates.php
├── ReferenceHelperFormulaUpdatesMultipleSheet.php
├── Shared/
│ ├── CentimeterSizeToPixels.php
│ ├── CodePage.php
│ ├── Date/
│ │ ├── DateTimeToExcel.php
│ │ ├── ExcelToTimestamp1900.php
│ │ ├── ExcelToTimestamp1900Timezone.php
│ │ ├── ExcelToTimestamp1904.php
│ │ ├── FormatCodes.php
│ │ ├── FormattedPHPToExcel1900.php
│ │ ├── TimestampToExcel1900.php
│ │ └── TimestampToExcel1904.php
│ ├── FontSizeToPixels.php
│ ├── InchSizeToPixels.php
│ ├── OLERead/
│ │ ├── document
│ │ ├── summary
│ │ └── wrkbook
│ ├── PasswordHashes.php
│ └── Trend/
│ ├── ExponentialBestFit.php
│ └── LinearBestFit.php
├── Style/
│ ├── Color/
│ │ ├── ColorChangeBrightness.php
│ │ ├── ColorGetBlue.php
│ │ ├── ColorGetGreen.php
│ │ └── ColorGetRed.php
│ ├── ConditionalFormatting/
│ │ └── CellMatcher.xlsx
│ ├── NumberFormat.php
│ ├── NumberFormatDates.php
│ └── NumberFormatFractions.php
├── Worksheet/
│ ├── Table/
│ │ └── TableFormulae.xlsx
│ └── namedRangeTest.xlsx
└── Writer/
├── Ods/
│ ├── content-arrays.xml
│ ├── content-empty.xml
│ ├── content-hidden-worksheet.xml
│ └── content-with-data.xml
└── XLSX/
├── ArrayFunctions2.json
├── drawing_in_comment.xlsx
├── drawing_on_2nd_page.xlsx
├── form_pass_print.xlsm
├── gallerytheme.xlsx
├── grouped_images.xlsx
├── issue.2266f.xlsx
├── issue.2368new.xlsx
├── issue.2396.xlsx
├── issue.2908.xlsx
├── issue.3811b.xlsx
├── issue.3843a.template.xlsx
├── issue.4037.xlsx
├── issue.476.xlsx
├── merge.excel.xlsx
├── purple_square.tiff
├── saving_drawing_with_same_path.xlsx
└── wmffile.xlsx
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
root = true
[*]
charset = utf-8
indent_size = 4
indent_style = space
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2
================================================
FILE: .gitattributes
================================================
*.min.js binary
/.editorconfig export-ignore
/.gitattributes export-ignore
/.github export-ignore
/.gitignore export-ignore
/.php-cs-fixer.dist.php export-ignore
/.phpcs.xml.dist export-ignore
/.readthedocs.yaml export-ignore
/.scrutinizer.yml export-ignore
/CHANGELOG.PHPExcel.md export-ignore
/bin export-ignore
/composer.lock export-ignore
/docs export-ignore
/infra export-ignore
/mkdocs.yml export-ignore
/phpstan-baseline.neon export-ignore
/phpstan.neon.dist export-ignore
/phpunit.xml.dist export-ignore
/samples export-ignore
/tests export-ignore
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
This is:
```
- [ ] a bug report
- [ ] a feature request
- [ ] **not** a usage question (ask them on https://stackoverflow.com/questions/tagged/phpspreadsheet or https://gitter.im/PHPOffice/PhpSpreadsheet)
```
### What is the expected behavior?
### What is the current behavior?
### What are the steps to reproduce?
Please provide a [Minimal, Complete, and Verifiable example](https://stackoverflow.com/help/mcve) of code that exhibits the issue without relying on an external Excel file or a web server:
```php
<?php
require __DIR__ . '/vendor/autoload.php';
// Create new Spreadsheet object
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
// add code that show the issue here...
```
If this is an issue with reading a specific spreadsheet file, then it may be appropriate to provide a sample file that demonstrates the problem; but please keep it as small as possible, and sanitize any confidential information before uploading.
### What features do you think are causing the issue
- [ ] Reader
- [ ] Writer
- [ ] Styles
- [ ] Data Validations
- [ ] Formula Calculations
- [ ] Charts
- [ ] AutoFilter
- [ ] Form Elements
### Does an issue affect all spreadsheet file formats? If not, which formats are affected?
### Which versions of PhpSpreadsheet and PHP are affected?
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
This is:
- [ ] a bugfix
- [ ] a new feature
- [ ] refactoring
- [ ] additional unit tests
Checklist:
- [ ] Changes are covered by unit tests
- [ ] Changes are covered by existing unit tests
- [ ] New unit tests have been added
- [ ] Code style is respected
- [ ] Commit message explains **why** the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
- [ ] CHANGELOG.md contains a short summary of the change and a link to the pull request if applicable
- [ ] Documentation is updated as necessary
### Why this change is needed?
Provide an explanation of why this change is needed, with links to any Issues (if appropriate).
If this is a bugfix or a new feature, and there are no existing Issues, then please also create an issue that will make it easier to track progress with this PR.
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: composer
directory: "/"
schedule:
interval: monthly
time: "11:00"
open-pull-requests-limit: 10
================================================
FILE: .github/stale.yml
================================================
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs.
If this is still an issue for you, please try to help by debugging it
further and sharing your results.
Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
================================================
FILE: .github/support.yml
================================================
# Label used to mark issues as support requests
supportLabel: question
# Comment to post on issues marked as support requests. Add a link
# to a support page, or set to `false` to disable
supportComment: >
This looks like a support question. Please ask your support questions on
[StackOverflow](https://stackoverflow.com/questions/tagged/phpspreadsheet),
or [Gitter](https://gitter.im/PHPOffice/PhpSpreadsheet).
Thank you for your contributions.
# Whether to close issues marked as support requests
close: true
# Whether to lock issues marked as support requests
lock: false
================================================
FILE: .github/workflows/github-pages.yml
================================================
name: GithHub Pages
on:
push:
tags:
- '*'
permissions: {}
jobs:
github-pages:
permissions:
contents: write # to push pages branch (peaceiris/actions-gh-pages)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
coverage: none # remove xdebug
- name: Build API documentation
run: |
curl -LO https://github.com/phpDocumentor/phpDocumentor/releases/download/v3.8.1/phpDocumentor.phar
php phpDocumentor.phar --directory src/ --target docs/api --visibility=public,protected
- name: Deploy to GithHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/api
================================================
FILE: .github/workflows/main.yml
================================================
name: main
on: [ push, pull_request, merge_group ]
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
experimental:
- false
php-version:
- '8.1'
- '8.2'
- '8.3'
- '8.4'
- '8.5'
include:
- php-version: 'nightly'
experimental: true
name: PHP ${{ matrix.php-version }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install locales
run: sudo apt-get update && sudo apt-get install -y language-pack-fr language-pack-de
- name: Install single-byte locale
run: sudo sed -i -e 's/# de_DE@euro/de_DE@euro/g' /etc/locale.gen && sudo locale-gen de_DE@euro
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: ctype, dom, fileinfo, filter, gd, iconv, intl, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib
coverage: none
- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer dependencies
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Delete composer lock file
id: composer-lock
if: ${{ matrix.php-version == 'nightly' }}
run: |
rm composer.lock
echo "flags=--ignore-platform-reqs" >> $GITHUB_OUTPUT
- name: Install dependencies
run: composer install --no-progress --prefer-dist --optimize-autoloader ${{ steps.composer-lock.outputs.flags }}
- name: Setup problem matchers for PHP
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: "Run PHPUnit tests (Experimental: ${{ matrix.experimental }})"
env:
FAILURE_ACTION: "${{ matrix.experimental == true }}"
run: vendor/bin/phpunit --display-incomplete --display-skipped --display-deprecations --display-errors --display-notices --display-warnings || $FAILURE_ACTION
phpdoc-types:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 2
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: 8.4
extensions: ctype, dom, fileinfo, filter, gd, iconv, intl, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib
coverage: none
# This is non-ideal because it only checks for the last commit of the PR, not all of them, but better than nothing
- name: Check PHPDoc types
run: ./bin/check-phpdoc-types.php
php-cs-fixer:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: 8.4
extensions: ctype, dom, fileinfo, filter, gd, iconv, intl, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib
coverage: none
tools: cs2pr
- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer dependencies
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies
run: composer install --no-progress --prefer-dist --optimize-autoloader
- name: Code style with PHP-CS-Fixer
run: (./vendor/bin/php-cs-fixer fix --dry-run --format=checkstyle | cs2pr) || ./vendor/bin/php-cs-fixer fix --diff --dry-run
phpcs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: 8.4
extensions: ctype, dom, fileinfo, filter, gd, iconv, intl, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib
coverage: none
tools: cs2pr
- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer dependencies
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies
run: composer install --no-progress --prefer-dist --optimize-autoloader
- name: Code style with PHP_CodeSniffer
run: ./vendor/bin/phpcs -q --report=checkstyle | cs2pr
versions:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: 8.4
extensions: ctype, dom, fileinfo, filter, gd, iconv, intl, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib
coverage: none
tools: cs2pr
- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer dependencies
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies
run: composer install --no-progress --prefer-dist --optimize-autoloader
- name: Code Version Compatibility check with PHP_CodeSniffer
run: ./vendor/bin/phpcs -q --report-width=200 --report=summary,full src/ --standard=PHPCompatibility --runtime-set testVersion 8.1- --exclude=PHPCompatibility.Variables.ForbiddenThisUseContexts
phpstan:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: 8.4
extensions: ctype, dom, fileinfo, filter, gd, iconv, intl, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib
coverage: none
tools: cs2pr
- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer dependencies
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies
run: composer install --no-progress --prefer-dist --optimize-autoloader
- name: Static analysis with PHPStan
run: ./vendor/bin/phpstan analyse
coverage:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install locales
run: sudo apt-get update && sudo apt-get install -y language-pack-fr language-pack-de
- name: Install single-byte locale
run: sudo sed -i -e 's/# de_DE@euro/de_DE@euro/g' /etc/locale.gen && sudo locale-gen de_DE@euro
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: 8.4
extensions: ctype, dom, fileinfo, filter, gd, iconv, intl, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib
coverage: pcov
- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer dependencies
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies
run: composer install --no-progress --prefer-dist --optimize-autoloader
- name: Coverage
run: |
./vendor/bin/phpunit --coverage-clover build/clover.xml
- name: Upload coverage results to Coveralls
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: build/clover.xml
format: clover
fail-on-error: false
release:
permissions:
contents: write # to create a release (actions/create-release)
runs-on: ubuntu-latest
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
steps:
- uses: actions/checkout@v6
with:
ref: ${{ github.ref }} # Otherwise our annotated tag is not fetched and we cannot get correct version
- name: Get release info
run: git tag --format '%(contents:body)' --points-at > release-body.txt
- uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
bodyFile: release-body.txt
================================================
FILE: .gitignore
================================================
/tests/codeCoverage
/analysis
/vendor/
/phpunit.xml
.phpunit.result.cache
## IDE support
*.buildpath
*.project
/.settings
/.idea
## mkdocs output
/site
================================================
FILE: .php-cs-fixer.dist.php
================================================
<?php
$finder = PhpCsFixer\Finder::create()
->exclude(['vendor', 'docs', '.git', '.github'])
->notPath('src/PhpSpreadsheet/Writer/ZipStream3.php')
->in(__DIR__);
$config = new PhpCsFixer\Config();
$config
->setRiskyAllowed(true)
->setFinder($finder)
->setParallelConfig(PhpCsFixer\Runner\Parallel\ParallelConfigFactory::detect(null, 600))
->setCacheFile(sys_get_temp_dir() . '/php-cs-fixer' . preg_replace('~\W~', '-', __DIR__))
->setRules([
'align_multiline_comment' => true,
'array_indentation' => true,
'array_syntax' => ['syntax' => 'short'],
'backtick_to_shell_exec' => true,
'binary_operator_spaces' => true,
'blank_line_after_namespace' => true,
'blank_lines_before_namespace' => ['max_line_breaks' => 2, 'min_line_breaks' => 2], // we want 1 blank line before namespace
'blank_line_after_opening_tag' => true,
'blank_line_before_statement' => true,
'cast_spaces' => true,
'class_attributes_separation' => ['elements' => ['method' => 'one', 'property' => 'one']], // const are often grouped with other related const
'class_definition' => false, // phpcs disagree
'combine_consecutive_issets' => true,
'combine_consecutive_unsets' => true,
'combine_nested_dirname' => true,
'comment_to_phpdoc' => false, // interferes with annotations
'compact_nullable_type_declaration' => true,
'concat_space' => ['spacing' => 'one'],
'constant_case' => true,
'date_time_immutable' => false, // Break our unit tests
'declare_equal_normalize' => true,
'declare_strict_types' => false, // Too early to adopt strict types
'dir_constant' => true,
'doctrine_annotation_array_assignment' => true,
'doctrine_annotation_braces' => true,
'doctrine_annotation_indentation' => true,
'doctrine_annotation_spaces' => true,
'elseif' => true,
'empty_loop_body' => true,
'empty_loop_condition' => true,
'encoding' => true,
'ereg_to_preg' => true,
'error_suppression' => false, // it breaks \PhpOffice\PhpSpreadsheet\Helper\Handler
'explicit_indirect_variable' => false, // I feel it makes the code actually harder to read
'explicit_string_variable' => false, // I feel it makes the code actually harder to read
'final_class' => false, // We need non-final classes
'final_internal_class' => true,
'final_public_method_for_abstract_class' => false, // We need non-final methods
'fopen_flag_order' => true,
'fopen_flags' => true,
'full_opening_tag' => true,
'fully_qualified_strict_types' => true,
'function_declaration' => true,
'function_to_constant' => true,
'general_phpdoc_annotation_remove' => ['annotations' => ['access', 'category', 'copyright']],
'general_phpdoc_tag_rename' => true,
'global_namespace_import' => true,
'group_import' => false, // I feel it makes the code actually harder to read
'header_comment' => false, // We don't use common header in all our files
'heredoc_indentation' => true,
'heredoc_to_nowdoc' => false, // Not sure about this one
'implode_call' => true,
'include' => true,
'increment_style' => true,
'indentation_type' => true,
'integer_literal_case' => true,
'is_null' => true,
'lambda_not_used_import' => true,
'line_ending' => true,
'linebreak_after_opening_tag' => true,
'list_syntax' => ['syntax' => 'short'],
'logical_operators' => true,
'lowercase_cast' => true,
'lowercase_keywords' => true,
'lowercase_static_reference' => true,
'magic_constant_casing' => true,
'magic_method_casing' => true,
'mb_str_functions' => false, // No, too dangerous to change that
'method_argument_space' => true,
'method_chaining_indentation' => true,
'modernize_strpos' => true,
'modernize_types_casting' => true,
'modifier_keywords' => ['elements' => ['property', 'method']], // not const
'multiline_comment_opening_closing' => true,
'multiline_whitespace_before_semicolons' => true,
'native_constant_invocation' => false, // Micro optimization that look messy
'native_function_casing' => true,
'native_function_invocation' => false, // I suppose this would be best, but I am still unconvinced about the visual aspect of it
'new_with_parentheses' => ['anonymous_class' => true, 'named_class' => true],
'no_alias_functions' => true,
'no_alias_language_construct_call' => true,
'no_alternative_syntax' => true,
'no_binary_string' => true,
'no_blank_lines_after_class_opening' => true,
'no_blank_lines_after_phpdoc' => true,
'no_break_comment' => true,
'no_closing_tag' => true,
'no_empty_comment' => true,
'no_empty_phpdoc' => true,
'no_empty_statement' => true,
'no_extra_blank_lines' => true,
'no_homoglyph_names' => true,
'no_leading_import_slash' => true,
'no_leading_namespace_whitespace' => true,
'no_mixed_echo_print' => true,
'no_multiline_whitespace_around_double_arrow' => true,
'no_null_property_initialization' => true,
'no_php4_constructor' => true,
'no_short_bool_cast' => true,
'echo_tag_syntax' => ['format' => 'long'],
'no_singleline_whitespace_before_semicolons' => true,
'no_space_around_double_colon' => true,
'no_spaces_after_function_name' => true,
'no_spaces_around_offset' => true,
'no_superfluous_elseif' => false, // Might be risky on a huge code base
'no_superfluous_phpdoc_tags' => ['allow_mixed' => true],
'no_trailing_comma_in_singleline' => ['elements' => ['arguments', 'array_destructuring', 'array', 'group_import']],
'no_trailing_whitespace' => true,
'no_trailing_whitespace_in_comment' => true,
'no_trailing_whitespace_in_string' => false, // Too dangerous
'no_unneeded_control_parentheses' => true,
'no_unneeded_braces' => true,
'no_unneeded_final_method' => true,
'no_unreachable_default_argument_value' => true,
'no_unset_cast' => true,
'no_unset_on_property' => false,
'no_unused_imports' => true,
'no_useless_else' => true,
'no_useless_return' => true,
'no_useless_sprintf' => true,
'no_whitespace_before_comma_in_array' => true,
'no_whitespace_in_blank_line' => true,
'non_printable_character' => true,
'normalize_index_brace' => true,
'not_operator_with_space' => false, // No we prefer to keep '!' without spaces
'not_operator_with_successor_space' => false, // idem
'nullable_type_declaration_for_default_null_value' => true,
'object_operator_without_whitespace' => true,
'octal_notation' => true,
'operator_linebreak' => true,
'ordered_class_elements' => false, // We prefer to keep some freedom
'ordered_imports' => true,
'ordered_interfaces' => true,
'ordered_traits' => true,
'php_unit_attributes' => ['keep_annotations' => false],
'php_unit_construct' => true,
'php_unit_dedicate_assert' => true,
'php_unit_dedicate_assert_internal_type' => true,
'php_unit_expectation' => true,
'php_unit_fqcn_annotation' => true,
'php_unit_internal_class' => false, // Because tests are excluded from package
'php_unit_method_casing' => true,
'php_unit_mock' => true,
'php_unit_mock_short_will_return' => true,
'php_unit_namespaced' => true,
'php_unit_no_expectation_annotation' => true,
'phpdoc_order_by_value' => ['annotations' => ['covers']],
'php_unit_set_up_tear_down_visibility' => true,
'php_unit_size_class' => false, // That seems extra work to maintain for little benefits
'php_unit_strict' => false, // We sometime actually need assertEquals
'php_unit_test_annotation' => true,
'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
'php_unit_test_class_requires_covers' => false, // We don't care as much as we should about coverage
'phpdoc_add_missing_param_annotation' => false, // Don't add things that bring no value
'phpdoc_align' => false, // Waste of time
'phpdoc_annotation_without_dot' => false,
'phpdoc_indent' => true,
'phpdoc_line_span' => false, // Unfortunately our old comments turn even uglier with this
'phpdoc_no_access' => true,
'phpdoc_no_alias_tag' => true,
'phpdoc_no_empty_return' => true,
'phpdoc_no_package' => true,
'phpdoc_no_useless_inheritdoc' => true,
'phpdoc_order' => true,
'phpdoc_return_self_reference' => true,
'phpdoc_scalar' => true,
'phpdoc_separation' => true,
'phpdoc_single_line_var_spacing' => true,
'phpdoc_summary' => true,
'phpdoc_tag_casing' => true,
'phpdoc_tag_type' => true,
'phpdoc_to_comment' => false, // interferes with annotations
'phpdoc_to_param_type' => false, // Because experimental, but interesting for one shot use
'phpdoc_to_property_type' => false, // Because experimental, but interesting for one shot use
'phpdoc_to_return_type' => false, // Because experimental, but interesting for one shot use
'phpdoc_trim' => true,
'phpdoc_trim_consecutive_blank_line_separation' => true,
'phpdoc_types' => true,
'phpdoc_types_order' => true,
'phpdoc_var_annotation_correct_order' => true,
'phpdoc_var_without_name' => true,
'pow_to_exponentiation' => true,
'protected_to_private' => true,
'psr_autoloading' => true,
'random_api_migration' => true,
'return_assignment' => false, // Sometimes useful for clarity or debug
'return_type_declaration' => true,
'self_accessor' => true,
'self_static_accessor' => true,
'semicolon_after_instruction' => false, // Buggy in `samples/index.php`
'set_type_to_cast' => true,
'short_scalar_cast' => true,
'simple_to_complex_string_variable' => false, // Would differ from TypeScript without obvious advantages
'simplified_if_return' => false, // Even if technically correct we prefer to be explicit
'simplified_null_return' => false, // Even if technically correct we prefer to be explicit
'single_blank_line_at_eof' => true,
'single_class_element_per_statement' => true,
'single_import_per_statement' => true,
'single_line_after_imports' => true,
'single_line_comment_style' => true,
'single_line_throw' => false, // I don't see any reason for having a special case for Exception
'single_quote' => true,
'single_trait_insert_per_statement' => true,
'space_after_semicolon' => true,
'spaces_inside_parentheses' => ['space' => 'none'],
'standardize_increment' => true,
'standardize_not_equals' => true,
'static_lambda' => false, // Risky if we can't guarantee nobody use `bindTo()`
'strict_comparison' => false, // No, too dangerous to change that
'string_implicit_backslashes' => ['single_quoted' => 'unescape', 'double_quoted' => 'escape', 'heredoc' => 'escape'], // was escape_implicit_backslashes
'strict_param' => false, // No, too dangerous to change that
'string_length_to_empty' => true,
'string_line_ending' => true,
'switch_case_semicolon_to_colon' => true,
'switch_case_space' => true,
'switch_continue_to_break' => true,
'ternary_operator_spaces' => true,
'ternary_to_elvis_operator' => true,
'ternary_to_null_coalescing' => true,
'trailing_comma_in_multiline' => true,
'trim_array_spaces' => true,
'type_declaration_spaces' => ['elements' => ['function', 'property']], // was function_typehint_space
'types_spaces' => true,
'unary_operator_spaces' => true,
'use_arrow_functions' => true,
'void_return' => true,
'whitespace_after_comma_in_array' => true,
'yoda_style' => false,
]);
return $config;
================================================
FILE: .phpcs.xml.dist
================================================
<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="PHP_CodeSniffer"
xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd">
<file>samples</file>
<file>src</file>
<file>tests</file>
<file>infra</file>
<file>bin</file>
<arg name="report-width" value="200"/>
<arg name="parallel" value="80"/>
<arg name="cache" value="/tmp/.phpspreadsheet.phpcs-cache"/>
<arg name="colors"/>
<arg value="np"/>
<!-- Include the whole PSR12 standard -->
<rule ref="PSR12">
<exclude name="PSR2.Methods.MethodDeclaration.Underscore"/>
</rule>
</ruleset>
================================================
FILE: .readthedocs.yaml
================================================
# Read the Docs configuration file for MkDocs projects
# See https://docs.readthedocs.io/en/stable/config-file/v2.html
version: 2
build:
os: ubuntu-22.04
tools:
python: "3"
mkdocs:
configuration: mkdocs.yml
================================================
FILE: CHANGELOG.PHPExcel.md
================================================
# Changelog for PHPExcel
This is the historic changelog of the project when it was still called PHPExcel.
It exists only for historical purposes and versions mentioned here should not be
confused with PhpSpreadsheet versions.
## [1.8.1] - 2015-04-30
### Bugfixes
- Fix for Writing an Open Document cell with non-numeric formula - @goncons [#397](https://github.com/PHPOffice/PHPExcel/issues/397)
- Avoid potential divide by zero in basedrawing - @sarciszewski [#329](https://github.com/PHPOffice/PHPExcel/issues/329)
- XML External Entity (XXE) Processing, different behaviour between simplexml_load_string() and simplexml_load_file(). - @ymaerschalck [#405](https://github.com/PHPOffice/PHPExcel/issues/405)
- Fix to ensure that current cell is maintained when executing formula calculations - @MarkBaker
- Keep/set the value on Reader _loadSheetsOnly as NULL, courtesy of Restless-ET - @MarkBaker [#350](https://github.com/PHPOffice/PHPExcel/issues/350)
- Loading an Excel 2007 spreadsheet throws an "Autofilter must be set on a range of cells" exception - @MarkBaker [CodePlex #18105](https://phpexcel.codeplex.com/workitem/18105)
- Fix to autoloader registration for backward compatibility with PHP 5.2.0 not accepting the prepend flag - @MarkBaker [#388](https://github.com/PHPOffice/PHPExcel/issues/388)
- DOM loadHTMLFile() failing with options flags when using PHP < 5.4.0 - @MarkBaker [#384](https://github.com/PHPOffice/PHPExcel/issues/384)
- Fix for percentage operator in formulae for BIFF Writer - @MarkBaker
- Fix to getStyle() call for cell object - @MarkBaker
- Discard Autofilters in Excel2007 Reader when filter range isn't a valid range - @MarkBaker
- Fix invalid NA return in VLOOKUP - @frozenstupidity [#423](https://github.com/PHPOffice/PHPExcel/issues/423)
- "No Impact" conditional formatting fix for NumberFormat - @wiseloren [CodePlex #21454](https://phpexcel.codeplex.com/workitem/21454)
- Bug in Excel2003XML reader, parsing merged cells - @bobwitlox [#467](https://github.com/PHPOffice/PHPExcel/issues/467)
- Fix for CEIL() and FLOOR() when number argument is zero - @MarkBaker [#302](https://github.com/PHPOffice/PHPExcel/issues/302)
### General
- Remove cells cleanly when calling RemoveRow() or RemoveColumn() - @MarkBaker
- Small performance improvement for autosize columns - @MarkBaker
- Change the getter/setter for zeroHeight to camel case - @frost-nzcr4 [#379](https://github.com/PHPOffice/PHPExcel/issues/379)
- DefaultValueBinder is too much aggressive when converting string to numeric - @MarkBaker [#394](https://github.com/PHPOffice/PHPExcel/issues/394)
- Default precalculate formulas to false for writers - @MarkBaker
- Set default Cyclic Reference behaviour to 1 to eliminate exception when using a single cyclic iteration in formulae - @MarkBaker
### Features
- Some Excel writer libraries erroneously use Codepage 21010 for UTF-16LE - @MarkBaker [#396](https://github.com/PHPOffice/PHPExcel/issues/396)
- Methods to manage most of the existing options for Chart Axis, Major Grid-lines and Minor Grid-lines - @WiktrzGE [#404](https://github.com/PHPOffice/PHPExcel/issues/404)
- ODS read/write comments in the cell - @frost-nzcr4 [#403](https://github.com/PHPOffice/PHPExcel/issues/403)
- Additional Mac CJK codepage definitions - @CQD [#389](https://github.com/PHPOffice/PHPExcel/issues/389)
- Update Worksheet.php getStyleByColumnAndRow() to allow a range of cells rather than just a single cell - @bolovincev [#269](https://github.com/PHPOffice/PHPExcel/issues/269)
- New methods added for testing cell status within merge groups - @MarkBaker
- Handling merge cells in HTML Reader - @cifren/MBaker [#205](https://github.com/PHPOffice/PHPExcel/issues/205)
- Helper to convert basic HTML markup to a Rich Text object - @MarkBaker
- Improved Iterators - @MarkBaker
- New Column Iterator
- Support for row and column ranges
- Improved handling for next/prev
### Security
- XML filescan in XML-based Readers to prevent XML Entity Expansion (XEE) - @MarkBaker
- (see http://projects.webappsec.org/w/page/13247002/XML%20Entity%20Expansion for an explanation of XEE injection) attacks
- Reference CVE-2015-3542 - Identification of problem courtesy of Dawid Golunski (Pentest Ltd.)
## [1.8.0] - 2014-03-02
### Bugfixes
- Undefined variable: fileHandle in CSV Reader - @MarkBaker [CodePlex #19830](https://phpexcel.codeplex.com/workitem/19830)
- Out of memory in style/supervisor.php - @MarkBaker [CodePlex #19968](https://phpexcel.codeplex.com/workitem/19968)
- Style error with merged cells in PDF Writer - @MarkBaker
- Problem with cloning worksheets - @MarkBaker
- Bug fix reading Open Office files - @tavoarcila [#259](https://github.com/PHPOffice/PHPExcel/issues/259)
- Serious bug in absolute cell reference used in shared formula - @MarkBaker [CodePlex #20397](https://phpexcel.codeplex.com/workitem/20397)
- Would also have affected insert/delete column/row- CHOOSE() returns "#VALUE!" if the 1st entry is chosen - @RomanSyroeshko [#267](https://github.com/PHPOffice/PHPExcel/issues/267)
- When duplicating styles, styles shifted by one column to the right - @Gemorroj [#268](https://github.com/PHPOffice/PHPExcel/issues/268)
- Fix also applied to duplicating conditional styles- Fix for formulae that reference a sheet whose name begins with a digit: - @IndrekHaav [#212](https://github.com/PHPOffice/PHPExcel/issues/212)
- these were erroneously identified as numeric values, causing the parser to throw an undefined variable error.- Fixed undefined variable error due to $styleArray being used before it's initialised - @IndrekHaav [CodePlex #16208](https://phpexcel.codeplex.com/workitem/16208)
- ISTEXT() return wrong result if referencing an empty but formatted cell - @PowerKiKi [#273](https://github.com/PHPOffice/PHPExcel/issues/273)
- Binary comparison of strings are case insensitive - @PowerKiKi [#270](https://github.com/PHPOffice/PHPExcel/issues/270), [#31](https://github.com/PHPOffice/PHPExcel/issues/31)
- Insert New Row/Column Before is not correctly updating formula references - @MarkBaker [#275](https://github.com/PHPOffice/PHPExcel/issues/275)
- Passing an array of cells to _generateRow() in the HTML/PDF Writer causes caching problems with last cell in the range - @MarkBaker [#257](https://github.com/PHPOffice/PHPExcel/issues/257)
- Fix to empty worksheet garbage collection when using cell caching - @MarkBaker [#193](https://github.com/PHPOffice/PHPExcel/issues/193)
- Excel2007 does not correctly mark rows as hidden - @Jazzo [#248](https://github.com/PHPOffice/PHPExcel/issues/248)
- Fixed typo in Chart/Layout set/getYMode() - @Roy Shahbazian [#299](https://github.com/PHPOffice/PHPExcel/issues/299)
- Fatal error: Call to a member function cellExists() line: 3327 in calculation.php if referenced worksheet doesn't exist - @EliuFlorez [#279](https://github.com/PHPOffice/PHPExcel/issues/279)
- AdvancedValueBinder "Division by zero"-error - @MarkBaker [#290](https://github.com/PHPOffice/PHPExcel/issues/290)
- Adding Sheet to Workbook Bug - @MarkBaker [CodePlex #20604](https://phpexcel.codeplex.com/workitem/20604)
- Calculation engine incorrectly evaluates empty cells as #VALUE - @MarkBaker [CodePlex #20703](https://phpexcel.codeplex.com/workitem/20703)
- Formula references to cell on another sheet in ODS files - @MarkBaker [CodePlex #20760](https://phpexcel.codeplex.com/workitem/20760)
### Features
- LibreOffice created XLSX files results in an empty file. - @MarkBaker [#321](https://github.com/PHPOffice/PHPExcel/issues/321), [#158](https://github.com/PHPOffice/PHPExcel/issues/158), [CodePlex #17824](https://phpexcel.codeplex.com/workitem/17824)
- Implementation of the Excel HLOOKUP() function - @amerov
- Added "Quote Prefix" to style settings (Excel2007 Reader and Writer only) - @MarkBaker
- Added Horizontal FILL alignment for Excel5 and Excel2007 Readers/Writers, and Horizontal DISTRIBUTED alignment for Excel2007 Reader/Writer - @MarkBaker
- Add support for reading protected (RC4 encrypted) .xls files - @trvrnrth [#261](https://github.com/PHPOffice/PHPExcel/issues/261)
### General
- Adding support for macros, Ribbon in Excel 2007 - @LWol [#252](https://github.com/PHPOffice/PHPExcel/issues/252)
- Remove array_shift in ReferenceHelper::insertNewBefore improves column or row delete speed - @cdhutch [CodePlex #20055](https://phpexcel.codeplex.com/workitem/20055)
- Improve stock chart handling and rendering, with help from Swashata Ghosh - @MarkBaker
- Fix to calculation properties for Excel2007 so that the opening application will only recalculate on load if it's actually required - @MarkBaker
- Modified Excel2007 Writer to default preCalculateFormulas to false - @MarkBaker
- Note that autosize columns will still recalculate affected formulae internally- Functionality to getHighestRow() for a specified column, and getHighestColumn() for a specified row - @dresenhista [#242](https://github.com/PHPOffice/PHPExcel/issues/242)
- Modify PHPExcel_Reader_Excel2007 to use zipClass from PHPExcel_Settings::getZipClass() - @adamriyadi [#247](https://github.com/PHPOffice/PHPExcel/issues/247)
- This allows the use of PCLZip when reading for people that don't have access to ZipArchive
### Security
- Convert properties to string in OOCalc reader - @infojunkie [#276](https://github.com/PHPOffice/PHPExcel/issues/276)
- Disable libxml external entity loading by default. - @maartenba [#322](https://github.com/PHPOffice/PHPExcel/issues/322)
- This is to prevent XML External Entity Processing (XXE) injection attacks (see https://websec.io/2012/08/27/Preventing-XEE-in-PHP.html for an explanation of XXE injection).
- Reference CVE-2014-2054
## [1.7.9] - 2013-06-02
### Features
- Include charts option for HTML Writer - @MarkBaker
- Added composer file - @MarkBaker
- cache_in_memory_gzip "eats" last worksheet line, cache_in_memory doesn't - @MarkBaker [CodePlex #18844](https://phpexcel.codeplex.com/workitem/18844)
- echo statements in HTML.php - @MarkBaker [#104](https://github.com/PHPOffice/PHPExcel/issues/104)
### Bugfixes
- Added getStyle() method to Cell object - @MarkBaker
- Error in PHPEXCEL/Calculation.php script on line 2976 (stack pop check) - @Asker [CodePlex #18777](https://phpexcel.codeplex.com/workitem/18777)
- CSV files without a file extension being identified as HTML - @MarkBaker [CodePlex #18794](https://phpexcel.codeplex.com/workitem/18794)
- Wrong check for maximum number of rows in Excel5 Writer - @AndreKR [#66](https://github.com/PHPOffice/PHPExcel/issues/66)
- Cache directory for DiscISAM cache storage cannot be set - @MarkBaker [#67](https://github.com/PHPOffice/PHPExcel/issues/67)
- Fix to Excel2007 Reader for hyperlinks with an anchor fragment (following a #), otherwise they were treated as sheet references - @MarkBaker [CodePlex #17976](https://phpexcel.codeplex.com/workitem/17976)
- getSheetNames() fails on numeric (floating point style) names with trailing zeroes - @MarkBaker [CodePlex #18963](https://phpexcel.codeplex.com/workitem/18963)
- Modify cell's getCalculatedValue() method to return the content of RichText objects rather than the RichText object itself - @MarkBaker
- Fixed formula/formatting bug when removing rows - @techhead [#70](https://github.com/PHPOffice/PHPExcel/issues/70)
- Fix to cellExists for non-existent namedRanges - @alexgann [#63](https://github.com/PHPOffice/PHPExcel/issues/63)
- Sheet View in Excel5 Writer - @Progi1984 [#22](https://github.com/PHPOffice/PHPExcel/issues/22)
- PHPExcel_Worksheet::getCellCollection() may not return last cached cell - @amironov [#82](https://github.com/PHPOffice/PHPExcel/issues/82)
- Rich Text containing UTF-8 characters creating unreadable content with Excel5 Writer - @teso [CodePlex #18551](https://phpexcel.codeplex.com/workitem/18551)
- Work item GH-8/CP11704 : Conditional formatting in Excel 5 Writer - @Progi1984
- canRead() Error for GoogleDocs ODS files: in ODS files from Google Docs there is no mimetype file - @MarkBaker [#113](https://github.com/PHPOffice/PHPExcel/issues/113)
- "Sheet index is out of bounds." Exception - @MarkBaker [#80](https://github.com/PHPOffice/PHPExcel/issues/80)
- Fixed number format fatal error - @ccorliss [#105](https://github.com/PHPOffice/PHPExcel/issues/105)
- Add DROP TABLE in destructor for SQLite and SQLite3 cache controllers - @MarkBaker
- Fix merged-cell borders on HTML/PDF output - @alexgann [#154](https://github.com/PHPOffice/PHPExcel/issues/154)
- Fix: Hyperlinks break when removing rows - @Shanto [#161](https://github.com/PHPOffice/PHPExcel/issues/161)
- Fix Extra Table Row From Images and Charts - @neclimdul [#166](https://github.com/PHPOffice/PHPExcel/issues/166)
### General
- Single cell print area - @MarkBaker [#130](https://github.com/PHPOffice/PHPExcel/issues/130)
- Improved AdvancedValueBinder for currency - @kea [#69](https://github.com/PHPOffice/PHPExcel/issues/69)
- Fix for environments where there is no access to /tmp but to upload_tmp_dir - @MarkBaker
- Provided an option to set the sys_get_temp_dir() call to use the upload_tmp_dir; though by default the standard temp directory will still be used- Search style by identity in PHPExcel_Worksheet::duplicateStyle() - @amironov [#84](https://github.com/PHPOffice/PHPExcel/issues/84)
- Fill SheetView IO in Excel5 - @karak [#85](https://github.com/PHPOffice/PHPExcel/issues/85)
- Memory and Speed improvements in PHPExcel_Reader_Excel5 - @cfhay [CodePlex #18958](https://phpexcel.codeplex.com/workitem/18958)
- Modify listWorksheetNames() and listWorksheetInfo to use XMLReader with streamed XML rather than SimpleXML - @MarkBaker [#78](https://github.com/PHPOffice/PHPExcel/issues/78)
- Restructuring of PHPExcel Exceptions - @dbonsch
- Refactor Calculation Engine from singleton to a Multiton - @MarkBaker
- Ensures that calculation cache is maintained independently for different workbooks
## [1.7.8] - 2012-10-12
### Features
- Phar builder script to add phar file as a distribution option - @kkamkou
- Refactor PDF Writer to allow use with a choice of PDF Rendering library - @MarkBaker
- rather than restricting to tcPDF
- Current options are tcPDF, mPDF, DomPDF
- tcPDF Library has now been removed from the deployment bundle- Initial version of HTML Reader - @MarkBaker
- Implement support for AutoFilter in PHPExcel_Writer_Excel5 - @Progi1984
- Modified ERF and ERFC Engineering functions to accept Excel 2010's modified acceptance of negative arguments - @MarkBaker
- Support SheetView `view` attribute (Excel2007) - @k1LoW
- Excel compatibility option added for writing CSV files - @MarkBaker
- While Excel 2010 can read CSV files with a simple UTF-8 BOM, Excel2007 and earlier require UTF-16LE encoded tab-separated files.
- The new setExcelCompatibility(TRUE) option for the CSV Writer will generate files with this formatting for easy import into Excel2007 and below.- Language implementations for Turkish (tr) - @MarkBaker
- Added fraction tests to advanced value binder - @MarkBaker
### General
- Allow call to font setUnderline() for underline format to specify a simple boolean for UNDERLINE_NONE or UNDERLINE_SINGLE - @MarkBaker
- Add Currency detection to the Advanced Value Binder - @alexgann
- setCellValueExplicitByColumnAndRow() do not return PHPExcel_Worksheet - @MarkBaker [CodePlex #18404](https://phpexcel.codeplex.com/workitem/18404)
- Reader factory doesn't read anymore XLTX and XLT files - @MarkBaker [CodePlex #18324](https://phpexcel.codeplex.com/workitem/18324)
- Magic __toString() method added to Cell object to return raw data value as a string - @MarkBaker
- Add cell indent to html rendering - @alexgann
### Bugfixes
- ZeroHeight for rows in sheet format - @Raghav1981
- OOCalc cells containing <text:span> inside the <text:p> tag - @cyberconte
- Fix to listWorksheetInfo() method for OOCalc Reader - @schir1964
- Support for "e" (epoch) date format mask - @MarkBaker
- Rendered as a 4-digit CE year in non-Excel outputs- Background color cell is always black when editing cell - @MarkBaker
- Allow "no impact" to formats on Conditional Formatting - @MarkBaker
- OOCalc Reader fix for NULL cells - @wackonline
- Fix to excel2007 Chart Writer when a $plotSeriesValues is empty - @seltzlab
- Various fixes to Chart handling - @MarkBaker
- Error loading xlsx file with column breaks - @MarkBaker [CodePlex #18370](https://phpexcel.codeplex.com/workitem/18370)
- OOCalc Reader now handles percentage and currency data types - @MarkBaker
- mb_stripos empty delimiter - @MarkBaker
- getNestingLevel() Error on Excel5 Read - @takaakik
- Fix to Excel5 Reader when cell annotations are defined before their referenced text objects - @MarkBaker
- OOCalc Reader modified to process number-rows-repeated - @MarkBaker
- Chart Title compatibility on Excel 2007 - @MarkBaker [CodePlex #18377](https://phpexcel.codeplex.com/workitem/18377)
- Chart Refresh returning cell reference rather than values - @MarkBaker [CodePlex #18146](https://phpexcel.codeplex.com/workitem/18146)
- Autoshape being identified in twoCellAnchor when includeCharts is TRUE triggering load error - @MarkBaker [CodePlex #18145](https://phpexcel.codeplex.com/workitem/18145)
- v-type texts for series labels now recognised and parsed correctly - @MarkBaker [CodePlex #18325](https://phpexcel.codeplex.com/workitem/18325)
- load file failed if the file has no extensionType - @wolf5x [CodePlex #18492](https://phpexcel.codeplex.com/workitem/18492)
- Pattern fill colours in Excel2007 Style Writer - @dverspui
- Excel2007 Writer order of font style elements to conform with Excel2003 using compatibility pack - @MarkBaker
- Problems with $_activeSheetIndex when decreased below 0. - @MarkBaker [CodePlex #18425](https://phpexcel.codeplex.com/workitem/18425)
- PHPExcel_CachedObjectStorage_SQLite3::cacheMethodIsAvailable() uses class_exists - autoloader throws error - @MarkBaker [CodePlex #18597](https://phpexcel.codeplex.com/workitem/18597)
- Cannot access private property PHPExcel_CachedObjectStorageFactory::$_cacheStorageMethod - @MarkBaker [CodePlex #18598](https://phpexcel.codeplex.com/workitem/18598)
- Data titles for charts - @MarkBaker [CodePlex #18397](https://phpexcel.codeplex.com/workitem/18397)
- PHPExcel_Chart_Layout now has methods for getting/setting switches for displaying/hiding chart data labels- Discard single cell merge ranges when reading (stupid that Excel allows them in the first place) - @MarkBaker
- Discard hidden autoFilter named ranges - @MarkBaker
## [1.7.7] - 2012-05-19
### Bugfixes
- Support for Rich-Text in PHPExcel_Writer_Excel5 - @Progi1984 [CodePlex #8916](https://phpexcel.codeplex.com/workitem/8916)
- Change iterators to implement Iterator rather than extend CachingIterator, as a fix for PHP 5.4. changes in SPL - @MarkBaker
- Invalid cell coordinate in Autofilter for Excel2007 Writer - @MarkBaker [CodePlex #15459](https://phpexcel.codeplex.com/workitem/15459)
- PCLZip library issue - @MarkBaker [CodePlex #15518](https://phpexcel.codeplex.com/workitem/15518)
- Excel2007 Reader canRead function bug - @MarkBaker [CodePlex #15537](https://phpexcel.codeplex.com/workitem/15537)
- Support for Excel functions whose return can be used as either a value or as a cell reference depending on its context within a formula - @MarkBaker
- ini_set() call in Calculation class destructor - @gilles06 [CodePlex #15707](https://phpexcel.codeplex.com/workitem/15707)
- RangeToArray strange array keys - @MarkBaker [CodePlex #15786](https://phpexcel.codeplex.com/workitem/15786)
- INDIRECT() function doesn't work with named ranges - @MarkBaker [CodePlex #15762](https://phpexcel.codeplex.com/workitem/15762)
- Locale-specific fix to text functions when passing a boolean argument instead of a string - @MarkBaker
- reader/CSV fails on this file - @MarkBaker [CodePlex #16246](https://phpexcel.codeplex.com/workitem/16246)
- auto_detect_line_endings now set in CSV reader- $arguments improperly used in CachedObjectStorage/PHPTemp.php - @MarkBaker [CodePlex #16212](https://phpexcel.codeplex.com/workitem/16212)
- Bug In Cache System (cell reference when throwing caching errors) - @MarkBaker [CodePlex #16643](https://phpexcel.codeplex.com/workitem/16643)
- PHP Invalid index notice on writing excel file when active sheet has been deleted - @MarkBaker [CodePlex #16895](https://phpexcel.codeplex.com/workitem/16895)
- External links in Excel2010 files cause Fatal error - @MarkBaker [CodePlex #16956](https://phpexcel.codeplex.com/workitem/16956)
- Previous calculation engine error conditions trigger cyclic reference errors - @MarkBaker [CodePlex #16960](https://phpexcel.codeplex.com/workitem/16960)
- PHPExcel_Style::applyFromArray() returns null rather than style object in advanced mode - @mkopinsky [CodePlex #16266](https://phpexcel.codeplex.com/workitem/16266)
- Cell::getFormattedValue returns RichText object instead of string - @fauvel [CodePlex #16958](https://phpexcel.codeplex.com/workitem/16958)
- Indexed colors do not refer to Excel's indexed colors? - @MarkBaker [CodePlex #17166](https://phpexcel.codeplex.com/workitem/17166)
- Indexed colors should be consistent with Excel and start from 1 (current index starts at 0) - @MarkBaker [CodePlex #17199](https://phpexcel.codeplex.com/workitem/17199)
- Named Range definition in .xls when sheet reeference is quote wrapped - @MarkBaker [CodePlex #17262](https://phpexcel.codeplex.com/workitem/17262)
- duplicateStyle() method doesn't duplicate conditional formats - @MarkBaker [CodePlex #17403](https://phpexcel.codeplex.com/workitem/17403)
- Added an equivalent duplicateConditionalStyle() method for duplicating conditional styles- =sumproduct(A,B) <> =sumproduct(B,A) in xlsx - @bnr [CodePlex #17501](https://phpexcel.codeplex.com/workitem/17501)
### Features
- OOCalc cells contain same data bug? - @cyberconte [CodePlex #17471](https://phpexcel.codeplex.com/workitem/17471)
- listWorksheetInfo() method added to Readers... courtesy of Christopher Mullins - @schir1964
- Options for cell caching using Igbinary and SQLite/SQlite3. - @MarkBaker
- Additional row iterator options: allow a start row to be defined in the constructor; seek(), and prev() methods added. - @MarkBaker
- Implement document properties in Excel5 writer - @Progi1984 [CodePlex #9759](https://phpexcel.codeplex.com/workitem/9759)
### General
- Implement chart functionality (EXPERIMENTAL) - @MarkBaker [CodePlex #16](https://phpexcel.codeplex.com/workitem/16)
- Initial definition of chart objects.
- Reading Chart definitions through the Excel2007 Reader
- Facility to render charts to images using the 3rd-party jpgraph library
- Writing Charts using the Excel2007 Writer- Fix to build to ensure that Examples are included with the documentation - @MarkBaker
- Reduce cell caching overhead using dirty flag to ensure that cells are only rewritten to the cache if they have actually been changed - @MarkBaker
- Improved memory usage in CSV Writer - @MarkBaker
- Improved speed and memory usage in Excel5 Writer - @MarkBaker
- Experimental - @MarkBaker
- Added getHighestDataColumn(), getHighestDataRow(), getHighestRowAndColumn() and calculateWorksheetDataDimension() methods for the worksheet that return the highest row and column that have cell records- Support for Rich-Text in PHPExcel_Writer_Excel5 - @Progi1984 [CodePlex #8916](https://phpexcel.codeplex.com/workitem/8916)
- Two easy to fix Issues concerning PHPExcel_Token_Stack (l10n/UC) - @MarkBaker [CodePlex #15405](https://phpexcel.codeplex.com/workitem/15405)
- Locale file paths not fit for windows - @MarkBaker [CodePlex #15461](https://phpexcel.codeplex.com/workitem/15461)
- Add file directory as a cache option for cache_to_discISAM - @MarkBaker [CodePlex #16643](https://phpexcel.codeplex.com/workitem/16643)
- Datatype.php & constant TYPE_NULL - @MarkBaker [CodePlex #16923](https://phpexcel.codeplex.com/workitem/16923)
- Ensure use of system temp directory for all temporary work files, unless explicitly specified - @MarkBaker
- [Patch] faster stringFromColumnIndex() - @char101 [CodePlex #16359](https://phpexcel.codeplex.com/workitem/16359)
- Fix for projects that still use old autoloaders - @whit1206 [CodePlex #16028](https://phpexcel.codeplex.com/workitem/16028)
- Unknown codepage: 10007 - @atz [CodePlex #17024](https://phpexcel.codeplex.com/workitem/17024)
- Additional Mac codepages
## [1.7.6] - 2011-02-27
### Features
- Provide option to use PCLZip as an alternative to ZipArchive. - @MarkBaker
- This allows the writing of Excel2007 files, even without ZipArchive enabled (it does require zlib), or when php_zip is one of the buggy PHP 5.2.6 or 5.2.8 versions
- It can be enabled using PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
- Note that it is not yet implemented as an alternative to ZipArchive for those Readers that are extracting from zips- Added listWorksheetNames() method to Readers that support multiple worksheets in a workbook, allowing a user to extract a list of all the worksheet names from a file without parsing/loading the whole file. - @MarkBaker [CodePlex #14979](https://phpexcel.codeplex.com/workitem/14979)
- Speed boost and memory reduction in the Worksheet toArray() method. - @MarkBaker
- Added new rangeToArray() and namedRangeToArray() methods to the PHPExcel_Worksheet object. - @MarkBaker
- Functionally, these are identical to the toArray() method, except that they take an additional first parameter of a Range (e.g. 'B2:C3') or a Named Range name.
- Modified the toArray() method so that it actually uses rangeToArray().- Added support for cell comments in the OOCalc, Gnumeric and Excel2003XML Readers, and in the Excel5 Reader - @MarkBaker
- Improved toFormattedString() handling for Currency and Accounting formats to render currency symbols - @MarkBaker
### Bugfixes
- Implement more Excel calculation functions - @MarkBaker
- Implemented the DAVERAGE(), DCOUNT(), DCOUNTA(), DGET(), DMAX(), DMIN(), DPRODUCT(), DSTDEV(), DSTDEVP(), DSUM(), DVAR() and DVARP() Database functions- Simple =IF() formula disappears - @MarkBaker [CodePlex #14888](https://phpexcel.codeplex.com/workitem/14888)
- PHP Warning: preg_match(): Compilation failed: PCRE does not support \\L, \\l, \\N, \\P, \\p, \\U, \\u, or \\X - @MarkBaker [CodePlex #14898](https://phpexcel.codeplex.com/workitem/14898)
- VLOOKUP choking on parameters in PHPExcel.1.7.5/PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #14901](https://phpexcel.codeplex.com/workitem/14901)
- PHPExcel_Cell::isInRange() incorrect results - offset by one column - @MarkBaker [CodePlex #14973](https://phpexcel.codeplex.com/workitem/14973)
- Treat CodePage of 0 as CP1251 (for .xls files written by applications that don't set the CodePage correctly, such as Apple Numbers) - @MarkBaker
- Need method for removing autoFilter - @MarkBaker [CodePlex #11583](https://phpexcel.codeplex.com/workitem/11583)
- coordinateFromString throws exception for rows greater than 99,999 - @MarkBaker [CodePlex #15029](https://phpexcel.codeplex.com/workitem/15029)
- PHPExcel Excel2007 Reader colour problems with solidfill - @MarkBaker [CodePlex #14999](https://phpexcel.codeplex.com/workitem/14999)
- Formatting get lost and edit a template XLSX file - @MarkBaker [CodePlex #13215](https://phpexcel.codeplex.com/workitem/13215)
- Excel 2007 Reader /writer lost fontcolor - @MarkBaker [CodePlex #14029](https://phpexcel.codeplex.com/workitem/14029)
- file that makes cells go black - @MarkBaker [CodePlex #13374](https://phpexcel.codeplex.com/workitem/13374)
- Minor patchfix for Excel2003XML Reader when XML is defined with a charset attribute - @MarkBaker
- PHPExcel_Worksheet->toArray() index problem - @MarkBaker [CodePlex #15089](https://phpexcel.codeplex.com/workitem/15089)
- Merge cells 'un-merge' when using an existing spreadsheet - @MarkBaker [CodePlex #15094](https://phpexcel.codeplex.com/workitem/15094)
- Worksheet fromArray() only working with 2-D arrays - @MarkBaker [CodePlex #15129](https://phpexcel.codeplex.com/workitem/15129)
- rangeToarray function modified for non-existent cells - @xkeshav [CodePlex #15172](https://phpexcel.codeplex.com/workitem/15172)
- Images not getting copyied with the ->clone function - @MarkBaker [CodePlex #14980](https://phpexcel.codeplex.com/workitem/14980)
- AdvancedValueBinder.php: String sometimes becomes a date when it shouldn't - @MarkBaker [CodePlex #11576](https://phpexcel.codeplex.com/workitem/11576)
- Fix Excel5 Writer so that it only writes column dimensions for columns that are actually used rather than the full range (A to IV) - @MarkBaker
- FreezePane causing damaged or modified error - @MarkBaker [CodePlex #15198](https://phpexcel.codeplex.com/workitem/15198)
- The freezePaneByColumnAndRow() method row argument should default to 1 rather than 0.
- Default row argument for all __ByColumnAndRow() methods should be 1- Column reference rather than cell reference in Print Area definition - @MarkBaker [CodePlex #15121](https://phpexcel.codeplex.com/workitem/15121)
- Fix Excel2007 Writer to handle print areas that are defined as row or column ranges rather than just as cell ranges- Reduced false positives from isDateTimeFormatCode() method by suppressing testing within quoted strings - @MarkBaker
- Caching and tmp partition exhaustion - @MarkBaker [CodePlex #15312](https://phpexcel.codeplex.com/workitem/15312)
- Writing to Variable No Longer Works. $_tmp_dir Missing in PHPExcel\PHPExcel\Shared\OLE\PPS\Root.php - @MarkBaker [CodePlex #15308](https://phpexcel.codeplex.com/workitem/15308)
- Named ranges with dot don't get parsed properly - @MarkBaker [CodePlex #15379](https://phpexcel.codeplex.com/workitem/15379)
- insertNewRowBefore fails to consistently update references - @MarkBaker [CodePlex #15096](https://phpexcel.codeplex.com/workitem/15096)
- "i" is not a valid character for Excel date format masks (in isDateTimeFormatCode() method) - @MarkBaker
- PHPExcel_ReferenceHelper::insertNewBefore() is missing an 'Update worksheet: comments' section - @MKunert [CodePlex #15421](https://phpexcel.codeplex.com/workitem/15421)
### General
- Full column/row references in named ranges not supported by updateCellReference() - @MarkBaker [CodePlex #15409](https://phpexcel.codeplex.com/workitem/15409)
- Improved performance (speed), for building the Shared Strings table in the Excel2007 Writer. - @MarkBaker
- Improved performance (speed), for PHP to Excel date conversions - @MarkBaker
- Enhanced SheetViews element structures in the Excel2007 Writer for frozen panes. - @MarkBaker
- Removed Serialized Reader/Writer as these no longer work. - @MarkBaker
## [1.7.5] - 2010-12-10
### Features
- Implement Gnumeric File Format - @MarkBaker [CodePlex #8769](https://phpexcel.codeplex.com/workitem/8769)
- Initial work on Gnumeric Reader (Worksheet Data, Document Properties and basic Formatting)- Support for Extended Workbook Properties in Excel2007, Excel5 and OOCalc Readers; support for User-defined Workbook Properties in Excel2007 and OOCalc Readers - @MarkBaker
- Support for Extended and User-defined Workbook Properties in Excel2007 Writer - @MarkBaker
- Provided a setGenerateSheetNavigationBlock(false); option to suppress generation of the sheet navigation block when writing multiple worksheets to HTML - @MarkBaker
- Advanced Value Binder now recognises TRUE/FALSE strings (locale-specific) and converts to boolean - @MarkBaker
- PHPExcel_Worksheet->toArray() is returning truncated values - @MarkBaker [CodePlex #14301](https://phpexcel.codeplex.com/workitem/14301)
- Configure PDF Writer margins based on Excel Worksheet Margin Settings value - @MarkBaker
- Added Contiguous flag for the CSV Reader, when working with Read Filters - @MarkBaker
- Added getFormattedValue() method for cell object - @MarkBaker
- Added strictNullComparison argument to the worksheet fromArray() method - @MarkBaker
### Bugfixes
- Fix to toFormattedString() method in PHPExcel_Style_NumberFormat to handle fractions with a # code for the integer part - @MarkBaker
- NA() doesn't propagate in matrix calc - quick fix in JAMA/Matrix.php - @MarkBaker [CodePlex #14143](https://phpexcel.codeplex.com/workitem/14143)
- Excel5 : Formula : String constant containing double quotation mark - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
- Excel5 : Formula : Percent - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
- Excel5 : Formula : Error constant - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
- Excel5 : Formula : Concatenation operator - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
- Worksheet clone broken for CachedObjectStorage_Memory - @MarkBaker [CodePlex #14146](https://phpexcel.codeplex.com/workitem/14146)
- PHPExcel_Reader_Excel2007 fails when gradient fill without type is present in a file - @MarkBaker [CodePlex #12998](https://phpexcel.codeplex.com/workitem/12998)
- @ format for numeric strings in XLSX to CSV conversion - @MarkBaker [CodePlex #14176](https://phpexcel.codeplex.com/workitem/14176)
- Advanced Value Binder Not Working? - @MarkBaker [CodePlex #14223](https://phpexcel.codeplex.com/workitem/14223)
- unassigned object variable in PHPExcel->removeCellXfByIndex - @MarkBaker [CodePlex #14226](https://phpexcel.codeplex.com/workitem/14226)
- problem with getting cell values from another worksheet... (if cell doesn't exist) - @MarkBaker [CodePlex #14236](https://phpexcel.codeplex.com/workitem/14236)
- Setting cell values to one char strings & Trouble reading one character string (thanks gorfou) - @MarkBaker
- Worksheet title exception when duplicate worksheet is being renamed but exceeds the 31 character limit - @MarkBaker [CodePlex #14256](https://phpexcel.codeplex.com/workitem/14256)
- Named range with sheet name that contains the $ throws exception when getting the cell - @MarkBaker [CodePlex #14086](https://phpexcel.codeplex.com/workitem/14086)
- Added autoloader to DefaultValueBinder and AdvancedValueBinder - @MarkBaker
- Modified PHPExcel_Shared_Date::isDateTimeFormatCode() to return false if format code begins with "_" or with "0 " to prevent false positives - @MarkBaker
- These leading characters are most commonly associated with number, currency or accounting (or occasionally fraction) formats- BUG : Excel5 and setReadFilter ? - @MarkBaker [CodePlex #14374](https://phpexcel.codeplex.com/workitem/14374)
- Wrong exception message while deleting column - @MarkBaker [CodePlex #14425](https://phpexcel.codeplex.com/workitem/14425)
- Formula evaluation fails with Japanese sheet refs - @MarkBaker [CodePlex #14679](https://phpexcel.codeplex.com/workitem/14679)
- PHPExcel_Writer_PDF does not handle cell borders correctly - @MarkBaker [CodePlex #13559](https://phpexcel.codeplex.com/workitem/13559)
- Style : applyFromArray() for 'allborders' not working - @MarkBaker [CodePlex #14831](https://phpexcel.codeplex.com/workitem/14831)
### General
- Using $this when not in object context in Excel5 Reader - @MarkBaker [CodePlex #14837](https://phpexcel.codeplex.com/workitem/14837)
- Removes a unnecessary loop through each cell when applying conditional formatting to a range. - @MarkBaker
- Removed spurious PHP end tags (?>) - @MarkBaker
- Improved performance (speed) and reduced memory overheads, particularly for the Writers, but across the whole library. - @MarkBaker
## [1.7.4] - 2010-08-26
### Bugfixes
- Excel5 : Formula : Power - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
- Excel5 : Formula : Unary plus - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
- Excel5 : Just write the Escher stream if necessary in Worksheet - @Progi1984
- Syntax errors in memcache.php 1.7.3c - @MarkBaker [CodePlex #13433](https://phpexcel.codeplex.com/workitem/13433)
- Support for row or column ranges in the calculation engine, e.g. =SUM(C:C) or =SUM(1:2) - @MarkBaker
- Also support in the calculation engine for absolute row or column ranges e.g. =SUM($C:$E) or =SUM($3:5)- Picture problem with Excel 2003 - @Erik Tilt [CodePlex #13455](https://phpexcel.codeplex.com/workitem/13455)
- Wrong variable used in addExternalSheet in PHPExcel.php - @MarkBaker [CodePlex #13484](https://phpexcel.codeplex.com/workitem/13484)
- "Invalid cell coordinate" error when formula access data from an other sheet - @MarkBaker [CodePlex #13515](https://phpexcel.codeplex.com/workitem/13515)
- (related to Work item 13515) Calculation engine confusing cell range worksheet when referencing cells in a different worksheet to the formula - @MarkBaker
- Wrong var naming in Worksheet->garbageCollect() - @MarkBaker [CodePlex #13752](https://phpexcel.codeplex.com/workitem/13752)
- PHPExcel_Style_*::__clone() methods cause cloning loops? - @MarkBaker [CodePlex #13764](https://phpexcel.codeplex.com/workitem/13764)
- Recent builds causing problems loading xlsx files? (ZipArchive issue?) - @MarkBaker [CodePlex #11488](https://phpexcel.codeplex.com/workitem/11488)
- cache_to_apc causes fatal error when processing large data sets - @MarkBaker [CodePlex #13856](https://phpexcel.codeplex.com/workitem/13856)
- OOCalc reader misses first line if it's a 'table-header-row' - @MarkBaker [CodePlex #13880](https://phpexcel.codeplex.com/workitem/13880)
- using cache with copy or clone bug? - @MarkBaker [CodePlex #14011](https://phpexcel.codeplex.com/workitem/14011)
- Fixed $worksheet->copy() or clone $worksheet when using cache_in_memory, cache_in_memory_gzip, cache_in_memory_serialized, cache_to_discISAM, cache_to_phpTemp, cache_to_apc and cache_to_memcache;
- Fixed but untested when using cache_to_wincache.
### Features
- Standard Deviation functions returning DIV/0 Error when Standard Deviation is zero - @MarkBaker [CodePlex #13450](https://phpexcel.codeplex.com/workitem/13450)
- Support for print area with several ranges in the Excel2007 reader, and improved features for editing print area with several ranges - @MarkBaker
- Improved Cell Exception Reporting - @MarkBaker [CodePlex #13769](https://phpexcel.codeplex.com/workitem/13769)
### General
- Fixed problems with reading Excel2007 Properties - @MarkBaker
- PHP Strict Standards: Non-static method PHPExcel_Shared_String::utf16_decode() should not be called statically - @MarkBaker
- Array functions were ignored when loading an existing file containing them, and as a result, they would lose their 'cse' status. - @MarkBaker
- Minor memory tweaks to Excel2007 Writer - @MarkBaker
- Modified ReferenceHelper updateFormulaReferences() method to handle updates to row and column cell ranges (including absolute references e.g. =SUM(A:$E) or =SUM($5:5), and range/cell references that reference a worksheet by name), and to provide both performance and memory improvements. - @MarkBaker
- Modified Excel2007 Reader so that ReferenceHelper class is instantiated only once rather than for every shared formula in a workbook. - @MarkBaker
- Correct handling for additional (synonym) formula tokens in Excel5 Reader - @MarkBaker
- Additional reading of some Excel2007 Extended Properties (Company, Manager) - @MarkBaker
## [1.7.3c] - 2010-06-01
### Bugfixes
- Fatal error: Class 'ZipArchive' not found... ...Reader/Excel2007.php on line 217 - @MarkBaker [CodePlex #13012](https://phpexcel.codeplex.com/workitem/13012)
- PHPExcel_Writer_Excel2007 error after 1.7.3b - @MarkBaker [CodePlex #13398](https://phpexcel.codeplex.com/workitem/13398)
## [1.7.3b] - 2010-05-31
### Bugfixes
- Infinite loop when reading - @MarkBaker [CodePlex #12903](https://phpexcel.codeplex.com/workitem/12903)
- Wrong method chaining on PHPExcel_Worksheet class - @MarkBaker [CodePlex #13381](https://phpexcel.codeplex.com/workitem/13381)
## [1.7.3] - 2010-05-17
### General
- Applied patch 4990 (modified) - @Erik Tilt
- Applied patch 5568 (modified) - @MarkBaker
- Applied patch 5943 - @MarkBaker
- Upgrade build script to use Phing - @MarkBaker [CodePlex #13042](https://phpexcel.codeplex.com/workitem/13042)
- Replacing var with public/private - @Erik Tilt [CodePlex #11586](https://phpexcel.codeplex.com/workitem/11586)
- Applied Anthony's Sterling's Class Autoloader to reduce memory overhead by "Lazy Loading" of classes - @MarkBaker
- Modification to functions that accept a date parameter to support string values containing ordinals as per Excel (English language only) - @MarkBaker
- Modify PHPExcel_Style_NumberFormat::toFormattedString() to handle dates that fall outside of PHP's 32-bit date range - @MarkBaker
- Applied patch 5207 - @MarkBaker
### Features
- PHPExcel developer documentation: Set page margins - @Erik Tilt [CodePlex #11970](https://phpexcel.codeplex.com/workitem/11970)
- Special characters and accents in SYLK reader - @Erik Tilt [CodePlex #11038](https://phpexcel.codeplex.com/workitem/11038)
- Implement more Excel calculation functions - @MarkBaker
- Implemented the COUPDAYS(), COUPDAYBS(), COUPDAYSNC(), COUPNCD(), COUPPCD() and PRICE() Financial functions
- Implemented the N() and TYPE() Information functions
- Implemented the HYPERLINK() Lookup and Reference function- Horizontal page break support in PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #11526](https://phpexcel.codeplex.com/workitem/11526)
- Introduce method setActiveSheetIndexByName() - @Erik Tilt [CodePlex #11529](https://phpexcel.codeplex.com/workitem/11529)
- AdvancedValueBinder.php: Automatically wrap text when there is new line in string (ALT+"Enter") - @Erik Tilt [CodePlex #11550](https://phpexcel.codeplex.com/workitem/11550)
- Data validation support in PHPExcel_Reader_Excel5 and PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10300](https://phpexcel.codeplex.com/workitem/10300)
- Improve autosize calculation - @MarkBaker [CodePlex #11616](https://phpexcel.codeplex.com/workitem/11616)
- Methods to translate locale-specific function names in formulae - @MarkBaker
- Language implementations for Czech (cs), Danish (da), German (de), English (uk), Spanish (es), Finnish (fi), French (fr), Hungarian (hu), Italian (it), Dutch (nl), Norwegian (no), Polish (pl), Portuguese (pt), Brazilian Portuguese (pt_br), Russian (ru) and Swedish (sv)- Implement document properties in Excel5 reader/writer - @Erik Tilt [CodePlex #9759](https://phpexcel.codeplex.com/workitem/9759)
- Fixed so far for PHPExcel_Reader_Excel5- Show/hide row and column headers in worksheet - @Erik Tilt [CodePlex #11849](https://phpexcel.codeplex.com/workitem/11849)
- Can't set font on writing PDF (by key) - @Erik Tilt [CodePlex #11919](https://phpexcel.codeplex.com/workitem/11919)
- Thousands scale (1000^n) support in PHPExcel_Style_NumberFormat::toFormattedString - @Erik Tilt [CodePlex #12096](https://phpexcel.codeplex.com/workitem/12096)
- Implement repeating rows in PDF and HTML writer - @Erik Tilt
- Sheet tabs in PHPExcel_Writer_HTML - @Erik Tilt [CodePlex #12289](https://phpexcel.codeplex.com/workitem/12289)
- Add Wincache CachedObjectProvider - @MarkBaker [CodePlex #13041](https://phpexcel.codeplex.com/workitem/13041)
- Configure PDF Writer paper size based on Excel Page Settings value, and provided methods to override paper size and page orientation with the writer - @MarkBaker
- Note PHPExcel defaults to Letter size, while the previous PDF writer enforced A4 size, so PDF writer will now default to Letter- Initial implementation of cell caching: allowing larger workbooks to be managed, but at a cost in speed - @MarkBaker
### Bugfixes
- Added an identify() method to the IO Factory that identifies the reader which will be used to load a particular file without actually loading it. - @MarkBaker
- Warning messages with INDEX function having 2 arguments - @MarkBaker [CodePlex #10979](https://phpexcel.codeplex.com/workitem/10979)
- setValue('=') should result in string instead of formula - @Erik Tilt [CodePlex #11473](https://phpexcel.codeplex.com/workitem/11473)
- method _raiseFormulaError should no be private - @MarkBaker [CodePlex #11471](https://phpexcel.codeplex.com/workitem/11471)
- Fatal error: Call to undefined function mb_substr() in ...Classes\PHPExcel\Reader\Excel5.php on line 2903 - @Erik Tilt [CodePlex #11485](https://phpexcel.codeplex.com/workitem/11485)
- getBold(), getItallic(), getStrikeThrough() not always working with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #11487](https://phpexcel.codeplex.com/workitem/11487)
- AdvancedValueBinder.php not working correctly for $cell->setValue('hh:mm:ss') - @Erik Tilt [CodePlex #11492](https://phpexcel.codeplex.com/workitem/11492)
- Fixed leap year handling for the YEARFRAC() Date/Time function when basis ia 1 (Actual/actual) - @MarkBaker
- Warning messages - @MarkBaker [CodePlex #11490](https://phpexcel.codeplex.com/workitem/11490)
- Calculation Engine code modified to enforce strict standards for pass by reference- PHPExcel_Cell_AdvancedValueBinder doesnt work for dates in far future - @Erik Tilt [CodePlex #11483](https://phpexcel.codeplex.com/workitem/11483)
- MSODRAWING bug with long CONTINUE record in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #11528](https://phpexcel.codeplex.com/workitem/11528)
- PHPExcel_Reader_Excel2007 reads print titles as named range when there is more than one sheet - @Erik Tilt [CodePlex #11571](https://phpexcel.codeplex.com/workitem/11571)
- missing @return in phpdocblock in reader classes - @Erik Tilt [CodePlex #11561](https://phpexcel.codeplex.com/workitem/11561)
- AdvancedValueBinder.php: String sometimes becomes a date when it shouldn't - @Erik Tilt [CodePlex #11576](https://phpexcel.codeplex.com/workitem/11576)
- Small numbers escape treatment in PHPExcel_Style_NumberFormat::toFormattedString() - @Erik Tilt [CodePlex #11588](https://phpexcel.codeplex.com/workitem/11588)
- Blank styled cells are not blank in output by HTML writer due to - @Erik Tilt [CodePlex #11590](https://phpexcel.codeplex.com/workitem/11590)
- Calculation engine bug: Existing, blank cell + number gives #NUM - @MarkBaker [CodePlex #11587](https://phpexcel.codeplex.com/workitem/11587)
- AutoSize only measures length of first line in cell with multiple lines (ALT+Enter) - @Erik Tilt [CodePlex #11608](https://phpexcel.codeplex.com/workitem/11608)
- Fatal error running Tests/12serializedfileformat.php (PHPExcel 1.7.2) - @Erik Tilt [CodePlex #11608](https://phpexcel.codeplex.com/workitem/11608)
- Fixed various errors in the WORKDAY() and NETWORKDAYS() Date/Time functions (particularly related to holidays) - @MarkBaker
- Uncaught exception 'Exception' with message 'Valid scale is between 10 and 400.' in Classes/PHPExcel/Worksheet/SheetView.php:115 - @Erik Tilt [CodePlex #11660](https://phpexcel.codeplex.com/workitem/11660)
- "Unrecognized token 39 in formula" with PHPExcel_Reader_Excel5 (occuring with add-in functions) - @Erik Tilt [CodePlex #11551](https://phpexcel.codeplex.com/workitem/11551)
- Excel2007 reader not reading PHPExcel_Style_Conditional::CONDITION_EXPRESSION - @Erik Tilt [CodePlex #11668](https://phpexcel.codeplex.com/workitem/11668)
- Fix to the BESSELI(), BESSELJ(), BESSELK(), BESSELY() and COMPLEX() Engineering functions to use correct default values for parameters - @MarkBaker
- DATEVALUE function not working for pure time values + allow DATEVALUE() function to handle partial dates (e.g. "1-Jun" or "12/2010") - @MarkBaker [CodePlex #11525](https://phpexcel.codeplex.com/workitem/11525)
- Fix for empty quoted strings in formulae - @MarkBaker
- Trap for division by zero in Bessel functions - @MarkBaker
- Fix to OOCalc Reader to convert semi-colon (;) argument separator in formulae to a comma (,) - @MarkBaker
- PHPExcel_Writer_Excel5_Parser cannot parse formula like =SUM(C$5:C5) - @Erik Tilt [CodePlex #11693](https://phpexcel.codeplex.com/workitem/11693)
- Fix to OOCalc Reader to handle dates that fall outside 32-bit PHP's date range - @MarkBaker
- File->sys_get_temp_dir() can fail in safe mode - @Erik Tilt [CodePlex #11692](https://phpexcel.codeplex.com/workitem/11692)
- Sheet references in Excel5 writer do not work when referenced sheet title contains non-Latin symbols - @Erik Tilt [CodePlex #11727](https://phpexcel.codeplex.com/workitem/11727)
- Bug in HTML writer can result in missing rows in output - @Erik Tilt [CodePlex #11743](https://phpexcel.codeplex.com/workitem/11743)
- setShowGridLines(true) not working with PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #11674](https://phpexcel.codeplex.com/workitem/11674)
- PHPExcel_Worksheet_RowIterator initial position incorrect - @Erik Tilt [CodePlex #11836](https://phpexcel.codeplex.com/workitem/11836)
- PHPExcel_Worksheet_HeaderFooterDrawing Strict Exception thrown (by jshaw86) - @Erik Tilt [CodePlex #11835](https://phpexcel.codeplex.com/workitem/11835)
- Parts of worksheet lost when there are embedded charts (Excel5 reader) - @Erik Tilt [CodePlex #11850](https://phpexcel.codeplex.com/workitem/11850)
- VLOOKUP() function error when lookup value is passed as a cell reference rather than an absolute value - @MarkBaker
- First segment of Rich-Text not read correctly by PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #12041](https://phpexcel.codeplex.com/workitem/12041)
- Fatal Error with getCell('name') when name matches the pattern for a cell reference - @MarkBaker [CodePlex #12048](https://phpexcel.codeplex.com/workitem/12048)
- excel5 writer appears to be swapping image locations - @Erik Tilt [CodePlex #12039](https://phpexcel.codeplex.com/workitem/12039)
- Undefined index: host in ZipStreamWrapper.php, line 94 and line 101 - @Erik Tilt [CodePlex #11954](https://phpexcel.codeplex.com/workitem/11954)
- BIFF8 File Format problem (too short COLINFO record) - @Erik Tilt [CodePlex #11672](https://phpexcel.codeplex.com/workitem/11672)
- Column width sometimes changed after read/write with Excel2007 reader/writer - @Erik Tilt [CodePlex #12121](https://phpexcel.codeplex.com/workitem/12121)
- Worksheet.php throws a fatal error when styling is turned off via setReadDataOnly on the reader - @Erik Tilt [CodePlex #11964](https://phpexcel.codeplex.com/workitem/11964)
- Checking for Circular References in Formulae - @MarkBaker [CodePlex #11851](https://phpexcel.codeplex.com/workitem/11851)
- Calculation Engine code now traps for cyclic references, raising an error or throwing an exception, or allows 1 or more iterations through cyclic references, based on a configuration setting- PNG transparency using Excel2007 writer - @Erik Tilt [CodePlex #12244](https://phpexcel.codeplex.com/workitem/12244)
- Custom readfilter error when cell formulas reference excluded cells (Excel5 reader) - @Erik Tilt [CodePlex #12221](https://phpexcel.codeplex.com/workitem/12221)
- Protection problem in XLS - @Erik Tilt [CodePlex #12288](https://phpexcel.codeplex.com/workitem/12288)
- getColumnDimension()->setAutoSize() incorrect on cells with Number Formatting - @Erik Tilt [CodePlex #12300](https://phpexcel.codeplex.com/workitem/12300)
- Notices reading Excel file with Add-in funcitons (PHPExcel_Reader_Excel5) - @Erik Tilt [CodePlex #12378](https://phpexcel.codeplex.com/workitem/12378)
- Excel5 reader not reading formulas with deleted sheet references - @Erik Tilt [CodePlex #12380](https://phpexcel.codeplex.com/workitem/12380)
- Named range (defined name) scope problems for in PHPExcel - @Erik Tilt [CodePlex #12404](https://phpexcel.codeplex.com/workitem/12404)
- PHP Parse error: syntax error, unexpected T_PUBLIC in PHPExcel/Calculation.php on line 3482 - @Erik Tilt [CodePlex #12423](https://phpexcel.codeplex.com/workitem/12423)
- Named ranges don't appear in name box using Excel5 writer - @Erik Tilt [CodePlex #12505](https://phpexcel.codeplex.com/workitem/12505)
- Many merged cells + autoSize column -> slows down the writer - @Erik Tilt [CodePlex #12509](https://phpexcel.codeplex.com/workitem/12509)
- Incorrect fallback order comment in Shared/Strings.php ConvertEncoding() - @Erik Tilt [CodePlex #12539](https://phpexcel.codeplex.com/workitem/12539)
- IBM AIX iconv() will not work, should revert to mbstring etc. instead - @Erik Tilt [CodePlex #12538](https://phpexcel.codeplex.com/workitem/12538)
- Excel5 writer and mbstring functions overload - @Erik Tilt [CodePlex #12568](https://phpexcel.codeplex.com/workitem/12568)
- OFFSET needs to flattenSingleValue the $rows and $columns args - @MarkBaker [CodePlex #12672](https://phpexcel.codeplex.com/workitem/12672)
- Formula with DMAX(): Notice: Undefined offset: 2 in ...\PHPExcel\Calculation.php on line 2365 - @MarkBaker [CodePlex #12546](https://phpexcel.codeplex.com/workitem/12546)
- Note that the Database functions have not yet been implemented- Call to a member function getParent() on a non-object in Classes\\PHPExcel\\Calculation.php Title is required - @MarkBaker [CodePlex #12839](https://phpexcel.codeplex.com/workitem/12839)
- Cyclic Reference in Formula - @MarkBaker [CodePlex #12935](https://phpexcel.codeplex.com/workitem/12935)
- Memory error...data validation? - @MarkBaker [CodePlex #13025](https://phpexcel.codeplex.com/workitem/13025)
## [1.7.2] - 2010-01-11
### General
- Applied patch 4362 - @Erik Tilt
- Applied patch 4363 (modified) - @Erik Tilt
- 1.7.1 Extremely Slow - Refactored PHPExcel_Calculation_Functions::flattenArray() method and set calculation cache timer default to 2.5 seconds - @MarkBaker [CodePlex #10874](https://phpexcel.codeplex.com/workitem/10874)
- Allow formulae to contain line breaks - @MarkBaker
- split() function deprecated in PHP 5.3.0 - @Erik Tilt [CodePlex #10910](https://phpexcel.codeplex.com/workitem/10910)
- sys_get_temp_dir() requires PHP 5.2.1, not PHP 5.2 [provide fallback function for PHP 5.2.0] - @Erik Tilt
- Implementation of the ISPMT() Financial function by Matt Groves - @MarkBaker
- Put the example of formula with more arguments in documentation - @MarkBaker [CodePlex #11052](https://phpexcel.codeplex.com/workitem/11052)
### Features
- Improved accuracy for the GAMMAINV() Statistical Function - @MarkBaker
- XFEXT record support to fix colors change from Excel5 reader, and copy/paste color change with Excel5 writer - @Erik Tilt [CodePlex #10409](https://phpexcel.codeplex.com/workitem/10409)
- Excel5 reader reads RGB color information in XFEXT records for borders, font color and fill color- Implement more Excel calculation functions - @MarkBaker
- Implemented the FVSCHEDULE(), XNPV(), IRR(), MIRR(), XIRR() and RATE() Financial functions
- Implemented the SUMPRODUCT() Mathematical function
- Implemented the ZTEST() Statistical Function- Multiple print areas in one sheet - @Erik Tilt [CodePlex #10919](https://phpexcel.codeplex.com/workitem/10919)
- Store calculated values in output by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10930](https://phpexcel.codeplex.com/workitem/10930)
- Sheet protection options in Excel5 reader/writer - @Erik Tilt [CodePlex #10939](https://phpexcel.codeplex.com/workitem/10939)
- Modification of the COUNT(), AVERAGE(), AVERAGEA(), DEVSQ, AVEDEV(), STDEV(), STDEVA(), STDEVP(), STDEVPA(), VARA() and VARPA() SKEW() and KURT() functions to correctly handle boolean values depending on whether they're passed in as values, values within a matrix or values within a range of cells. - @MarkBaker
- Cell range selection - @Erik Tilt
- Root-relative path handling - @MarkBaker [CodePlex #10266](https://phpexcel.codeplex.com/workitem/10266)
### Bugfixes
- Named Ranges not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #11315](https://phpexcel.codeplex.com/workitem/11315)
- Excel2007 Reader fails to load Apache POI generated Excel - @MarkBaker [CodePlex #11206](https://phpexcel.codeplex.com/workitem/11206)
- Number format is broken when system's thousands separator is empty - @MarkBaker [CodePlex #11154](https://phpexcel.codeplex.com/workitem/11154)
- ReferenceHelper::updateNamedFormulas throws errors if oldName is empty - @MarkBaker [CodePlex #11401](https://phpexcel.codeplex.com/workitem/11401)
- parse_url() fails to parse path to an image in xlsx - @MarkBaker [CodePlex #11296](https://phpexcel.codeplex.com/workitem/11296)
- Workaround for iconv_substr() bug in PHP 5.2.0 - @Erik Tilt [CodePlex #10876](https://phpexcel.codeplex.com/workitem/10876)
- 1 pixel error for image width and height with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10877](https://phpexcel.codeplex.com/workitem/10877)
- Fix to GEOMEAN() Statistical function - @MarkBaker
- setValue('-') and setValue('.') sets numeric 0 instead of 1-character string - @Erik Tilt [CodePlex #10884](https://phpexcel.codeplex.com/workitem/10884)
- Row height sometimes much too low after read with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10885](https://phpexcel.codeplex.com/workitem/10885)
- Diagonal border. Miscellaneous missing support. - @Erik Tilt [CodePlex #10888](https://phpexcel.codeplex.com/workitem/10888)
- Constant PHPExcel_Style_Borders::DIAGONAL_BOTH added to support double-diagonal (cross)
- PHPExcel_Reader_Excel2007 not always reading diagonal borders (only recognizes 'true' and not '1')
- PHPExcel_Reader_Excel5 support for diagonal borders
- PHPExcel_Writer_Excel5 support for diagonal borders- Session bug: Fatal error: Call to a member function bindValue() on a non-object in ...\Classes\PHPExcel\Cell.php on line 217 - @Erik Tilt [CodePlex #10894](https://phpexcel.codeplex.com/workitem/10894)
- Colors messed up saving twice with same instance of PHPExcel_Writer_Excel5 (regression since 1.7.0) - @Erik Tilt [CodePlex #10896](https://phpexcel.codeplex.com/workitem/10896)
- Method PHPExcel_Worksheet::setDefaultStyle is not working - @Erik Tilt [CodePlex #10917](https://phpexcel.codeplex.com/workitem/10917)
- PHPExcel_Reader_CSV::canRead() sometimes says false when it shouldn't - @Erik Tilt [CodePlex #10897](https://phpexcel.codeplex.com/workitem/10897)
- Changes in workbook not picked up between two saves with PHPExcel_Writer_Excel2007 - @Erik Tilt [CodePlex #10922](https://phpexcel.codeplex.com/workitem/10922)
- Decimal and thousands separators missing in HTML and PDF output - @Erik Tilt [CodePlex #10913](https://phpexcel.codeplex.com/workitem/10913)
- Notices with PHPExcel_Reader_Excel5 and named array constants - @Erik Tilt [CodePlex #10936](https://phpexcel.codeplex.com/workitem/10936)
- Calculation engine limitation on 32-bit platform with integers > 2147483647 - @MarkBaker [CodePlex #10938](https://phpexcel.codeplex.com/workitem/10938)
- Shared(?) formulae containing absolute cell references not read correctly using Excel5 Reader - @Erik Tilt [CodePlex #10959](https://phpexcel.codeplex.com/workitem/10959)
- Warning messages with intersection operator involving single cell - @MarkBaker [CodePlex #10962](https://phpexcel.codeplex.com/workitem/10962)
- Infinite loop in Excel5 reader caused by zero-length string in SST - @Erik Tilt [CodePlex #10980](https://phpexcel.codeplex.com/workitem/10980)
- Remove unnecessary cell sorting to improve speed by approx. 18% in HTML and PDF writers - @Erik Tilt [CodePlex #10983](https://phpexcel.codeplex.com/workitem/10983)
- Cannot read A1 cell content - OO_Reader - @MarkBaker [CodePlex #10977](https://phpexcel.codeplex.com/workitem/10977)
- Transliteration failed, invalid encoding - @Erik Tilt [CodePlex #11000](https://phpexcel.codeplex.com/workitem/11000)
## [1.7.1] - 2009-11-02
### General
- ereg() function deprecated in PHP 5.3.0 - @Erik Tilt [CodePlex #10687](https://phpexcel.codeplex.com/workitem/10687)
- Writer Interface Inconsequence - setTempDir and setUseDiskCaching - @MarkBaker [CodePlex #10739](https://phpexcel.codeplex.com/workitem/10739)
### Features
- Upgrade to TCPDF 4.8.009 - @Erik Tilt
- Support for row and column styles (feature request) - @Erik Tilt
- Basic implementation for Excel2007/Excel5 reader/writer- Hyperlink to local file in Excel5 reader/writer - @Erik Tilt [CodePlex #10459](https://phpexcel.codeplex.com/workitem/10459)
- Color Tab (Color Sheet's name) - @MarkBaker [CodePlex #10472](https://phpexcel.codeplex.com/workitem/10472)
- Border style "double" support in PHPExcel_Writer_HTML - @Erik Tilt [CodePlex #10488](https://phpexcel.codeplex.com/workitem/10488)
- Multi-section number format support in HTML/PDF/CSV writers - @Erik Tilt [CodePlex #10492](https://phpexcel.codeplex.com/workitem/10492)
- Some additional performance tweaks in the calculation engine - @MarkBaker
- Fix result of DB() and DDB() Financial functions to 2dp when in Gnumeric Compatibility mode - @MarkBaker
- Added AMORDEGRC(), AMORLINC() and COUPNUM() Financial function (no validation of parameters yet) - @MarkBaker
- Improved accuracy of TBILLEQ(), TBILLPRICE() and TBILLYIELD() Financial functions when in Excel or Gnumeric mode - @MarkBaker
- Added INDIRECT() Lookup/Reference function (only supports full addresses at the moment) - @MarkBaker
- PHPExcel_Reader_CSV::canRead() improvements - @MarkBaker [CodePlex #10498](https://phpexcel.codeplex.com/workitem/10498)
- Input encoding option for PHPExcel_Reader_CSV - @Erik Tilt [CodePlex #10500](https://phpexcel.codeplex.com/workitem/10500)
- Colored number format support, e.g. [Red], in HTML/PDF output - @Erik Tilt [CodePlex #10493](https://phpexcel.codeplex.com/workitem/10493)
- Color Tab (Color Sheet's name) [Excel5 reader/writer support] - @Erik Tilt [CodePlex #10559](https://phpexcel.codeplex.com/workitem/10559)
- Initial version of SYLK (slk) and Excel 2003 XML Readers (Cell data and basic cell formatting) - @MarkBaker
- Initial version of Open Office Calc (ods) Reader (Cell data only) - @MarkBaker
- Initial use of "pass by reference" in the calculation engine for ROW() and COLUMN() Lookup/Reference functions - @MarkBaker
- COLUMNS() and ROWS() Lookup/Reference functions, and SUBSTITUTE() Text function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- AdvancedValueBinder(): Re-enable zero-padded string-to-number conversion, e.g '0004' -> 4 - @Erik Tilt [CodePlex #10502](https://phpexcel.codeplex.com/workitem/10502)
- Make PHP type match Excel datatype - @Erik Tilt [CodePlex #10600](https://phpexcel.codeplex.com/workitem/10600)
- Change first page number on header - @MarkBaker [CodePlex #10630](https://phpexcel.codeplex.com/workitem/10630)
- Applied patch 3941 - @MarkBaker
- Hidden sheets - @MB,ET [CodePlex #10745](https://phpexcel.codeplex.com/workitem/10745)
- mbstring fallback when iconv is broken - @Erik Tilt [CodePlex #10761](https://phpexcel.codeplex.com/workitem/10761)
- Note, can't yet handle comparison of two matrices - @MarkBaker
- Improved handling for validation and error trapping in a number of functions - @MarkBaker
- Improved support for fraction number formatting - @MarkBaker
- Support Reading CSV with Byte Order Mark (BOM) - @Erik Tilt [CodePlex #10455](https://phpexcel.codeplex.com/workitem/10455)
### Bugfixes
- addExternalSheet() at specified index - @Erik Tilt [CodePlex #10860](https://phpexcel.codeplex.com/workitem/10860)
- Named range can no longer be passed to worksheet->getCell() - @MarkBaker [CodePlex #10684](https://phpexcel.codeplex.com/workitem/10684)
- RichText HTML entities no longer working in PHPExcel 1.7.0 - @Erik Tilt [CodePlex #10455](https://phpexcel.codeplex.com/workitem/10455)
- Fit-to-width value of 1 is lost after read/write of Excel2007 spreadsheet [+ support for simultaneous scale/fitToPage] - @Erik Tilt
- Performance issue identified by profiling - @MarkBaker [CodePlex #10469](https://phpexcel.codeplex.com/workitem/10469)
- setSelectedCell is wrong - @Erik Tilt [CodePlex #10473](https://phpexcel.codeplex.com/workitem/10473)
- Images get squeezed/stretched with (Mac) Verdana 10 Excel files using Excel5 reader/writer - @Erik Tilt [CodePlex #10481](https://phpexcel.codeplex.com/workitem/10481)
- Error in argument count for DATEDIF() function - @MarkBaker [CodePlex #10482](https://phpexcel.codeplex.com/workitem/10482)
- updateFormulaReferences is buggy - @MarkBaker [CodePlex #10452](https://phpexcel.codeplex.com/workitem/10452)
- CellIterator returns null Cell if onlyExistingCells is set and key() is in use - @MarkBaker [CodePlex #10485](https://phpexcel.codeplex.com/workitem/10485)
- Wrong RegEx for parsing cell references in formulas - @MarkBaker [CodePlex #10453](https://phpexcel.codeplex.com/workitem/10453)
- Optimisation subverted to devastating effect if IterateOnlyExistingCells is clear - @MarkBaker [CodePlex #10486](https://phpexcel.codeplex.com/workitem/10486)
- Fatal error: Uncaught exception 'Exception' with message 'Unrecognized token 6C in formula'... with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10494](https://phpexcel.codeplex.com/workitem/10494)
- Fractions stored as text are not treated as numbers by PHPExcel's calculation engine - @MarkBaker [CodePlex #10490](https://phpexcel.codeplex.com/workitem/10490)
- AutoFit (autosize) row height not working in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10503](https://phpexcel.codeplex.com/workitem/10503)
- Fixed problem with null values breaking the calculation stack - @MarkBaker
- Date number formats sometimes fail with PHPExcel_Style_NumberFormat::toFormattedString, e.g. [$-40047]mmmm d yyyy - @Erik Tilt [CodePlex #10524](https://phpexcel.codeplex.com/workitem/10524)
- Fixed minor problem with DATEDIFF YM calculation - @MarkBaker
- Applied patch 3695 - @MarkBaker
- setAutosize() and Date cells not working properly - @Erik Tilt [CodePlex #10536](https://phpexcel.codeplex.com/workitem/10536)
- Time value hour offset in output by HTML/PDF/CSV writers (system timezone problem) - @Erik Tilt [CodePlex #10556](https://phpexcel.codeplex.com/workitem/10556)
- Control characters 0x14-0x1F are not treated by PHPExcel - @Erik Tilt [CodePlex #10558](https://phpexcel.codeplex.com/workitem/10558)
- PHPExcel_Writer_Excel5 not working when open_basedir restriction is in effect - @Erik Tilt [CodePlex #10560](https://phpexcel.codeplex.com/workitem/10560)
- IF formula calculation problem in PHPExcel 1.7.0 (string comparisons) - @MarkBaker [CodePlex #10563](https://phpexcel.codeplex.com/workitem/10563)
- Improved CODE() Text function result for UTF-8 characters - @MarkBaker
- Empty rows are collapsed with HTML/PDF writer - @Erik Tilt [CodePlex #10568](https://phpexcel.codeplex.com/workitem/10568)
- Gaps between rows in output by PHPExcel_Writer_PDF (Upgrading to TCPDF 4.7.003) - @Erik Tilt [CodePlex #10569](https://phpexcel.codeplex.com/workitem/10569)
- Problem reading formulas (Excel5 reader problem with "fake" shared formulas) - @Erik Tilt [CodePlex #10575](https://phpexcel.codeplex.com/workitem/10575)
- Error type in formula: "_raiseFormulaError message is Formula Error: An unexpected error occured" - @MarkBaker [CodePlex #10588](https://phpexcel.codeplex.com/workitem/10588)
- Miscellaneous column width problems in Excel5/Excel2007 writer - @Erik Tilt [CodePlex #10599](https://phpexcel.codeplex.com/workitem/10599)
- Reader/Excel5 'Unrecognized token 2D in formula' in latest version - @Erik Tilt [CodePlex #10615](https://phpexcel.codeplex.com/workitem/10615)
- on php 5.3 PHPExcel 1.7 Excel 5 reader fails in _getNextToken, token = 2C, throws exception - @Erik Tilt [CodePlex #10623](https://phpexcel.codeplex.com/workitem/10623)
- Fatal error when altering styles after workbook has been saved - @Erik Tilt [CodePlex #10617](https://phpexcel.codeplex.com/workitem/10617)
- Images vertically stretched or squeezed when default font size is changed (PHPExcel_Writer_Excel5) - @Erik Tilt [CodePlex #10661](https://phpexcel.codeplex.com/workitem/10661)
- Styles not read in "manipulated" Excel2007 workbook - @Erik Tilt [CodePlex #10676](https://phpexcel.codeplex.com/workitem/10676)
- Windows 7 says corrupt file by PHPExcel_Writer_Excel5 when opening in Excel - @Erik Tilt [CodePlex #10059](https://phpexcel.codeplex.com/workitem/10059)
- Calculations sometimes not working with cell references to other sheets - @MarkBaker [CodePlex #10708](https://phpexcel.codeplex.com/workitem/10708)
- Problem with merged cells after insertNewRowBefore() - @Erik Tilt [CodePlex #10706](https://phpexcel.codeplex.com/workitem/10706)
- Applied patch 4023 - @MarkBaker
- Fix to SUMIF() and COUNTIF() Statistical functions for when condition is a match against a string value - @MarkBaker
- PHPExcel_Cell::coordinateFromString should throw exception for bad string parameter - @Erik Tilt [CodePlex #10721](https://phpexcel.codeplex.com/workitem/10721)
- EucrosiaUPC (Thai font) not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10723](https://phpexcel.codeplex.com/workitem/10723)
- Improved the return of calculated results when the result value is an array - @MarkBaker
- Allow calculation engine to support Functions prefixed with @ within formulae - @MarkBaker
- Intersection operator (space operator) fatal error with calculation engine - @MarkBaker [CodePlex #10632](https://phpexcel.codeplex.com/workitem/10632)
- Chinese, Japanese, Korean characters show as squares in PDF - @Erik Tilt [CodePlex #10742](https://phpexcel.codeplex.com/workitem/10742)
- sheet title allows invalid characters - @Erik Tilt [CodePlex #10756](https://phpexcel.codeplex.com/workitem/10756)
- Sheet!$A$1 as function argument in formula causes infinite loop in Excel5 writer - @Erik Tilt [CodePlex #10757](https://phpexcel.codeplex.com/workitem/10757)
- Cell range involving name not working with calculation engine - Modified calculation parser to handle range operator (:), but doesn't currently handle worksheet references with spaces or other non-alphameric characters, or trap erroneous references - @MarkBaker [CodePlex #10740](https://phpexcel.codeplex.com/workitem/10740)
- DATE function problem with calculation engine (says too few arguments given) - @MarkBaker [CodePlex #10798](https://phpexcel.codeplex.com/workitem/10798)
- Blank cell can cause wrong calculated value - @MarkBaker [CodePlex #10799](https://phpexcel.codeplex.com/workitem/10799)
- Modified ROW() and COLUMN() Lookup/Reference Functions to return an array when passed a cell range, plus some additional work on INDEX() - @MarkBaker
- Images not showing in Excel 97 using PHPExcel_Writer_Excel5 (patch by Jordi Gutiérrez Hermoso) - @Erik Tilt [CodePlex #10817](https://phpexcel.codeplex.com/workitem/10817)
- When figures are contained in the excel sheet, Reader was stopped - @Erik Tilt [CodePlex #10785](https://phpexcel.codeplex.com/workitem/10785)
- Formulas changed after insertNewRowBefore() - @MarkBaker [CodePlex #10818](https://phpexcel.codeplex.com/workitem/10818)
- Cell range row offset problem with shared formulas using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10825](https://phpexcel.codeplex.com/workitem/10825)
- Warning: Call-time pass-by-reference has been deprecated - @MarkBaker [CodePlex #10832](https://phpexcel.codeplex.com/workitem/10832)
- Image should "Move but don't size with cells" instead of "Move and size with cells" with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10849](https://phpexcel.codeplex.com/workitem/10849)
- Opening a Excel5 generated XLS in Excel 2007 results in header/footer entry not showing on input - @Erik Tilt [CodePlex #10856](https://phpexcel.codeplex.com/workitem/10856)
- addExternalSheet() not returning worksheet - @Erik Tilt [CodePlex #10859](https://phpexcel.codeplex.com/workitem/10859)
- Invalid results in formulas with named ranges - @MarkBaker [CodePlex #10629](https://phpexcel.codeplex.com/workitem/10629)
## [1.7.0] - 2009-08-10
### General
- Expand documentation: Number formats - @Erik Tilt
- Class 'PHPExcel_Cell_AdvancedValueBinder' not found - @Erik Tilt
### Features
- Change return type of date functions to PHPExcel_Calculation_Functions::RETURNDATE_EXCEL - @MarkBaker
- New RPN and stack-based calculation engine for improved performance of formula calculation - @MarkBaker
- Faster (anything between 2 and 12 times faster than the old parser, depending on the complexity and nature of the formula)
- Significantly more memory efficient when formulae reference cells across worksheets
- Correct behaviour when referencing Named Ranges that exist on several worksheets
- Support for Excel ^ (Exponential) and % (Percentage) operators
- Support for matrices within basic arithmetic formulae (e.g. ={1,2,3;4,5,6;7,8,9}/2)
- Better trapping/handling of NaN and infinity results (return #NUM! error)
- Improved handling of empty parameters for Excel functions
- Optional logging of calculation steps- New calculation engine can be accessed independently of workbooks (for use as a standalone calculator) - @MarkBaker
- Implement more Excel calculation functions - @MarkBaker
- Initial implementation of the COUNTIF() and SUMIF() Statistical functions
- Added ACCRINT() Financial function- Modifications to number format handling for dddd and ddd masks in dates, use of thousand separators even when locale only implements it for money, and basic fraction masks (0 ?/? and ?/?) - @MarkBaker
- Support arbitrary fixed number of decimals in PHPExcel_Style_NumberFormat::toFormattedString() - @Erik Tilt
- Improving performance and memory on data dumps - @Erik Tilt
- Various style optimizations (merging from branch wi6857-memory)
- Moving hyperlink and dataValidation properties from cell to worksheet for lower PHP memory usage- Provide fluent interfaces where possible - @MarkBaker
- Make easy way to apply a border to a rectangular selection - @Erik Tilt
- Support for system window colors in PHPExcel_Reader_Excel5 - @Erik Tilt
- Horizontal center across selection - @Erik Tilt
- Merged cells record, write to full record size in PHPExcel_Writer_Excel5 - @Erik Tilt
- Add page break between sheets in exported PDF - @MarkBaker
- Sanitization of UTF-8 input for cell values - @Erik Tilt
- Read cached calculated value with PHPExcel_Reader_Excel5 - @Erik Tilt
- Miscellaneous CSS improvements for PHPExcel_Writer_HTML - @Erik Tilt
- getProperties: setCompany feature request - @Erik Tilt
- Insert worksheet at a specified index - @MarkBaker
- Change worksheet index - @MarkBaker
- Readfilter for CSV reader - @MarkBaker
- Check value of mbstring.func_overload when saving with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10172](https://phpexcel.codeplex.com/workitem/10172)
- Eliminate dependency of an include path pointing to class directory - @Erik Tilt [CodePlex #10251](https://phpexcel.codeplex.com/workitem/10251)
- Method for getting the correct reader for a certain file (contribution) - @Erik Tilt [CodePlex #10292](https://phpexcel.codeplex.com/workitem/10292)
- Choosing specific row in fromArray method - @Erik Tilt [CodePlex #10287](https://phpexcel.codeplex.com/workitem/10287)
- Shared formula support in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10319](https://phpexcel.codeplex.com/workitem/10319)
### Bugfixes
- Right-to-left column direction in worksheet - @MB,ET [CodePlex #10345](https://phpexcel.codeplex.com/workitem/10345)
- PHPExcel_Reader_Excel5 not reading PHPExcel_Style_NumberFormat::FORMAT_NUMBER ('0') - @Erik Tilt
- Fractional row height in locale other than English results in corrupt output using PHPExcel_Writer_Excel2007 - @Erik Tilt
- Fractional (decimal) numbers not inserted correctly when locale is other than English - @Erik Tilt
- Fractional calculated value in locale other than English results in corrupt output using PHPExcel_Writer_Excel2007 - @Erik Tilt
- Locale aware decimal and thousands separator in exported formats HTML, CSV, PDF - @Erik Tilt
- Cannot Add Image with Space on its Name - @MarkBaker
- Black line at top of every page in output by PHPExcel_Writer_PDF - @Erik Tilt
- Border styles and border colors not showing in HTML output (regression since 1.6.4) - @Erik Tilt
- Hidden screen gridlines setting in worksheet not read by PHPExcel_Reader_Excel2007 - @Erik Tilt
- Some valid sheet names causes corrupt output using PHPExcel_Writer_Excel2007 - @MarkBaker
- More than 32,767 characters in a cell gives corrupt Excel file - @Erik Tilt
- Images not getting copyied with the ->copy() function - @Erik Tilt
- Bad calculation of column width setAutoSize(true) function - @Erik Tilt
- Dates are sometimes offset by 1 day in output by HTML and PDF writers depending on system timezone setting - @Erik Tilt
- Wingdings symbol fonts not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10003](https://phpexcel.codeplex.com/workitem/10003)
- White space string prefix stripped by PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #10010](https://phpexcel.codeplex.com/workitem/10010)
- The name of the Workbook stream MUST be "Workbook", not "Book" - @Erik Tilt [CodePlex #10023](https://phpexcel.codeplex.com/workitem/10023)
- Avoid message "Microsoft Excel recalculates formulas..." when closing xls file from Excel - @Erik Tilt [CodePlex #10030](https://phpexcel.codeplex.com/workitem/10030)
- Non-unique newline representation causes problems with LEN formula - @Erik Tilt [CodePlex #10031](https://phpexcel.codeplex.com/workitem/10031)
- Newline in cell not showing with PHPExcel_Writer_HTML and PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #10033](https://phpexcel.codeplex.com/workitem/10033)
- Rich-Text strings get prefixed by when output by HTML writer - @Erik Tilt [CodePlex #10046](https://phpexcel.codeplex.com/workitem/10046)
- Leading spaces do not appear in output by HTML/PDF writers - @Erik Tilt [CodePlex #10052](https://phpexcel.codeplex.com/workitem/10052)
- Empty Apache POI-generated file can not be read - @MarkBaker [CodePlex #10061](https://phpexcel.codeplex.com/workitem/10061)
- Column width not scaling correctly with font size in HTML and PDF writers - @Erik Tilt [CodePlex #10068](https://phpexcel.codeplex.com/workitem/10068)
- Inaccurate row heights with HTML writer - @Erik Tilt [CodePlex #10069](https://phpexcel.codeplex.com/workitem/10069)
- Reference helper - @MarkBaker
- Excel 5 Named ranges should not be local to the worksheet, but accessible from all worksheets - @MarkBaker
- Row heights are ignored by PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #10088](https://phpexcel.codeplex.com/workitem/10088)
- Write raw XML - @MarkBaker
- removeRow(), removeColumn() not always clearing cell values - @Erik Tilt [CodePlex #10098](https://phpexcel.codeplex.com/workitem/10098)
- Problem reading certain hyperlink records with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10142](https://phpexcel.codeplex.com/workitem/10142)
- Hyperlink cell range read failure with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #10143](https://phpexcel.codeplex.com/workitem/10143)
- 'Column string index can not be empty.' - @MarkBaker [CodePlex #10149](https://phpexcel.codeplex.com/workitem/10149)
- getHighestColumn() sometimes says there are 256 columns with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10204](https://phpexcel.codeplex.com/workitem/10204)
- extractSheetTitle fails when sheet title contains exclamation mark (!) - @Erik Tilt [CodePlex #10220](https://phpexcel.codeplex.com/workitem/10220)
- setTitle() sometimes erroneously appends integer to sheet name - @Erik Tilt [CodePlex #10221](https://phpexcel.codeplex.com/workitem/10221)
- Mac BIFF5 Excel file read failure (missing support for Mac OS Roman character set) - @Erik Tilt [CodePlex #10229](https://phpexcel.codeplex.com/workitem/10229)
- BIFF5 header and footer incorrectly read by PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10230](https://phpexcel.codeplex.com/workitem/10230)
- iconv notices when reading hyperlinks with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10259](https://phpexcel.codeplex.com/workitem/10259)
- Excel5 reader OLE read failure with small Mac BIFF5 Excel files - @Erik Tilt [CodePlex #10252](https://phpexcel.codeplex.com/workitem/10252)
- Problem in reading formula : IF( IF ) with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10272](https://phpexcel.codeplex.com/workitem/10272)
- Error reading formulas referencing external sheets with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10274](https://phpexcel.codeplex.com/workitem/10274)
- Image horizontally stretched when default font size is increased (PHPExcel_Writer_Excel5) - @Erik Tilt [CodePlex #10291](https://phpexcel.codeplex.com/workitem/10291)
- Undefined offset in Reader\Excel5.php on line 3572 - @Erik Tilt [CodePlex #10333](https://phpexcel.codeplex.com/workitem/10333)
- PDF output different then XLS (copied data) - @MarkBaker [CodePlex #10340](https://phpexcel.codeplex.com/workitem/10340)
- Internal hyperlinks with UTF-8 sheet names not working in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10352](https://phpexcel.codeplex.com/workitem/10352)
- String shared formula result read error with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10361](https://phpexcel.codeplex.com/workitem/10361)
- Uncaught exception 'Exception' with message 'Valid scale is between 10 and 400.' in Classes/PHPExcel/Worksheet/PageSetup.php:338 - @Erik Tilt [CodePlex #10363](https://phpexcel.codeplex.com/workitem/10363)
- Using setLoadSheetsOnly fails if you do not use setReadDataOnly(true) and sheet is not the first sheet - @Erik Tilt [CodePlex #10355](https://phpexcel.codeplex.com/workitem/10355)
- getCalculatedValue() sometimes incorrect with IF formula and 0-values - @MarkBaker [CodePlex #10362](https://phpexcel.codeplex.com/workitem/10362)
- Excel Reader 2007 problem with "shared" formulae when "master" is an error - @MarkBaker
- Named Range Bug, using the same range name on different worksheets - @MarkBaker
- Java code in JAMA classes - @MarkBaker
- getCalculatedValue() not working with some formulas involving error types - @MarkBaker
- evaluation of both return values in an IF() statement returning an error if either result was an error, irrespective of the IF evaluation - @MarkBaker
- Power in formulas: new calculation engine no longer treats ^ as a bitwise XOR operator - @MarkBaker
- Bugfixes and improvements to many of the Excel functions in PHPExcel - @MarkBaker
- Added optional "places" parameter in the BIN2HEX(), BIN2OCT, DEC2BIN(), DEC2OCT(), DEC2HEX(), HEX2BIN(), HEX2OCT(), OCT2BIN() and OCT2HEX() Engineering Functions
- Trap for unbalanced matrix sizes in MDETERM() and MINVERSE() Mathematic and Trigonometric functions
- Fix for default characters parameter value for LEFT() and RIGHT() Text functions
- Fix for GCD() and LCB() Mathematical functions when the parameters include a zero (0) value
- Fix for BIN2OCT() Engineering Function for 2s complement values (which were returning hex values)
- Fix for BESSELK() and BESSELY() Engineering functions
- Fix for IMDIV() Engineering Function when result imaginary component is positive (wasn't setting the sign)
- Fix for ERF() Engineering Function when called with an upper limit value for the integration
- Fix to DATE() Date/Time Function for year value of 0
- Set ISPMT() function as category FINANCIAL
- Fix for DOLLARDE() and DOLLARFR() Financial functions
- Fix to EFFECT() Financial function (treating $nominal_rate value as a variable name rather than a value)
- Fix to CRITBINOM() Statistical function (CurrentValue and EssentiallyZero treated as constants rather than variables)
- Note that an Error in the function logic can still lead to a permanent loop
- Fix to MOD() Mathematical function to work with floating point results
- Fix for QUOTIENT() Mathematical function
- Fix to HOUR(), MINUTE() and SECOND() Date/Time functions to return an error when passing in a floating point value of 1.0 or greater, or less than 0
- LOG() Function now correctly returns base-10 log when called with only one parameter, rather than the natural log as the default base
- Modified text functions to handle multibyte character set (UTF-8).
## [1.6.7] - 2009-04-22
### BREAKING CHANGE
In previous versions of PHPExcel up to and including 1.6.6,
when a cell had a date-like number format code, it was possible to enter a date
directly using an integer PHP-time without converting to Excel date format.
Starting with PHPExcel 1.6.7 this is no longer supported. Refer to the developer
documentation for more information on entering dates into a cell.
### General
- Deprecate misspelled setStriketrough() and getStriketrough() methods - @MarkBaker [CodePlex #9416](https://phpexcel.codeplex.com/workitem/9416)
### Features
- Performance improvement when saving file - @MarkBaker [CodePlex #9526](https://phpexcel.codeplex.com/workitem/9526)
- Check that sheet title has maximum 31 characters - @MarkBaker [CodePlex #9598](https://phpexcel.codeplex.com/workitem/9598)
- True support for Excel built-in number format codes - @MB, ET [CodePlex #9631](https://phpexcel.codeplex.com/workitem/9631)
- Ability to read defect BIFF5 Excel file without CODEPAGE record - @Erik Tilt [CodePlex #9683](https://phpexcel.codeplex.com/workitem/9683)
- Auto-detect which reader to invoke - @MarkBaker [CodePlex #9701](https://phpexcel.codeplex.com/workitem/9701)
- Deprecate insertion of dates using PHP-time (Unix time) [request for removal of feature] - @Erik Tilt [CodePlex #9214](https://phpexcel.codeplex.com/workitem/9214)
- Support for entering time values like '9:45', '09:45' using AdvancedValueBinder - @Erik Tilt [CodePlex #9747](https://phpexcel.codeplex.com/workitem/9747)
### Bugfixes
- DataType dependent horizontal alignment in HTML and PDF writer - @Erik Tilt [CodePlex #9797](https://phpexcel.codeplex.com/workitem/9797)
- Cloning data validation object causes script to stop - @MarkBaker [CodePlex #9375](https://phpexcel.codeplex.com/workitem/9375)
- Simultaneous repeating rows and repeating columns not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9400](https://phpexcel.codeplex.com/workitem/9400)
- Simultaneous repeating rows and repeating columns not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #9399](https://phpexcel.codeplex.com/workitem/9399)
- Row outline level not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9437](https://phpexcel.codeplex.com/workitem/9437)
- Occasional notices with PHPExcel_Reader_Excel5 when Excel file contains drawing elements - @Erik Tilt [CodePlex #9452](https://phpexcel.codeplex.com/workitem/9452)
- PHPExcel_Reader_Excel5 fails as a whole when workbook contains images other than JPEG/PNG - @Erik Tilt [CodePlex #9453](https://phpexcel.codeplex.com/workitem/9453)
- Excel5 writer checks for iconv but does not necessarily use it - @Erik Tilt [CodePlex #9444](https://phpexcel.codeplex.com/workitem/9444)
- Altering a style on copied worksheet alters also the original - @Erik Tilt [CodePlex #9463](https://phpexcel.codeplex.com/workitem/9463)
- Formulas are incorrectly updated when a sheet is renamed - @MarkBaker [CodePlex #9480](https://phpexcel.codeplex.com/workitem/9480)
- PHPExcel_Worksheet::extractSheetTitle not treating single quotes correctly - @MarkBaker [CodePlex #9513](https://phpexcel.codeplex.com/workitem/9513)
- PHP Warning raised in function array_key_exists - @MarkBaker [CodePlex #9477](https://phpexcel.codeplex.com/workitem/9477)
- getAlignWithMargins() gives wrong value when using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9599](https://phpexcel.codeplex.com/workitem/9599)
- getScaleWithDocument() gives wrong value when using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9600](https://phpexcel.codeplex.com/workitem/9600)
- PHPExcel_Reader_Excel2007 not reading the first user-defined number format - @MarkBaker [CodePlex #9630](https://phpexcel.codeplex.com/workitem/9630)
- Print area converted to uppercase after read with PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9647](https://phpexcel.codeplex.com/workitem/9647)
- Incorrect reading of scope for named range using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9661](https://phpexcel.codeplex.com/workitem/9661)
- Error with pattern (getFillType) and rbg (getRGB) - @MarkBaker [CodePlex #9690](https://phpexcel.codeplex.com/workitem/9690)
- AdvancedValueBinder affected by system timezone setting when inserting date values - @Erik Tilt [CodePlex #9712](https://phpexcel.codeplex.com/workitem/9712)
- PHPExcel_Reader_Excel2007 not reading value of active sheet index - @Erik Tilt [CodePlex #9743](https://phpexcel.codeplex.com/workitem/9743)
- getARGB() sometimes returns SimpleXMLElement object instead of string with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #9742](https://phpexcel.codeplex.com/workitem/9742)
- Negative image offset causes defects in 14excel5.xls and 20readexcel5.xlsx - @Erik Tilt [CodePlex #9731](https://phpexcel.codeplex.com/workitem/9731)
- HTML & PDF Writer not working with mergeCells (regression since 1.6.5) - @Erik Tilt [CodePlex #9758](https://phpexcel.codeplex.com/workitem/9758)
- Too wide columns with HTML and PDF writer - @Erik Tilt [CodePlex #9774](https://phpexcel.codeplex.com/workitem/9774)
- PDF and cyrillic fonts - @MarkBaker [CodePlex #9775](https://phpexcel.codeplex.com/workitem/9775)
- Percentages not working correctly with HTML and PDF writers (shows 0.25% instead of 25%) - @Erik Tilt [CodePlex #9793](https://phpexcel.codeplex.com/workitem/9793)
- PHPExcel_Writer_HTML creates extra borders around cell contents using setUseInlineCss(true) - @Erik Tilt [CodePlex #9791](https://phpexcel.codeplex.com/workitem/9791)
- Problem with text wrap + merged cells in HTML and PDF writer - @Erik Tilt [CodePlex #9784](https://phpexcel.codeplex.com/workitem/9784)
- Adjacent path separators in include_path causing IOFactory to violate open_basedir restriction - @Erik Tilt [CodePlex #9814](https://phpexcel.codeplex.com/workitem/9814)
## [1.6.6] - 2009-03-02
### General
- Improve support for built-in number formats in PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9102](https://phpexcel.codeplex.com/workitem/9102)
- Source files are in both UNIX and DOS formats - changed to UNIX - @Erik Tilt [CodePlex #9281](https://phpexcel.codeplex.com/workitem/9281)
### Features
- Update documentation: Which language to write formulas in? - @MarkBaker [CodePlex #9338](https://phpexcel.codeplex.com/workitem/9338)
- Ignore DEFCOLWIDTH records with value 8 in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8817](https://phpexcel.codeplex.com/workitem/8817)
- Support for width, height, offsetX, offsetY for images in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8847](https://phpexcel.codeplex.com/workitem/8847)
- Disk Caching in specific folder - @MarkBaker [CodePlex #8870](https://phpexcel.codeplex.com/workitem/8870)
- Added SUMX2MY2, SUMX2PY2, SUMXMY2, MDETERM and MINVERSE Mathematical and Trigonometric Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Added CONVERT Engineering Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Added DB, DDB, DISC, DOLLARDE, DOLLARFR, INTRATE, IPMT, PPMT, PRICEDISC, PRICEMAT and RECEIVED Financial Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Added ACCRINTM, CUMIPMT, CUMPRINC, TBILLEQ, TBILLPRICE, TBILLYIELD, YIELDDISC and YIELDMAT Financial Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Added DOLLAR Text Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Added CORREL, COVAR, FORECAST, INTERCEPT, RSQ, SLOPE and STEYX Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Added PEARSON Statistical Functions as a synonym for CORREL - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Added LINEST, LOGEST (currently only valid for stats = false), TREND and GROWTH Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Added RANK and PERCENTRANK Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Added ROMAN Mathematical Function (Classic form only) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Update documentation to show example of getCellByColumnAndRow($col, $row) - @MarkBaker [CodePlex #8931](https://phpexcel.codeplex.com/workitem/8931)
- Implement worksheet, row and cell iterators - @MarkBaker [CodePlex #8770](https://phpexcel.codeplex.com/workitem/8770)
- Support for arbitrary defined names (named range) - @MarkBaker [CodePlex #9001](https://phpexcel.codeplex.com/workitem/9001)
- Update formulas when sheet title / named range title changes - @MB, ET [CodePlex #9016](https://phpexcel.codeplex.com/workitem/9016)
- Ability to read cached calculated value - @MarkBaker [CodePlex #9103](https://phpexcel.codeplex.com/workitem/9103)
- Support for Excel 1904 calendar date mode (Mac) - @MBaker, ET [CodePlex #8483](https://phpexcel.codeplex.com/workitem/8483)
- PHPExcel_Writer_Excel5 improvements writing shared strings table - @Erik Tilt [CodePlex #9194](https://phpexcel.codeplex.com/workitem/9194)
- PHPExcel_Writer_Excel5 iconv fallback when mbstring extension is not enabled - @Erik Tilt [CodePlex #9248](https://phpexcel.codeplex.com/workitem/9248)
- UTF-8 support in font names in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9253](https://phpexcel.codeplex.com/workitem/9253)
- Implement value binding architecture - @MarkBaker [CodePlex #9215](https://phpexcel.codeplex.com/workitem/9215)
- PDF writer not working with UTF-8 - @MarkBaker [CodePlex #6742](https://phpexcel.codeplex.com/workitem/6742)
### Bugfixes
- Eliminate duplicate style entries in multisheet workbook written by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9355](https://phpexcel.codeplex.com/workitem/9355)
- Redirect to client browser fails due to trailing white space in class definitions - @Erik Tilt [CodePlex #8810](https://phpexcel.codeplex.com/workitem/8810)
- Spurious column dimension element introduced in blank worksheet after using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8816](https://phpexcel.codeplex.com/workitem/8816)
- Image gets slightly narrower than expected when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8830](https://phpexcel.codeplex.com/workitem/8830)
- Image laid over non-visible row gets squeezed in height when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8831](https://phpexcel.codeplex.com/workitem/8831)
- PHPExcel_Reader_Excel5 fails when there are 10 or more images in the workbook - @Erik Tilt [CodePlex #8860](https://phpexcel.codeplex.com/workitem/8860)
- Different header/footer images in different sheets not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8909](https://phpexcel.codeplex.com/workitem/8909)
- Fractional seconds disappear when using PHPExcel_Reader_Excel2007 and PHPExcel_Reader_Excel5 - @MB, ET [CodePlex #8924](https://phpexcel.codeplex.com/workitem/8924)
- Images not showing in OpenOffice when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7994](https://phpexcel.codeplex.com/workitem/7994)
- Images not showing on print using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9047](https://phpexcel.codeplex.com/workitem/9047)
- PHPExcel_Writer_Excel5 maximum allowed record size 4 bytes too short - @Erik Tilt [CodePlex #9085](https://phpexcel.codeplex.com/workitem/9085)
- Not numeric strings are formatted as dates and numbers using worksheet's toArray method - @MarkBaker [CodePlex #9119](https://phpexcel.codeplex.com/workitem/9119)
- Excel5 simple formula parsing error - @Erik Tilt [CodePlex #9132](https://phpexcel.codeplex.com/workitem/9132)
- Problems writing dates with CSV - @Erik Tilt [CodePlex #9206](https://phpexcel.codeplex.com/workitem/9206)
- PHPExcel_Reader_Excel5 reader fails with fatal error when reading group shapes - @Erik Tilt [CodePlex #9203](https://phpexcel.codeplex.com/workitem/9203)
- PHPExcel_Writer_Excel5 fails completely when workbook contains more than 57 colors - @Erik Tilt [CodePlex #9231](https://phpexcel.codeplex.com/workitem/9231)
- PHPExcel_Writer_PDF not compatible with autoload - @Erik Tilt [CodePlex #9244](https://phpexcel.codeplex.com/workitem/9244)
- Fatal error: Call to a member function getNestingLevel() on a non-object in PHPExcel/Reader/Excel5.php on line 690 - @Erik Tilt [CodePlex #9250](https://phpexcel.codeplex.com/workitem/9250)
- Notices when running test 04printing.php on PHP 5.2.8 - @MarkBaker [CodePlex #9246](https://phpexcel.codeplex.com/workitem/9246)
- insertColumn() spawns creation of spurious RowDimension - @MarkBaker [CodePlex #9294](https://phpexcel.codeplex.com/workitem/9294)
- Fix declarations for methods in extended Trend classes - @MarkBaker [CodePlex #9296](https://phpexcel.codeplex.com/workitem/9296)
- Fix to parameters for the FORECAST Statistical Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- PDF writer problems with cell height and text wrapping - @MarkBaker [CodePlex #7083](https://phpexcel.codeplex.com/workitem/7083)
- Fix test for calculated value in case the returned result is an array - @MarkBaker
- Column greater than 256 results in corrupt Excel file using PHPExcel_Writer_Excel5 - @Erik Tilt
- Excel Numberformat 0.00 results in non internal decimal places values in toArray() Method - @MarkBaker [CodePlex #9351](https://phpexcel.codeplex.com/workitem/9351)
- setAutoSize not taking into account text rotation - @MB,ET [CodePlex #9356](https://phpexcel.codeplex.com/workitem/9356)
- Call to undefined method PHPExcel_Worksheet_MemoryDrawing::getPath() in PHPExcel/Writer/HTML.php - @Erik Tilt [CodePlex #9372](https://phpexcel.codeplex.com/workitem/9372)
## [1.6.5] - 2009-01-05
### General
- Applied patch 2063 - @MarkBaker
- Optimise Shared Strings - @MarkBaker
- Optimise Cell Sorting - @MarkBaker
- Optimise Style Hashing - @MarkBaker
- UTF-8 enhancements - @Erik Tilt
- PHPExcel_Writer_HTML validation errors against strict HTML 4.01 / CSS 2.1 - @Erik Tilt
- Documented work items 6203 and 8110 in manual - @MarkBaker
- Restructure package hierachy so classes can be found more easily in auto-generated API (from work item 8468) - @Erik Tilt
### Features
- Redirect output to a client's browser: Update recommendation in documentation - @MarkBaker [CodePlex #8806](https://phpexcel.codeplex.com/workitem/8806)
- PHPExcel_Reader_Excel5 support for print gridlines - @Erik Tilt [CodePlex #7897](https://phpexcel.codeplex.com/workitem/7897)
- Screen gridlines support in Excel5 reader/writer - @Erik Tilt [CodePlex #7899](https://phpexcel.codeplex.com/workitem/7899)
- Option for adding image to spreadsheet from image resource in memory - @MB, ET [CodePlex #7552](https://phpexcel.codeplex.com/workitem/7552)
- PHPExcel_Reader_Excel5 style support for BIFF5 files (Excel 5.0 - Excel 95) - @Erik Tilt [CodePlex #7862](https://phpexcel.codeplex.com/workitem/7862)
- PHPExcel_Reader_Excel5 support for user-defined colors and special built-in colors - @Erik Tilt [CodePlex #7918](https://phpexcel.codeplex.com/workitem/7918)
- Support for freeze panes in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7992](https://phpexcel.codeplex.com/workitem/7992)
- Support for header and footer margins in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7996](https://phpexcel.codeplex.com/workitem/7996)
- Support for active sheet index in Excel5 reader/writer - @Erik Tilt [CodePlex #7997](https://phpexcel.codeplex.com/workitem/7997)
- Freeze panes not read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7991](https://phpexcel.codeplex.com/workitem/7991)
- Support for screen zoom level (feature request) - @MB, ET [CodePlex #7993](https://phpexcel.codeplex.com/workitem/7993)
- Support for default style in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8012](https://phpexcel.codeplex.com/workitem/8012)
- Apple iWork / Numbers.app incompatibility - @MarkBaker [CodePlex #8094](https://phpexcel.codeplex.com/workitem/8094)
- Support "between rule" in conditional formatting - @MarkBaker [CodePlex #7931](https://phpexcel.codeplex.com/workitem/7931)
- Comment size, width and height control (feature request) - @MarkBaker [CodePlex #8308](https://phpexcel.codeplex.com/workitem/8308)
- Improve method for storing MERGEDCELLS records in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8418](https://phpexcel.codeplex.com/workitem/8418)
- Support for protectCells() in Excel5 reader/writer - @Erik Tilt [CodePlex #8435](https://phpexcel.codeplex.com/workitem/8435)
- Support for fitToWidth and fitToHeight pagesetup properties in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8472](https://phpexcel.codeplex.com/workitem/8472)
- Support for setShowSummaryBelow() and setShowSummaryRight() in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8489](https://phpexcel.codeplex.com/workitem/8489)
- Support for Excel 1904 calendar date mode (Mac) - @MarkBaker [CodePlex #8483](https://phpexcel.codeplex.com/workitem/8483)
- Excel5 reader: Support for reading images (bitmaps) - @Erik Tilt [CodePlex #7538](https://phpexcel.codeplex.com/workitem/7538)
- Support for default style in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8787](https://phpexcel.codeplex.com/workitem/8787)
- Modified calculate() method to return either an array or the first value from the array for those functions that return arrays rather than single values (e.g the MMULT and TRANSPOSE function). This performance can be modified based on the $returnArrayAsType which can be set/retrieved by calling the setArrayReturnType() and getArrayReturnType() methods of the PHPExcel_Calculation class. - @MarkBaker
### Bugfixes
- Added ERROR.TYPE Information Function, MMULT Mathematical and Trigonometry Function, and TRANSPOSE Lookup and Reference Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- setPrintGridlines(true) not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7896](https://phpexcel.codeplex.com/workitem/7896)
- Incorrect mapping of fill patterns in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7907](https://phpexcel.codeplex.com/workitem/7907)
- setShowGridlines(false) not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7898](https://phpexcel.codeplex.com/workitem/7898)
- getShowGridlines() gives inverted value when reading sheet with PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7905](https://phpexcel.codeplex.com/workitem/7905)
- User-defined column width becomes slightly larger after read/write with Excel5 - @Erik Tilt [CodePlex #7944](https://phpexcel.codeplex.com/workitem/7944)
- Incomplete border style support in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7949](https://phpexcel.codeplex.com/workitem/7949)
- Conditional formatting "containsText" read/write results in MS Office Excel 2007 crash - @MarkBaker [CodePlex #7928](https://phpexcel.codeplex.com/workitem/7928)
- All sheets are always selected in output when using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7995](https://phpexcel.codeplex.com/workitem/7995)
- COLUMN function warning message during plain read/write - @MarkBaker [CodePlex #8013](https://phpexcel.codeplex.com/workitem/8013)
- setValue(0) results in string data type '0' - @MarkBaker [CodePlex #8155](https://phpexcel.codeplex.com/workitem/8155)
- Styles not removed when removing rows from sheet - @MarkBaker [CodePlex #8226](https://phpexcel.codeplex.com/workitem/8226)
- =IF formula causes fatal error during $objWriter->save() in Excel2007 format - @MarkBaker [CodePlex #8301](https://phpexcel.codeplex.com/workitem/8301)
- Exception thrown reading valid xls file: "Excel file is corrupt. Didn't find CONTINUE record while reading shared strings" - @Erik Tilt [CodePlex #8333](https://phpexcel.codeplex.com/workitem/8333)
- MS Outlook corrupts files generated by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8320](https://phpexcel.codeplex.com/workitem/8320)
- Undefined method PHPExcel_Worksheet::setFreezePane() in ReferenceHelper.php on line 271 - @MarkBaker [CodePlex #8351](https://phpexcel.codeplex.com/workitem/8351)
- Ampersands (&), left and right angles (<, >) in Rich-Text strings leads to corrupt output using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8401](https://phpexcel.codeplex.com/workitem/8401)
- Print header and footer not supporting UTF-8 in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8408](https://phpexcel.codeplex.com/workitem/8408)
- Vertical page breaks not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8463](https://phpexcel.codeplex.com/workitem/8463)
- Missing support for accounting underline types in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8476](https://phpexcel.codeplex.com/workitem/8476)
- Infinite loops when reading corrupt xls file using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8482](https://phpexcel.codeplex.com/workitem/8482)
- Sheet protection password not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8566](https://phpexcel.codeplex.com/workitem/8566)
- PHPExcel_Style_NumberFormat::FORMAT_NUMBER ignored by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8596](https://phpexcel.codeplex.com/workitem/8596)
- PHPExcel_Reader_Excel5 fails a whole when workbook contains a chart - @Erik Tilt [CodePlex #8781](https://phpexcel.codeplex.com/workitem/8781)
- Occasional loss of column widths using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8788](https://phpexcel.codeplex.com/workitem/8788)
- Notices while reading formulas with deleted sheet references using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8795](https://phpexcel.codeplex.com/workitem/8795)
- Default style not read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #8807](https://phpexcel.codeplex.com/workitem/8807)
- Blank rows occupy too much space in file generated by PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #9341](https://phpexcel.codeplex.com/workitem/9341)
## [1.6.4] - 2008-10-27
### Features
- RK record number error in MS developer documentation: 0x007E should be 0x027E - @Erik Tilt [CodePlex #7882](https://phpexcel.codeplex.com/workitem/7882)
- getHighestColumn() returning "@" for blank worksheet causes corrupt output - @MarkBaker [CodePlex #7878](https://phpexcel.codeplex.com/workitem/7878)
- Implement ROW and COLUMN Lookup/Reference Functions (when specified with a parameter) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Implement initial work on OFFSET Lookup/Reference Function (returning address rather than value at address) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Excel5 reader: Page margins - @Erik Tilt [CodePlex #7416](https://phpexcel.codeplex.com/workitem/7416)
- Excel5 reader: Header & Footer - @Erik Tilt [CodePlex #7417](https://phpexcel.codeplex.com/workitem/7417)
- Excel5 reader support for page setup (paper size etc.) - @Erik Tilt [CodePlex #7449](https://phpexcel.codeplex.com/workitem/7449)
- Improve speed and memory consumption of PHPExcel_Writer_CSV - @MarkBaker [CodePlex #7445](https://phpexcel.codeplex.com/workitem/7445)
- Better recognition of number format in HTML, CSV, and PDF writer - @MarkBaker [CodePlex #7432](https://phpexcel.codeplex.com/workitem/7432)
- Font support: Superscript and Subscript - @MarkBaker [CodePlex #7485](https://phpexcel.codeplex.com/workitem/7485)
- Excel5 reader font support: Super- and subscript - @Erik Tilt [CodePlex #7509](https://phpexcel.codeplex.com/workitem/7509)
- Excel5 reader style support: Text rotation and stacked text - @Erik Tilt [CodePlex #7521](https://phpexcel.codeplex.com/workitem/7521)
- Excel5 reader: Support for hyperlinks - @Erik Tilt [CodePlex #7530](https://phpexcel.codeplex.com/workitem/7530)
- Import sheet by request - @MB, ET [CodePlex #7557](https://phpexcel.codeplex.com/workitem/7557)
- PHPExcel_Reader_Excel5 support for page breaks - @Erik Tilt [CodePlex #7607](https://phpexcel.codeplex.com/workitem/7607)
- PHPExcel_Reader_Excel5 support for shrink-to-fit - @Erik Tilt [CodePlex #7622](https://phpexcel.codeplex.com/workitem/7622)
- Support for error types - @MB, ET [CodePlex #7675](https://phpexcel.codeplex.com/workitem/7675)
- Excel5 reader true formula support - @Erik Tilt [CodePlex #7388](https://phpexcel.codeplex.com/workitem/7388)
- Support for named ranges (defined names) in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7701](https://phpexcel.codeplex.com/workitem/7701)
- Support for repeating rows and repeating columns (print titles) in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7781](https://phpexcel.codeplex.com/workitem/7781)
- Support for print area in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7783](https://phpexcel.codeplex.com/workitem/7783)
- Excel5 reader and writer support for horizontal and vertical centering of page - @Erik Tilt [CodePlex #7795](https://phpexcel.codeplex.com/workitem/7795)
- Applied patch 1962 - @MarkBaker
- Excel5 reader and writer support for hidden cells (formulas) - @Erik Tilt [CodePlex #7866](https://phpexcel.codeplex.com/workitem/7866)
- Support for indentation in cells (feature request) - @MB, ET [CodePlex #7612](https://phpexcel.codeplex.com/workitem/7612)
### Bugfixes
- Option for reading only specified interval of rows in a sheet - @MB, ET [CodePlex #7828](https://phpexcel.codeplex.com/workitem/7828)
- PHPExcel_Calculation_Functions::DATETIMENOW() and PHPExcel_Calculation_Functions::DATENOW() to force UTC - @MarkBaker [CodePlex #7367](https://phpexcel.codeplex.com/workitem/7367)
- Modified PHPExcel_Shared_Date::FormattedPHPToExcel() and PHPExcel_Shared_Date::ExcelToPHP to force datatype for return values - @MarkBaker [CodePlex #7395](https://phpexcel.codeplex.com/workitem/7395)
- Excel5 reader not producing UTF-8 strings with BIFF5 files - @Erik Tilt [CodePlex #7450](https://phpexcel.codeplex.com/workitem/7450)
- Array constant in formula gives run-time notice with Excel2007 writer - @MarkBaker [CodePlex #7470](https://phpexcel.codeplex.com/workitem/7470)
- PHPExcel_Reader_Excel2007 setReadDataOnly(true) returns Rich-Text - @MarkBaker [CodePlex #7494](https://phpexcel.codeplex.com/workitem/7494)
- PHPExcel_Reader_Excel5 setReadDataOnly(true) returns Rich-Text - @Erik Tilt [CodePlex #7496](https://phpexcel.codeplex.com/workitem/7496)
- Characters before superscript or subscript losing style - @MarkBaker [CodePlex #7497](https://phpexcel.codeplex.com/workitem/7497)
- Subscript not working with HTML writer - @MarkBaker [CodePlex #7507](https://phpexcel.codeplex.com/workitem/7507)
- DefaultColumnDimension not working on first column (A) - @MarkBaker [CodePlex #7508](https://phpexcel.codeplex.com/workitem/7508)
- Negative numbers are stored as text in PHPExcel_Writer_2007 - @MarkBaker [CodePlex #7527](https://phpexcel.codeplex.com/workitem/7527)
- Text rotation and stacked text not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7531](https://phpexcel.codeplex.com/workitem/7531)
- PHPExcel_Shared_Date::isDateTimeFormatCode erroneously says true - @MarkBaker [CodePlex #7536](https://phpexcel.codeplex.com/workitem/7536)
- Different images with same filename in separate directories become duplicates - @MarkBaker [CodePlex #7559](https://phpexcel.codeplex.com/workitem/7559)
- PHPExcel_Reader_Excel5 not returning sheet names as UTF-8 using for Excel 95 files - @Erik Tilt [CodePlex #7568](https://phpexcel.codeplex.com/workitem/7568)
- setAutoSize(true) on empty column gives column width of 10 using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7575](https://phpexcel.codeplex.com/workitem/7575)
- setAutoSize(true) on empty column gives column width of 255 using PHPExcel_Writer_Excel5 - @MB, ET [CodePlex #7573](https://phpexcel.codeplex.com/workitem/7573)
- Worksheet_Drawing bug - @MarkBaker [CodePlex #7514](https://phpexcel.codeplex.com/workitem/7514)
- getCalculatedValue() with REPT function causes script to stop - @MarkBaker [CodePlex #7593](https://phpexcel.codeplex.com/workitem/7593)
- getCalculatedValue() with LEN function causes script to stop - @MarkBaker [CodePlex #7594](https://phpexcel.codeplex.com/workitem/7594)
- Explicit fit-to-width (page setup) results in fit-to-height becoming 1 - @MarkBaker [CodePlex #7600](https://phpexcel.codeplex.com/workitem/7600)
- Fit-to-width value of 1 is lost after read/write of Excel2007 spreadsheet - @MarkBaker [CodePlex #7610](https://phpexcel.codeplex.com/workitem/7610)
- Conditional styles not read properly using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7516](https://phpexcel.codeplex.com/workitem/7516)
- PHPExcel_Writer_2007: Default worksheet style works only for first sheet - @MarkBaker [CodePlex #7611](https://phpexcel.codeplex.com/workitem/7611)
- Cannot Lock Cells using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #6940](https://phpexcel.codeplex.com/workitem/6940)
- Incorrect cell protection values found when using Excel5 reader - @Erik Tilt [CodePlex #7621](https://phpexcel.codeplex.com/workitem/7621)
- Default row height not working above highest row using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7623](https://phpexcel.codeplex.com/workitem/7623)
- Default column width does not get applied when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7637](https://phpexcel.codeplex.com/workitem/7637)
- Broken support for UTF-8 string formula results in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7642](https://phpexcel.codeplex.com/workitem/7642)
- UTF-8 sheet names not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7643](https://phpexcel.codeplex.com/workitem/7643)
- getCalculatedValue() with ISNONTEXT function causes script to stop - @MarkBaker [CodePlex #7631](https://phpexcel.codeplex.com/workitem/7631)
- Missing BIFF3 functions in PHPExcel_Writer_Excel5: USDOLLAR (YEN), FINDB, SEARCHB, REPLACEB, LEFTB, RIGHTB, MIDB, LENB, ASC, DBCS (JIS) - @Erik Tilt [CodePlex #7652](https://phpexcel.codeplex.com/workitem/7652)
- Excel5 reader doesn't read numbers correctly in 64-bit systems - @Erik Tilt [CodePlex #7663](https://phpexcel.codeplex.com/workitem/7663)
- Missing BIFF5 functions in PHPExcel_Writer_Excel5: ISPMT, DATEDIF, DATESTRING, NUMBERSTRING - @Erik Tilt [CodePlex #7667](https://phpexcel.codeplex.com/workitem/7667)
- Missing BIFF8 functions in PHPExcel_Writer_Excel5: GETPIVOTDATA, HYPERLINK, PHONETIC, AVERAGEA, MAXA, MINA, STDEVPA, VARPA, STDEVA, VARA - @Erik Tilt [CodePlex #7668](https://phpexcel.codeplex.com/workitem/7668)
- Wrong host value in PHPExcel_Shared_ZipStreamWrapper::stream_open() - @MarkBaker [CodePlex #7657](https://phpexcel.codeplex.com/workitem/7657)
- PHPExcel_Reader_Excel5 not reading explicitly entered error types in cells - @Erik Tilt [CodePlex #7676](https://phpexcel.codeplex.com/workitem/7676)
- Boolean and error data types not preserved for formula results in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7678](https://phpexcel.codeplex.com/workitem/7678)
- PHPExcel_Reader_Excel2007 ignores cell data type - @MarkBaker [CodePlex #7695](https://phpexcel.codeplex.com/workitem/7695)
- PHPExcel_Reader_Excel5 ignores cell data type - @Erik Tilt [CodePlex #7712](https://phpexcel.codeplex.com/workitem/7712)
- PHPExcel_Writer_Excel5 not aware of data type - @Erik Tilt [CodePlex #7587](https://phpexcel.codeplex.com/workitem/7587)
- Long strings sometimes truncated when using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7713](https://phpexcel.codeplex.com/workitem/7713)
- Direct entry of boolean or error type in cell not supported by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7727](https://phpexcel.codeplex.com/workitem/7727)
- PHPExcel_Reader_Excel2007: Error reading cell with data type string, date number format, and numeric-like cell value - @MarkBaker [CodePlex #7714](https://phpexcel.codeplex.com/workitem/7714)
- Row and column outlines (group indent level) not showing after using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7735](https://phpexcel.codeplex.com/workitem/7735)
- Missing UTF-8 support in number format codes for PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7737](https://phpexcel.codeplex.com/workitem/7737)
- Missing UTF-8 support with PHPExcel_Writer_Excel5 for explicit string in formula - @Erik Tilt [CodePlex #7750](https://phpexcel.codeplex.com/workitem/7750)
- Problem with class constants in PHPExcel_Style_NumberFormat - @MarkBaker [CodePlex #7726](https://phpexcel.codeplex.com/workitem/7726)
- Sometimes errors with PHPExcel_Reader_Excel5 reading hyperlinks - @Erik Tilt [CodePlex #7758](https://phpexcel.codeplex.com/workitem/7758)
- Hyperlink in cell always results in string data type when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7759](https://phpexcel.codeplex.com/workitem/7759)
- Excel file with blank sheet seen as broken in MS Office Excel 2007 when created by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7771](https://phpexcel.codeplex.com/workitem/7771)
- PHPExcel_Reader_Excel5: Incorrect reading of formula with explicit string containing (escaped) double-quote - @Erik Tilt [CodePlex #7785](https://phpexcel.codeplex.com/workitem/7785)
- getCalculatedValue() fails on formula with sheet name containing (escaped) single-quote - @MarkBaker [CodePlex #7787](https://phpexcel.codeplex.com/workitem/7787)
- getCalculatedValue() fails on formula with explicit string containing (escaped) double-quote - @MarkBaker [CodePlex #7786](https://phpexcel.codeplex.com/workitem/7786)
- Problems with simultaneous repeatRowsAtTop and repeatColumnsAtLeft using Excel2007 reader and writer - @MarkBaker [CodePlex #7780](https://phpexcel.codeplex.com/workitem/7780)
- PHPExcel_Reader_Excel5: Error reading formulas with sheet reference containing special characters - @Erik Tilt [CodePlex #7802](https://phpexcel.codeplex.com/workitem/7802)
- Off-sheet references sheet!A1 not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7831](https://phpexcel.codeplex.com/workitem/7831)
- Repeating rows/columns (print titles), print area not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7834](https://phpexcel.codeplex.com/workitem/7834)
- Formula having datetime number format shows as text when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7849](https://phpexcel.codeplex.com/workitem/7849)
- Cannot set formula to hidden using applyFromArray() - @MarkBaker [CodePlex #7863](https://phpexcel.codeplex.com/workitem/7863)
- HTML/PDF Writers limited to 26 columns by calculateWorksheetDimension (erroneous comparison in getHighestColumn() method) - @MarkBaker [CodePlex #7805](https://phpexcel.codeplex.com/workitem/7805)
- Formula returning error type is lost when read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7873](https://phpexcel.codeplex.com/workitem/7873)
- PHPExcel_Reader_Excel5: Cell style lost for last column in group of blank cells - @Erik Tilt [CodePlex #7883](https://phpexcel.codeplex.com/workitem/7883)
- Column width sometimes collapses to auto size using Excel2007 reader/writer - @MarkBaker [CodePlex #7886](https://phpexcel.codeplex.com/workitem/7886)
- Data Validation Formula = 0 crashes Excel - @MarkBaker [CodePlex #9343](https://phpexcel.codeplex.com/workitem/9343)
## [1.6.3] - 2008-08-25
### General
- Modified PHPExcel_Shared_Date::PHPToExcel() to force UTC - @MarkBaker [CodePlex #7367](https://phpexcel.codeplex.com/workitem/7367)
- Applied patch 1629 - @MarkBaker
- Applied patch 1644 - @MarkBaker
- Implement repeatRow and repeatColumn in Excel5 writer - @MarkBaker [CodePlex #6485](https://phpexcel.codeplex.com/workitem/6485)
### Features
- Remove scene3d filter in Excel2007 drawing - @MarkBaker [CodePlex #6838](https://phpexcel.codeplex.com/workitem/6838)
- Implement CHOOSE and INDEX Lookup/Reference Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Implement CLEAN Text Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Implement YEARFRAC Date/Time Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Implement 2 options for print/show gridlines - @MarkBaker [CodePlex #6508](https://phpexcel.codeplex.com/workitem/6508)
- Add VLOOKUP function (contribution) - @MarkBaker [CodePlex #7270](https://phpexcel.codeplex.com/workitem/7270)
- Implemented: ShrinkToFit - @MarkBaker [CodePlex #7182](https://phpexcel.codeplex.com/workitem/7182)
- Row heights not updated correctly when inserting new rows - @MarkBaker [CodePlex #7218](https://phpexcel.codeplex.com/workitem/7218)
- Copy worksheets within the same workbook - @MarkBaker [CodePlex #7157](https://phpexcel.codeplex.com/workitem/7157)
- Excel5 reader style support: horizontal and vertical alignment plus text wrap - @Erik Tilt [CodePlex #7290](https://phpexcel.codeplex.com/workitem/7290)
- Excel5 reader support for merged cells - @Erik Tilt [CodePlex #7294](https://phpexcel.codeplex.com/workitem/7294)
- Excel5 reader: Sheet Protection - @Erik Tilt [CodePlex #7296](https://phpexcel.codeplex.com/workitem/7296)
- Excel5 reader: Password for sheet protection - @Erik Tilt [CodePlex #7297](https://phpexcel.codeplex.com/workitem/7297)
- Excel5 reader: Column width - @Erik Tilt [CodePlex #7299](https://phpexcel.codeplex.com/workitem/7299)
- Excel5 reader: Row height - @Erik Tilt [CodePlex #7301](https://phpexcel.codeplex.com/workitem/7301)
- Excel5 reader: Font support - @Erik Tilt [CodePlex #7304](https://phpexcel.codeplex.com/workitem/7304)
- Excel5 reader: support for locked cells - @Erik Tilt [CodePlex #7324](https://phpexcel.codeplex.com/workitem/7324)
- Excel5 reader style support: Fill (background colors and patterns) - @Erik Tilt [CodePlex #7330](https://phpexcel.codeplex.com/workitem/7330)
- Excel5 reader style support: Borders (style and color) - @Erik Tilt [CodePlex #7332](https://phpexcel.codeplex.com/workitem/7332)
- Excel5 reader: Rich-Text support - @Erik Tilt [CodePlex #7346](https://phpexcel.codeplex.com/workitem/7346)
- Read Excel built-in number formats with Excel 2007 reader - @MarkBaker [CodePlex #7313](https://phpexcel.codeplex.com/workitem/7313)
- Excel5 reader: Number format support - @Erik Tilt [CodePlex #7317](https://phpexcel.codeplex.com/workitem/7317)
- Creating a copy of PHPExcel object - @MarkBaker [CodePlex #7362](https://phpexcel.codeplex.com/workitem/7362)
- Excel5 reader: support for row / column outline (group) - @Erik Tilt [CodePlex #7373](https://phpexcel.codeplex.com/workitem/7373)
- Implement default row/column sizes - @MarkBaker [CodePlex #7380](https://phpexcel.codeplex.com/workitem/7380)
- Writer HTML - option to return styles and table separately - @MarkBaker [CodePlex #7364](https://phpexcel.codeplex.com/workitem/7364)
### Bugfixes
- Excel5 reader: Support for remaining built-in number formats - @Erik Tilt [CodePlex #7393](https://phpexcel.codeplex.com/workitem/7393)
- Fixed rounding in HOUR MINUTE and SECOND Time functions, and improved performance for these - @MarkBaker
- Fix to TRIM function - @MarkBaker
- Fixed range validation in TIME Functions.php - @MarkBaker
- EDATE and EOMONTH functions now return date values based on the returnDateType flag - @MarkBaker
- Write date values that are the result of a calculation function correctly as Excel serialized dates rather than PHP serialized date values - @MarkBaker
- Excel2007 reader not always reading boolean correctly - @MarkBaker [CodePlex #6690](https://phpexcel.codeplex.com/workitem/6690)
- Columns above IZ - @MarkBaker [CodePlex #6275](https://phpexcel.codeplex.com/workitem/6275)
- Other locale than English causes Excel2007 writer to produce broken xlsx - @MarkBaker [CodePlex #6853](https://phpexcel.codeplex.com/workitem/6853)
- Typo: Number_fromat in NumberFormat.php - @MarkBaker [CodePlex #7061](https://phpexcel.codeplex.com/workitem/7061)
- Bug in Worksheet_BaseDrawing setWidth() - @MarkBaker [CodePlex #6865](https://phpexcel.codeplex.com/workitem/6865)
- PDF writer collapses column width for merged cells - @MarkBaker [CodePlex #6891](https://phpexcel.codeplex.com/workitem/6891)
- Issues with drawings filenames - @MarkBaker [CodePlex #6867](https://phpexcel.codeplex.com/workitem/6867)
- fromArray() local variable isn't defined - @MarkBaker [CodePlex #7073](https://phpexcel.codeplex.com/workitem/7073)
- PHPExcel_Writer_Excel5->setTempDir() not passed to all classes involved in writing to a file - @MarkBaker [CodePlex #7276](https://phpexcel.codeplex.com/workitem/7276)
- Excel5 reader not handling UTF-8 properly - @MarkBaker [CodePlex #7277](https://phpexcel.codeplex.com/workitem/7277)
- If you write a 0 value in cell, cell shows as empty - @MarkBaker [CodePlex #7327](https://phpexcel.codeplex.com/workitem/7327)
- Excel2007 writer: Row height ignored for empty rows - @MarkBaker [CodePlex #7302](https://phpexcel.codeplex.com/workitem/7302)
- Excel2007 (comments related error) - @MarkBaker [CodePlex #7281](https://phpexcel.codeplex.com/workitem/7281)
- Column width in other locale - @MarkBaker [CodePlex #7345](https://phpexcel.codeplex.com/workitem/7345)
- Excel2007 reader not reading underlined Rich-Text - @MarkBaker [CodePlex #7347](https://phpexcel.codeplex.com/workitem/7347)
- Excel5 reader converting booleans to strings - @Erik Tilt [CodePlex #7357](https://phpexcel.codeplex.com/workitem/7357)
- Recursive Object Memory Leak - @MarkBaker [CodePlex #7365](https://phpexcel.codeplex.com/workitem/7365)
- Excel2007 writer ignoring row dimensions without cells - @MarkBaker [CodePlex #7372](https://phpexcel.codeplex.com/workitem/7372)
- Excel5 reader is converting formatted numbers / dates to strings - @Erik Tilt [CodePlex #7382](https://phpexcel.codeplex.com/workitem/7382)
## [1.6.2] - 2008-06-23
### General
- Document style array values - @MarkBaker [CodePlex #6088](https://phpexcel.codeplex.com/workitem/6088)
- Applied patch 1195 - @MarkBaker
- Redirecting output to a client’s web browser - http headers - @MarkBaker [CodePlex #6178](https://phpexcel.codeplex.com/workitem/6178)
- Improve worksheet garbage collection - @MarkBaker [CodePlex #6187](https://phpexcel.codeplex.com/workitem/6187)
- Functions that return date values can now be configured to return as Excel serialized date/time, PHP serialized date/time, or a PHP date/time object. - @MarkBaker
- Functions that explicitly accept dates as parameters now permit values as Excel serialized date/time, PHP serialized date/time, a valid date string, or a PHP date/time object. - @MarkBaker
- Implement ACOSH, ASINH and ATANH functions for those operating platforms/PHP versions that don't include these functions - @MarkBaker
- Implement ATAN2 logic reversing the arguments as per Excel - @MarkBaker
- Additional validation of parameters for COMBIN - @MarkBaker
### Features
- Fixed validation for CEILING and FLOOR when the value and significance parameters have different signs; and allowed default value of 1 or -1 for significance when in GNUMERIC compatibility mode - @MarkBaker
- Implement ADDRESS, ISLOGICAL, ISTEXT and ISNONTEXT functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Implement COMPLEX, IMAGINARY, IMREAL, IMARGUMENT, IMCONJUGATE, IMABS, IMSUB, IMDIV, IMSUM, IMPRODUCT, IMSQRT, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER IMCOS and IMSIN Engineering functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Implement NETWORKDAYS and WORKDAY Date/Time functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Make cell column AAA available - @MarkBaker [CodePlex #6100](https://phpexcel.codeplex.com/workitem/6100)
- Mark particular cell as selected when opening Excel - @MarkBaker [CodePlex #6095](https://phpexcel.codeplex.com/workitem/6095)
- Multiple sheets in PDF and HTML - @MarkBaker [CodePlex #6120](https://phpexcel.codeplex.com/workitem/6120)
- Implement PHPExcel_ReaderFactory and PHPExcel_WriterFactory - @MarkBaker [CodePlex #6227](https://phpexcel.codeplex.com/workitem/6227)
- Set image root of PHPExcel_Writer_HTML - @MarkBaker [CodePlex #6249](https://phpexcel.codeplex.com/workitem/6249)
- Enable/disable calculation cache - @MarkBaker [CodePlex #6264](https://phpexcel.codeplex.com/workitem/6264)
- PDF writer and multi-line text - @MarkBaker [CodePlex #6259](https://phpexcel.codeplex.com/workitem/6259)
- Feature request - setCacheExpirationTime() - @MarkBaker [CodePlex #6350](https://phpexcel.codeplex.com/workitem/6350)
- Implement late-binding mechanisms to reduce memory footprint - @JB [CodePlex #6370](https://phpexcel.codeplex.com/workitem/6370)
- Implement shared styles - @JB [CodePlex #6430](https://phpexcel.codeplex.com/workitem/6430)
- Copy sheet from external Workbook to active Workbook - @MarkBaker [CodePlex #6391](https://phpexcel.codeplex.com/workitem/6391)
### Bugfixes
- Functions in Conditional Formatting - @MarkBaker [CodePlex #6428](https://phpexcel.codeplex.com/workitem/6428)
- Default Style in Excel5 - @MarkBaker [CodePlex #6096](https://phpexcel.codeplex.com/workitem/6096)
- Numbers starting with '+' cause Excel 2007 errors - @MarkBaker [CodePlex #6150](https://phpexcel.codeplex.com/workitem/6150)
- ExcelWriter5 is not PHP5 compatible, using it with E_STRICT results in a bunch of errors (applied patches) - @MarkBaker [CodePlex #6092](https://phpexcel.codeplex.com/workitem/6092)
- Error Reader Excel2007 line 653 foreach ($relsDrawing->Relationship as $ele) - @MarkBaker [CodePlex #6179](https://phpexcel.codeplex.com/workitem/6179)
- Worksheet toArray() screws up DATE - @MarkBaker [CodePlex #6229](https://phpexcel.codeplex.com/workitem/6229)
- References to a Richtext cell in a formula - @MarkBaker [CodePlex #6253](https://phpexcel.codeplex.com/workitem/6253)
- insertNewColumnBefore Bug - @MarkBaker [CodePlex #6285](https://phpexcel.codeplex.com/workitem/6285)
- Error reading Excel2007 file with shapes - @MarkBaker [CodePlex #6319](https://phpexcel.codeplex.com/workitem/6319)
- Determine whether date values need conversion from PHP dates to Excel dates before writing to file, based on the data type (float or integer) - @MarkBaker [CodePlex #6302](https://phpexcel.codeplex.com/workitem/6302)
- Fixes to DATE function when it is given negative input parameters - @MarkBaker
- PHPExcel handles empty cells other than Excel - @MarkBaker [CodePlex #6347](https://phpexcel.codeplex.com/workitem/6347)
- PHPExcel handles 0 and "" as being the same - @MarkBaker [CodePlex #6348](https://phpexcel.codeplex.com/workitem/6348)
- Problem Using Excel2007 Reader for Spreadsheets containing images - @MarkBaker [CodePlex #6357](https://phpexcel.codeplex.com/workitem/6357)
- ShowGridLines ignored when reading/writing Excel 2007 - @MarkBaker [CodePlex #6359](https://phpexcel.codeplex.com/workitem/6359)
- Bug With Word Wrap in Excel 2007 Reader - @MarkBaker [CodePlex #6426](https://phpexcel.codeplex.com/workitem/6426)
## [1.6.1] - 2008-04-28
### General
- Fix documentation printing - @MarkBaker [CodePlex #5532](https://phpexcel.codeplex.com/workitem/5532)
- Memory usage improvements - @MarkBaker [CodePlex #5586](https://phpexcel.codeplex.com/workitem/5586)
- Applied patch 990 - @MarkBaker
### Features
- Applied patch 991 - @MarkBaker
- Implement PHPExcel_Reader_Excel5 - @BM [CodePlex #2841](https://phpexcel.codeplex.com/workitem/2841)
- Implement "toArray" and "fromArray" method - @MarkBaker [CodePlex #5564](https://phpexcel.codeplex.com/workitem/5564)
- Read shared formula - @MarkBaker [CodePlex #5665](https://phpexcel.codeplex.com/workitem/5665)
- Read image twoCellAnchor - @MarkBaker [CodePlex #5681](https://phpexcel.codeplex.com/workitem/5681)
- &G Image as bg for headerfooter - @MarkBaker [CodePlex #4446](https://phpexcel.codeplex.com/workitem/4446)
- Implement page layout functionality for Excel5 format - @MarkBaker [CodePlex #5834](https://phpexcel.codeplex.com/workitem/5834)
### Bugfixes
- Feature request: PHPExcel_Writer_PDF - @MarkBaker [CodePlex #6039](https://phpexcel.codeplex.com/workitem/6039)
- DefinedNames null check - @MarkBaker [CodePlex #5517](https://phpexcel.codeplex.com/workitem/5517)
- Hyperlinks should not always have trailing slash - @MarkBaker [CodePlex #5463](https://phpexcel.codeplex.com/workitem/5463)
- Saving Error - Uncaught exception (#REF! named range) - @MarkBaker [CodePlex #5592](https://phpexcel.codeplex.com/workitem/5592)
- Error when creating Zip file on Linux System (Not Windows) - @MarkBaker [CodePlex #5634](https://phpexcel.codeplex.com/workitem/5634)
- Time incorrecly formated - @MarkBaker [CodePlex #5876](https://phpexcel.codeplex.com/workitem/5876)
- Conditional formatting - second rule not applied - @MarkBaker [CodePlex #5914](https://phpexcel.codeplex.com/workitem/5914)
- PHPExcel_Reader_Excel2007 cannot load PHPExcel_Shared_File - @MarkBaker [CodePlex #5978](https://phpexcel.codeplex.com/workitem/5978)
- Output redirection to web browser - @MarkBaker [CodePlex #6020](https://phpexcel.codeplex.com/workitem/6020)
## [1.6.0] - 2008-02-14
### Features
- Use PHPExcel datatypes in formula calculation - @MarkBaker [CodePlex #3156](https://phpexcel.codeplex.com/workitem/3156)
- Center on page when printing - @MarkBaker [CodePlex #5019](https://phpexcel.codeplex.com/workitem/5019)
- Hyperlink to other spreadsheet - @MarkBaker [CodePlex #5099](https://phpexcel.codeplex.com/workitem/5099)
- Set the print area of a worksheet - @MarkBaker [CodePlex #5104](https://phpexcel.codeplex.com/workitem/5104)
- Read "definedNames" property of worksheet - @MarkBaker [CodePlex #5118](https://phpexcel.codeplex.com/workitem/5118)
- Set default style for all cells - @MarkBaker [CodePlex #5338](https://phpexcel.codeplex.com/workitem/5338)
- Named Ranges - @MarkBaker [CodePlex #4216](https://phpexcel.codeplex.com/workitem/4216)
### Bugfixes
- Implement worksheet references (Sheet1!A1) - @MarkBaker [CodePlex #5398](https://phpexcel.codeplex.com/workitem/5398)
- Redirect output to a client's web browser - @MarkBaker [CodePlex #4967](https://phpexcel.codeplex.com/workitem/4967)
- "File Error: data may have been lost." seen in Excel 2007 and Excel 2003 SP3 when opening XLS file - @MarkBaker [CodePlex #5008](https://phpexcel.codeplex.com/workitem/5008)
- Bug in style's getHashCode() - @MarkBaker [CodePlex #5165](https://phpexcel.codeplex.com/workitem/5165)
- PHPExcel_Reader not correctly reading numeric values - @MarkBaker [CodePlex #5165](https://phpexcel.codeplex.com/workitem/5165)
- Text rotation is read incorrectly - @MarkBaker [CodePlex #5324](https://phpexcel.codeplex.com/workitem/5324)
- Enclosure " and data " result a bad data : \" instead of "" - @MarkBaker [CodePlex #5326](https://phpexcel.codeplex.com/workitem/5326)
- Formula parser - IF statement returning array instead of scalar - @MarkBaker [CodePlex #5332](https://phpexcel.codeplex.com/workitem/5332)
- setFitToWidth(nbpage) & setFitToWidth(nbpage) work partially - @MarkBaker [CodePlex #5351](https://phpexcel.codeplex.com/workitem/5351)
- Worksheet::setTitle() causes unwanted renaming - @MarkBaker [CodePlex #5361](https://phpexcel.codeplex.com/workitem/5361)
- Hyperlinks not working. Results in broken xlsx file. - @MarkBaker [CodePlex #5407](https://phpexcel.codeplex.com/workitem/5407)
## [1.5.5] - 2007-12-24
### General
- Grouping Rows - @MarkBaker [CodePlex #4135](https://phpexcel.codeplex.com/workitem/4135)
### Features
- Semi-nightly builds - @MarkBaker [CodePlex #4427](https://phpexcel.codeplex.com/workitem/4427)
- Implement "date" datatype - @MarkBaker [CodePlex #3155](https://phpexcel.codeplex.com/workitem/3155)
- Date format not honored in CSV writer - @MarkBaker [CodePlex #4150](https://phpexcel.codeplex.com/workitem/4150)
- RichText and sharedStrings - @MarkBaker [CodePlex #4199](https://phpexcel.codeplex.com/workitem/4199)
- Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Addition of DATE, DATEDIF, DATEVALUE, DAY, DAYS360- Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Addition of AVEDEV, HARMEAN and GEOMEAN
- Addition of the BINOMDIST (Non-cumulative only), COUNTBLANK, EXPONDIST, FISHER, FISHERINV, NORMDIST, NORMSDIST, PERMUT, POISSON (Non-cumulative only) and STANDARDIZE Statistical Functions
- Addition of the CEILING, COMBIN, EVEN, FACT, FACTDOUBLE, FLOOR, MULTINOMIAL, ODD, ROUNDDOWN, ROUNDUP, SIGN, SQRTPI and SUMSQ Mathematical Functions
- Addition of the NORMINV, NORMSINV, CONFIDENCE and SKEW Statistical Functions
- Addition of the CRITBINOM, HYPGEOMDIST, KURT, LOGINV, LOGNORMDIST, NEGBINOMDIST and WEIBULL Statistical Functions
- Addition of the LARGE, PERCENTILE, QUARTILE, SMALL and TRIMMEAN Statistical Functions
- Addition of the BIN2HEX, BIN2OCT, DELTA, ERF, ERFC, GESTEP, HEX2BIN, HEX2DEC, HEX2OCT, OCT2BIN and OCT2HEX Engineering Functions
- Addition of the CHIDIST, GAMMADIST and GAMMALN Statistical Functions
- Addition of the GCD, LCM, MROUND and SUBTOTAL Mathematical Functions
- Addition of the LOWER, PROPER and UPPER Text Functions
- Addition of the BETADIST and BETAINV Statistical Functions
- Addition of the CHIINV and GAMMAINV Statistical Functions
- Addition of the SERIESSUM Mathematical Function
- Addition of the CHAR, CODE, FIND, LEN, REPT, SEARCH, T, TRIM Text Functions
- Addition of the FALSE and TRUE Boolean Functions
- Addition of the TDIST and TINV Statistical Functions
- Addition of the EDATE, EOMONTH, YEAR, MONTH, TIME, TIMEVALUE, HOUR, MINUTE, SECOND, WEEKDAY, WEEKNUM, NOW, TODAY and Date/Time Function
- Addition of the BESSELI, BESSELJ, BESSELK and BESSELY Engineering Functions
- Addition of the SLN and SYD Financial Functions
- reworked MODE calculation to handle floating point numbers
- Improved error trapping for invalid input values
- Fix to SMALL, LARGE, PERCENTILE and TRIMMEAN to eliminate non-numeric values
- Added CDF to BINOMDIST and POISSON
- Fix to a potential endless loop in CRITBINOM, together with other bugfixes to the algorithm
- Fix to SQRTPI so that it will work with a real value parameter rather than just integers
- Trap for passing negative values to FACT
- Improved accuracy of the NORMDIST cumulative function, and of the ERF and ERFC functions
- Replicated Excel data-type and error handling for BIN, DEC, OCT and HEX conversion functions
- Replicated Excel data-type and error handling for AND and OR Boolean functions
- Bugfix to MROUND
- Rework of the DATE, DATEVALUE, DAY, DAYS360 and DATEDIF date/Time functions to use Excel dates rather than straight PHP dates
- Rework of the AND, OR Boolean functions to ignore string values
- Rework of the BIN2DEC, BIN2HEX, BIN2OCT, DEC2BIN, DEC2HEX, DEC2OCT Engineering functions to handle two's complement
- Excel, Gnumeric and OpenOffice Calc compatibility flag for functions
- Note, not all functions have yet been written to work with the Gnumeric and OpenOffice Calc compatibility flags
- 1900 or 1904 Calendar flag for date functions
- Reworked ExcelToPHP date method to handle the Excel 1900 leap year
- Note that this will not correctly return values prior to 13-Dec-1901 20:45:52 as this is the minimum value that PHP date serial values can handle. If you need to work with dates prior to this, then an ExcelToPHPObject method has been added which will work correctly with values between Excel's 1900 calendar base date of 1-Jan-1900, and 13-Dec-1901
- Addition of ExcelToPHPObject date method to return a PHP DateTime object from an Excel date serial value
- PHPToExcel method modified to accept either PHP date serial numbers or PHP DateTime objects
- Addition of FormattedPHPToExcel which will accept a date and time broken to into year, month, day, hour, minute, second and return an Excel date serial value- Control characters in Excel 2007 - @MarkBaker [CodePlex #4485](https://phpexcel.codeplex.com/workitem/4485)
- BaseDrawing::setWidthAndHeight method request - @MarkBaker [CodePlex #4796](https://phpexcel.codeplex.com/workitem/4796)
- Page Setup -> Print Titles -> Sheet -> 'Rows to repeat at top' - @MarkBaker [CodePlex #4798](https://phpexcel.codeplex.com/workitem/4798)
### Bugfixes
- Comment functionality - @MarkBaker [CodePlex #4433](https://phpexcel.codeplex.com/workitem/4433)
- Undefined variable in PHPExcel_Writer_Serialized - @MarkBaker [CodePlex #4124](https://phpexcel.codeplex.com/workitem/4124)
- Notice: Object of class PHPExcel_RichText could not be converted to int - @MarkBaker [CodePlex #4125](https://phpexcel.codeplex.com/workitem/4125)
- Excel5Writer: utf8 string not converted to utf16 - @MarkBaker [CodePlex #4126](https://phpexcel.codeplex.com/workitem/4126)
- PHPExcel_RichText and autosize - @MarkBaker [CodePlex #4180](https://phpexcel.codeplex.com/workitem/4180)
- Excel5Writer produces broken xls files after change mentioned in work item 4126 - @MarkBaker [CodePlex #4574](https://phpexcel.codeplex.com/workitem/4574)
- Small bug in PHPExcel_Reader_Excel2007 function _readStyle - @MarkBaker [CodePlex #4797](https://phpexcel.codeplex.com/workitem/4797)
## [1.5.0] - 2007-10-23
### Features
- Refactor PHPExcel Drawing - @MarkBaker [CodePlex #3265](https://phpexcel.codeplex.com/workitem/3265)
- Update Shared/OLE.php to latest version from PEAR - @CS [CodePlex #3079](https://phpexcel.codeplex.com/workitem/3079)
- Excel2007 vs Excel2003 compatibility pack - @MarkBaker [CodePlex #3217](https://phpexcel.codeplex.com/workitem/3217)
- Cell protection (lock/unlock) - @MarkBaker [CodePlex #3234](https://phpexcel.codeplex.com/workitem/3234)
- Create clickable links (hyperlinks) - @MarkBaker [CodePlex #3543](https://phpexcel.codeplex.com/workitem/3543)
- Additional page setup parameters - @MarkBaker [CodePlex #3241](https://phpexcel.codeplex.com/workitem/3241)
- Make temporary file path configurable (Excel5) - @MarkBaker [CodePlex #3300](https://phpexcel.codeplex.com/workitem/3300)
- Small addition to applyFromArray for font - @MarkBaker [CodePlex #3306](https://phpexcel.codeplex.com/workitem/3306)
### Bugfixes
- Better feedback when save of file is not possible - @MarkBaker [CodePlex #3373](https://phpexcel.codeplex.com/workitem/3373)
- Text Rotation - @MarkBaker [CodePlex #3181](https://phpexcel.codeplex.com/workitem/3181)
- Small bug in Page Orientation - @MarkBaker [CodePlex #3237](https://phpexcel.codeplex.com/workitem/3237)
- insertNewColumnBeforeByColumn undefined - @MarkBaker [CodePlex #3812](https://phpexcel.codeplex.com/workitem/3812)
- Sheet references not working in formula (Excel5 Writer) - @MarkBaker [CodePlex #3893](https://phpexcel.codeplex.com/workitem/3893)
## [1.4.5] - 2007-08-23
### General
- Class file endings - @MarkBaker [CodePlex #3003](https://phpexcel.codeplex.com/workitem/3003)
- Different calculation engine improvements - @MarkBaker [CodePlex #3081](https://phpexcel.codeplex.com/workitem/3081)
- Different improvements in PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #3082](https://phpexcel.codeplex.com/workitem/3082)
### Features
- Set XML indentation in PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #3146](https://phpexcel.codeplex.com/workitem/3146)
- Optionally store temporary Excel2007 writer data in file instead of memory - @MarkBaker [CodePlex #3159](https://phpexcel.codeplex.com/workitem/3159)
- Implement show/hide gridlines - @MarkBaker [CodePlex #3063](https://phpexcel.codeplex.com/workitem/3063)
- Implement option to read only data - @MarkBaker [CodePlex #3064](https://phpexcel.codeplex.com/workitem/3064)
- Optionally disable formula precalculation - @MarkBaker [CodePlex #3080](https://phpexcel.codeplex.com/workitem/3080)
- Explicitly set cell datatype - @MarkBaker [CodePlex #3154](https://phpexcel.codeplex.com/workitem/3154)
### Bugfixes
- Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
- Addition of MINA, MAXA, COUNTA, AVERAGEA, MEDIAN, MODE, DEVSQ, STDEV, STDEVA, STDEVP, STDEVPA, VAR, VARA, VARP and VARPA Excel Functions
- Fix to SUM, PRODUCT, QUOTIENT, MIN, MAX, COUNT and AVERAGE functions when cell contains a numeric value in a string datatype, bringing it in line with MS Excel behaviour- File_exists on ZIP fails on some installations - @MarkBaker [CodePlex #2881](https://phpexcel.codeplex.com/workitem/2881)
- Argument in textRotation should be -90..90 - @MarkBaker [CodePlex #2879](https://phpexcel.codeplex.com/workitem/2879)
- Excel2007 reader/writer not implementing OpenXML/SpreadsheetML styles 100% correct - @MarkBaker [CodePlex #2883](https://phpexcel.codeplex.com/workitem/2883)
- Active sheet index not read/saved - @MarkBaker [CodePlex #2513](https://phpexcel.codeplex.com/workitem/2513)
- Print and print preview of generated XLSX causes Excel2007 to crash - @MarkBaker [CodePlex #2935](https://phpexcel.codeplex.com/workitem/2935)
- Error in Calculations - COUNT() function - @MarkBaker [CodePlex #2952](https://phpexcel.codeplex.com/workitem/2952)
- HTML and CSV writer not writing last row - @MarkBaker [CodePlex #3002](https://phpexcel.codeplex.com/workitem/3002)
- Memory leak in Excel5 writer - @MarkBaker [CodePlex #3017](https://phpexcel.codeplex.com/workitem/3017)
- Printing (PHPExcel_Writer_Excel5) - @MarkBaker [CodePlex #3044](https://phpexcel.codeplex.com/workitem/3044)
- Problems reading zip:// - @MarkBaker [CodePlex #3046](https://phpexcel.codeplex.com/workitem/3046)
- Error reading conditional formatting - @MarkBaker [CodePlex #3047](https://phpexcel.codeplex.com/workitem/3047)
- Bug in Excel5 writer (storePanes) - @MarkBaker [CodePlex #3067](https://phpexcel.codeplex.com/workitem/3067)
- Memory leak in PHPExcel_Style_Color - @MarkBaker [CodePlex #3077](https://phpexcel.codeplex.com/workitem/3077)
## [1.4.0] - 2007-07-23
### General
- Coding convention / code cleanup - @MarkBaker [CodePlex #2687](https://phpexcel.codeplex.com/workitem/2687)
- Use set_include_path in tests - @MarkBaker [CodePlex #2717](https://phpexcel.codeplex.com/workitem/2717)
### Features
- Move PHPExcel_Writer_Excel5 OLE to PHPExcel_Shared_OLE - @MarkBaker [CodePlex #2812](https://phpexcel.codeplex.com/workitem/2812)
- Hide/Unhide Column or Row - @MarkBaker [CodePlex #2679](https://phpexcel.codeplex.com/workitem/2679)
- Implement multi-cell styling - @MarkBaker [CodePlex #2271](https://phpexcel.codeplex.com/workitem/2271)
- Implement CSV file format (reader/writer) - @MarkBaker [CodePlex #2720](https://phpexcel.codeplex.com/workitem/2720)
### Bugfixes
- Implement HTML file format - @MarkBaker [CodePlex #2845](https://phpexcel.codeplex.com/workitem/2845)
- Active sheet index not read/saved - @MarkBaker [CodePlex #2513](https://phpexcel.codeplex.com/workitem/2513)
- Freeze Panes with PHPExcel_Writer_Excel5 - @MarkBaker [CodePlex #2678](https://phpexcel.codeplex.com/workitem/2678)
- OLE.php - @MarkBaker [CodePlex #2680](https://phpexcel.codeplex.com/workitem/2680)
- Copy and pasting multiple drop-down list cells breaks reader - @MarkBaker [CodePlex #2736](https://phpexcel.codeplex.com/workitem/2736)
- Function setAutoFilterByColumnAndRow takes wrong arguments - @MarkBaker [CodePlex #2775](https://phpexcel.codeplex.com/workitem/2775)
- Simplexml_load_file fails on ZipArchive - @MarkBaker [CodePlex #2858](https://phpexcel.codeplex.com/workitem/2858)
## [1.3.5] - 2007-06-27
### Features
- Documentation - @MarkBaker [CodePlex #15](https://phpexcel.codeplex.com/workitem/15)
- PHPExcel_Writer_Excel5 - @JV
- PHPExcel_Reader_Excel2007: Image shadows - @JV
- Data validation - @MarkBaker [CodePlex #2385](https://phpexcel.codeplex.com/workitem/2385)
### Bugfixes
- Implement richtext strings - @MarkBaker
- Empty relations when adding image to any sheet but the first one - @MarkBaker [CodePlex #2443](https://phpexcel.codeplex.com/workitem/2443)
- Excel2007 crashes on print preview - @MarkBaker [CodePlex #2536](https://phpexcel.codeplex.com/workitem/2536)
## [1.3.0] - 2007-06-05
### General
- Create PEAR package - @MarkBaker [CodePlex #1942](https://phpexcel.codeplex.com/workitem/1942)
### Features
- Replace *->duplicate() by __clone() - @MarkBaker [CodePlex #2331](https://phpexcel.codeplex.com/workitem/2331)
- PHPExcel_Reader_Excel2007: Column auto-size, Protection, Merged cells, Wrap text, Page breaks, Auto filter, Images - @JV
- Implement "freezing" panes - @MarkBaker [CodePlex #245](https://phpexcel.codeplex.com/workitem/245)
- Cell addressing alternative - @MarkBaker [CodePlex #2273](https://phpexcel.codeplex.com/workitem/2273)
- Implement cell word-wrap attribute - @MarkBaker [CodePlex #2270](https://phpexcel.codeplex.com/workitem/2270)
- Auto-size column - @MarkBaker [CodePlex #2282](https://phpexcel.codeplex.com/workitem/2282)
- Implement formula calculation - @MarkBaker [CodePlex #241](https://phpexcel.codeplex.com/workitem/241)
### Bugfixes
- Insert/remove row/column - @MarkBaker [CodePlex #2375](https://phpexcel.codeplex.com/workitem/2375)
- PHPExcel_Worksheet::getCell() should not accept absolute coordinates - @MarkBaker [CodePlex #1931](https://phpexcel.codeplex.com/workitem/1931)
- Cell reference without row number - @MarkBaker [CodePlex #2272](https://phpexcel.codeplex.com/workitem/2272)
- Styles with same coordinate but different worksheet - @MarkBaker [CodePlex #2276](https://phpexcel.codeplex.com/workitem/2276)
- PHPExcel_Worksheet->getCellCollection() usort error - @MarkBaker [CodePlex #2290](https://phpexcel.codeplex.com/workitem/2290)
- Bug in PHPExcel_Cell::stringFromColumnIndex - @SS [CodePlex #2353](https://phpexcel.codeplex.com/workitem/2353)
- Reader: numFmts can be missing, use cellStyleXfs instead of cellXfs in styles - @JV [CodePlex #2353](https://phpexcel.codeplex.com/workitem/2353)
## [1.2.0] - 2007-04-26
### General
- Stringtable attribute "count" not necessary, provides wrong info to Excel sometimes... - @MarkBaker
- Updated tests to address more document properties - @MarkBaker
- Some refactoring in PHPExcel_Writer_Excel2007_Workbook - @MarkBaker
- New package: PHPExcel_Shared - @MarkBaker
- Password hashing algorithm implemented in PHPExcel_Shared_PasswordHasher - @MarkBaker
- Moved pixel conversion functions to PHPExcel_Shared_Drawing - @MarkBaker
- Switch over to LGPL license - @MarkBaker [CodePlex #244](https://phpexcel.codeplex.com/workitem/244)
### Features
- Include PHPExcel version in file headers - @MarkBaker [CodePlex #5](https://phpexcel.codeplex.com/workitem/5)
- Autofilter - @MarkBaker [CodePlex #6](https://phpexcel.codeplex.com/workitem/6)
- Extra document property: keywords - @MarkBaker [CodePlex #7](https://phpexcel.codeplex.com/workitem/7)
- Extra document property: category - @MarkBaker [CodePlex #8](https://phpexcel.codeplex.com/workitem/8)
- Document security - @MarkBaker [CodePlex #9](https://phpexcel.codeplex.com/workitem/9)
- PHPExcel_Writer_Serialized and PHPExcel_Reader_Serialized - @MarkBaker [CodePlex #10](https://phpexcel.codeplex.com/workitem/10)
- Alternative syntax: Addressing a cell - @MarkBaker [CodePlex #11](https://phpexcel.codeplex.com/workitem/11)
- Merge cells - @MarkBaker [CodePlex #12](https://phpexcel.codeplex.com/workitem/12)
### Bugfixes
- Protect ranges of cells with a password - @MarkBaker [CodePlex #13](https://phpexcel.codeplex.com/workitem/13)
- (style/fill/patternFill/fgColor or bgColor can be empty) - @JV [CodePlex #14](https://phpexcel.codeplex.com/workitem/14)
## [1.1.1] - 2007-03-26
### General
- Syntax error in "Classes/PHPExcel/Writer/Excel2007.php" on line 243 - @MarkBaker [CodePlex #1250](https://phpexcel.codeplex.com/workitem/1250)
- Reader should check if file exists and throws an exception when it doesn't - @MarkBaker [CodePlex #1282](https://phpexcel.codeplex.com/workitem/1282)
## [1.1.0] - 2007-03-22
### Bugfixes
- Style information lost after passing trough Excel2007_Reader - @MarkBaker [CodePlex #836](https://phpexcel.codeplex.com/workitem/836)
### General
- Number of columns > AZ fails fixed in PHPExcel_Cell::columnIndexFromString - @MarkBaker [CodePlex #913](https://phpexcel.codeplex.com/workitem/913)
### Features
- Added a brief file with installation instructions - @MarkBaker
- Page breaks (horizontal and vertical) - @MarkBaker
- Image shadows - @MarkBaker
## [1.0.0] - 2007-02-22
### Bugfixes
- PHPExcel->removeSheetByIndex now re-orders sheets after deletion, so no array indexes are lost - @JV
- PHPExcel_Writer_Excel2007_Worksheet::_writeCols() used direct assignment to $pSheet->getColumnDimension('A')->Width instead of $pSheet->getColumnDimension('A')->setWidth() - @JV
- DocumentProperties used $this->LastModifiedBy instead of $this->_lastModifiedBy. - @JV
### General
- Only first = should be removed when writing formula in PHPExcel_Writer_Excel2007_Worksheet. - @JV
- Consistency of method names to camelCase - @JV
- Updated tests to match consistency changes - @JV
- Detection of mime-types now with image_type_to_mime_type() - @JV
- Constants now hold string value used in Excel 2007 - @JV
### Features
- Fixed folder name case (WorkSheet -> Worksheet) - @MarkBaker
- PHPExcel classes (not the Writer classes) can be duplicated, using a duplicate() method. - @MarkBaker
- Cell styles can now be duplicated to a range of cells using PHPExcel_Worksheet->duplicateStyle() - @MarkBaker
- Conditional formatting - @MarkBaker
- Reader for Excel 2007 (not supporting full specification yet!) - @JV
## [1.0.0 RC] - 2007-01-31
- Project name has been changed to PHPExcel
- Project homepage is now http://www.codeplex.com/PHPExcel
- Started versioning at number: PHPExcel 1.0.0 RC
## 2007-01-22
- Fixed some performance issues on large-scale worksheets (mainly loops vs. indexed arrays)
- Performance on creating StringTable has been increased
- Performance on writing Excel2007 worksheet has been increased
## 2007-01-18
- Images can now be rotated
- Fixed bug: When drawings have full path specified, no mime type can be deducted
- Fixed bug: Only one drawing can be added to a worksheet
## 2007-01-12
- Refactoring of some classes to use ArrayObject instead of array()
- Cell style now has support for number format (i.e. #,##0)
- Implemented embedding images
## 2007-01-02
- Cell style now has support for fills, including gradient fills
- Cell style now has support for fonts
- Cell style now has support for border colors
- Cell style now has support for font colors
- Cell style now has support for alignment
## 2006-12-21
- Support for cell style borders
- Support for cell styles
- Refactoring of Excel2007 Writer into multiple classes in package SpreadSheet_Writer_Excel2007
- Refactoring of all classes, changed public members to public properties using getter/setter
- Worksheet names are now unique. On duplicate worksheet names, a number is appended.
- Worksheet now has parent SpreadSheet object
- Worksheet now has support for page header and footer
- Worksheet now has support for page margins
- Worksheet now has support for page setup (only Paper size and Orientation)
- Worksheet properties now accessible by using getProperties()
- Worksheet now has support for row and column dimensions (height / width)
- Exceptions thrown have a more clear description
## Initial version
- Create a Spreadsheet object
- Add one or more Worksheet objects
- Add cells to Worksheet objects
- Export Spreadsheet object to Excel 2007 OpenXML format
- Each cell supports the following data formats: string, number, formula, boolean.
================================================
FILE: CHANGELOG.md
================================================
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com)
and this project adheres to [Semantic Versioning](https://semver.org). Thia is always true of the master branch. Some earlier branches remain supported and security fixes are applied to them; if the security fix represents a breaking change, it may have to be applied as a minor or patch version.
## TBD - 5.6.0
### Added
- Nothing yet.
### Removed
- Nothing yet.
### Changed
- Nothing yet.
### Moved
- Nothing yet.
### Deprecated
- Collection/Cells::MAX_COLUMN_ID - use Cell/AddressRange::MAX_COLUMN_INT.
- Writer/Xls/Worksheet constants MAX_XLS_COLUMN, MAX_XLS_COLUMN_STRING, MAX_XLS_ROW - use Cell/AddressRange MAX_COLUMN_INT_XLS, MAX_COLUMN_XLS, MAX_ROW_XLS
### Fixed
- Consistent handling of row and column limits. [PR #4820](https://github.com/PHPOffice/PhpSpreadsheet/pull/4820)
## 2026-02-28 - 5.5.0
### Added
- Much improved handling of Styles by Ods Reader. The relevant changes are listed at the end of the "Fixed" section below.
- Option to use OldCalculatedValue in ToArray and Relatives. [Issue #1810](https://github.com/PHPOffice/PhpSpreadsheet/issues/1810) [PR #4787](https://github.com/PHPOffice/PhpSpreadsheet/pull/4787)
- Add checkbox style (Xlsx and Html). [PR #4781](https://github.com/PHPOffice/PhpSpreadsheet/pull/4781)
- Option to whitelist external images. [PR #4793](https://github.com/PHPOffice/PhpSpreadsheet/pull/4793)
- Writer/Html add ability to set line ending. [PR #4779](https://github.com/PHPOffice/PhpSpreadsheet/pull/4779)
- Writer/Html optionally save formulas as data attributes. [PR #4783](https://github.com/PHPOffice/PhpSpreadsheet/pull/4783)
- User-supplied headers and footers in PDF. [Issue #3159](https://github.com/PHPOffice/PhpSpreadsheet/issues/3159) [PR #4789](https://github.com/PHPOffice/PhpSpreadsheet/pull/4789)
### Deprecated
- Writer/Html constant BODY_LINE no longer makes sense with a configurable line ending. No replacement.
- Calculation classes FormulaParser and FormulaToken are unused. No replacement.
- Writer/Xls/Worksheet methods insertBitMap, positionImage, writeObjPicture, processBitmapGd, and processBitmap are unused. No replacement.
### Fixed
- Improve performance in value binders. [PR #4780](https://github.com/PHPOffice/PhpSpreadsheet/pull/4780)
- Handle Unions as Function Arguments. [Issue #4656](https://github.com/PHPOffice/PhpSpreadsheet/issues/4656) [Issue #316](https://github.com/PHPOffice/PhpSpreadsheet/issues/316) [Issue #503](https://github.com/PHPOffice/PhpSpreadsheet/issues/503) [PR #4657](https://github.com/PHPOffice/PhpSpreadsheet/pull/4657)
- Unexpected Behavior of CONCATENATE. [Issue #4061](https://github.com/PHPOffice/PhpSpreadsheet/issues/4061) [PR #4797](https://github.com/PHPOffice/PhpSpreadsheet/pull/4797)
- Image Css size in millimeters. [Issue #4800](https://github.com/PHPOffice/PhpSpreadsheet/issues/4800) [PR #4801](https://github.com/PHPOffice/PhpSpreadsheet/pull/4801)
- Ods Reader column misalignment. [Issue #4802](https://github.com/PHPOffice/PhpSpreadsheet/issues/4802) [PR #4803](https://github.com/PHPOffice/PhpSpreadsheet/pull/4803)
- Ods improved handling of number formats. [Issue #3961](https://github.com/PHPOffice/PhpSpreadsheet/issues/3961) [Issue #4798](https://github.com/PHPOffice/PhpSpreadsheet/issues/4798) [PR #4806](https://github.com/PHPOffice/PhpSpreadsheet/pull/4806)
- Ods Reader fonts and fills. [Issue #2622](https://github.com/PHPOffice/PhpSpreadsheet/issues/2622) [Issue #1191](https://github.com/PHPOffice/PhpSpreadsheet/issues/1191) [PR #4810](https://github.com/PHPOffice/PhpSpreadsheet/pull/4810)
- Ods Reader alignment and cell protection. [PR #4813](https://github.com/PHPOffice/PhpSpreadsheet/pull/4813)
- Ods Reader borders. [PR #4814](https://github.com/PHPOffice/PhpSpreadsheet/pull/4814)
- Ods Reader column styles (partial). [PR #4815](https://github.com/PHPOffice/PhpSpreadsheet/pull/4815)
## 2026-01-10 - 5.4.0
### Added
- Store image in cell (Xlsx only). [Issue #4014](https://github.com/PHPOffice/PhpSpreadsheet/issues/4014) [Issue #4034](https://github.com/PHPOffice/PhpSpreadsheet/issues/4034) [Issue #913](https://github.com/PHPOffice/PhpSpreadsheet/issues/913) [PR #4677](https://github.com/PHPOffice/PhpSpreadsheet/pull/4677)
- Passthrough support (with some restrictions) for otherwise unsupported drawing elements. [Issue #4037](https://github.com/PHPOffice/PhpSpreadsheet/issues/4037) [Issue #4704](https://github.com/PHPOffice/PhpSpreadsheet/issues/4704) [PR #4712](https://github.com/PHPOffice/PhpSpreadsheet/pull/4712)
- Set all locale variables at once in a threadsafe manner. [Issue #954](https://github.com/PHPOffice/PhpSpreadsheet/issues/954) [PR #4760](https://github.com/PHPOffice/PhpSpreadsheet/pull/4760)
- Reader/Html add ability to suppress warning messages from loadhtml. [Issue #647](https://github.com/PHPOffice/PhpSpreadsheet/issues/647) [Issue #849](https://github.com/PHPOffice/PhpSpreadsheet/issues/849) [PR #4761](https://github.com/PHPOffice/PhpSpreadsheet/pull/4761)
### Changed
- Evaluation of WEBSERVICE no longer requires external client, but will use oldCalculatedValue unless the request is for a domain in a user-supplied whitelist. [PR #4751](https://github.com/PHPOffice/PhpSpreadsheet/pull/4751)
### Moved
- Code to merge cell base style with table and conditional styles moved from Html Writer to its own class. [Issue #1058](https://github.com/PHPOffice/PhpSpreadsheet/issues/1058) [PR #4763](https://github.com/PHPOffice/PhpSpreadsheet/pull/4763)
### Deprecated
- Settings methods setHttpClient, unsetHttpClient, getHttpClient, and getRequestFactory are no longer used. No replacement.
- Reader/Html protected property dataArray, described as used only for testing, is not used for testing. No replacement.
### Fixed
- Slightly better support for escaped characters in Xlsx Reader/Writer. [Discussion #4724](https://github.com/PHPOffice/PhpSpreadsheet/discussions/4724) [PR #4726](https://github.com/PHPOffice/PhpSpreadsheet/pull/4726)
- CODE/UNICODE and CHAR/UNICHAR. [PR #4727](https://github.com/PHPOffice/PhpSpreadsheet/pull/4727)
- Minor changes to TextGrid. [PR #4735](https://github.com/PHPOffice/PhpSpreadsheet/pull/4735) [PR #4743](https://github.com/PHPOffice/PhpSpreadsheet/pull/4743)
- Single-character table names. [Issue #4739](https://github.com/PHPOffice/PhpSpreadsheet/issues/4739) [PR #4740](https://github.com/PHPOffice/PhpSpreadsheet/pull/4740)
- Improvements to SORT and SORTBY. [PR #4743](https://github.com/PHPOffice/PhpSpreadsheet/pull/4743)
- Coverage-related changes in Shared. [PR #4745](https://github.com/PHPOffice/PhpSpreadsheet/pull/4745)
- ListWorksheetInfo improvements for Xlsx and Ods. [Issue #3255](https://github.com/PHPOffice/PhpSpreadsheet/issues/3255) [PR #4746](https://github.com/PHPOffice/PhpSpreadsheet/pull/4746)
- Fix functions related to Student-T distribution. [Issue #4167](https://github.com/PHPOffice/PhpSpreadsheet/issues/4167) [PR #4748](https://github.com/PHPOffice/PhpSpreadsheet/pull/4748)
- Fix drawing hyperlinks. [Issue #993](https://github.com/PHPOffice/PhpSpreadsheet/issues/993) [PR #4764](https://github.com/PHPOffice/PhpSpreadsheet/pull/4764)
- Fix clone spreadsheet with defined names. [PR #4753](https://github.com/PHPOffice/PhpSpreadsheet/pull/4753)
- Changes to WEBSERVICE. [PR #4751](https://github.com/PHPOffice/PhpSpreadsheet/pull/4751)
- More consistent handling of unsupported functions. [Issue #606](https://github.com/PHPOffice/PhpSpreadsheet/issues/606) [PR #4772](https://github.com/PHPOffice/PhpSpreadsheet/pull/4772)
- Chart shadow `kx` and `ky`. [PR #4770](https://github.com/PHPOffice/PhpSpreadsheet/pull/4770)
- SUBTOTAL and hidden rows. [Issue #820](https://github.com/PHPOffice/PhpSpreadsheet/issues/820) [PR #4765](https://github.com/PHPOffice/PhpSpreadsheet/pull/4765)
- Fix some hyperlink problems. [Issue #3889](https://github.com/PHPOffice/PhpSpreadsheet/issues/3889) [Issue #2464](https://github.com/PHPOffice/PhpSpreadsheet/issues/2464) [PR #4771](https://github.com/PHPOffice/PhpSpreadsheet/pull/4771)
- Xls Writer and empty RichText. [Issue #918](https://github.com/PHPOffice/PhpSpreadsheet/issues/918) [PR #4769](https://github.com/PHPOffice/PhpSpreadsheet/pull/4769)
- Strings that look like huge floating-point numbers. [Issue #4766](https://github.com/PHPOffice/PhpSpreadsheet/issues/4766) [PR #4768](https://github.com/PHPOffice/PhpSpreadsheet/pull/4768)
- Rowspan in Html. [Issue #1319](https://github.com/PHPOffice/PhpSpreadsheet/issues/1319) [PR #4767](https://github.com/PHPOffice/PhpSpreadsheet/pull/4767)
- Mpdf styling of multi-line strings. [Issue #4773](https://github.com/PHPOffice/PhpSpreadsheet/issues/4773) [PR #4775](https://github.com/PHPOffice/PhpSpreadsheet/pull/4775)
## 2025-11-24 - 5.3.0
### Added
- Formal support for Php8.5.
- Limited Printarea support for Html/Pdf. [Issue #3941](https://github.com/PHPOffice/PhpSpreadsheet/issues/3941) [PR #4711](https://github.com/PHPOffice/PhpSpreadsheet/pull/4711)
- Implement missing `INFO` function. [PR #4709](https://github.com/PHPOffice/PhpSpreadsheet/pull/4709)
- Implement missing `BAHTTEXT` function. [PR #4715](https://github.com/PHPOffice/PhpSpreadsheet/pull/4715)
### Deprecated
- $dataType, the second parameter of Cell::setValueExplicit, is currently optional. Omitting it is deprecated, and it will be required in a future release.
### Fixed
- Protected ranges and insert/delete rows/columns. [Issue #4695](https://github.com/PHPOffice/PhpSpreadsheet/issues/4695) [PR #4702](https://github.com/PHPOffice/PhpSpreadsheet/pull/4702)
- Unexpected Exception in Php DateTime. [Issue #4696](https://github.com/PHPOffice/PhpSpreadsheet/issues/4696) [Issue #917](https://github.com/PHPOffice/PhpSpreadsheet/issues/917) [PR #4697](https://github.com/PHPOffice/PhpSpreadsheet/pull/4697)
- Add missing Dutch translation to translation file. [PR #4707](https://github.com/PHPOffice/PhpSpreadsheet/pull/4707)
- Fix lots of typos throughout codebase. [PR #4705](https://github.com/PHPOffice/PhpSpreadsheet/pull/4705)
- Apply small code style improvements. [PR #4708](https://github.com/PHPOffice/PhpSpreadsheet/pull/4708)
## 2025-10-25 - 5.2.0
### Added
- This release should be usable with Php8.5 Release Candidates without deprecation messages.
- Option to display numbers with less precision. [Issue #4626](https://github.com/PHPOffice/PhpSpreadsheet/issues/4626) [PR #4640](https://github.com/PHPOffice/PhpSpreadsheet/pull/4640)
- Offer Tcpdf Interface which throws exception rather than die. [PR #4666](https://github.com/PHPOffice/PhpSpreadsheet/pull/4666)
- Xls Reader ListWorksheetDimensions method. [PR #4689](https://github.com/PHPOffice/PhpSpreadsheet/pull/4689)
### Deprecated
- Worksheet::getHashInt serves no useful purpose. No replacement.
- Spreadsheet::getId serves no useful purpose. No replacement.
### Fixed
- Performance improvement when working with large amounts of cells. [Issue #4607](https://github.com/PHPOffice/PhpSpreadsheet/issues/4607) [PR #4609](https://github.com/PHPOffice/PhpSpreadsheet/pull/4609)
- Minor improvements to Calculation coverage. [PR #4624](https://github.com/PHPOffice/PhpSpreadsheet/pull/4624)
- Conditional formatting in extLst. [Issue #4629](https://github.com/PHPOffice/PhpSpreadsheet/issues/4629) [PR #4633](https://github.com/PHPOffice/PhpSpreadsheet/pull/4633)
- Php8.5 deprecates use of null as array index. [PR #4634](https://github.com/PHPOffice/PhpSpreadsheet/pull/4634)
- Wrapped cells and default row height. [Issue #4584](https://github.com/PHPOffice/PhpSpreadsheet/issues/4584) [PR #4645](https://github.com/PHPOffice/PhpSpreadsheet/pull/4645)
- For Php8.5, replace one of our two uses of `__wakeup` with `__unserialize`, and eliminate the other. [PR #4639](https://github.com/PHPOffice/PhpSpreadsheet/pull/4639)
- Use prefix _xlfn for BASE function. [Issue #4638](https://github.com/PHPOffice/PhpSpreadsheet/issues/4638) [PR #4641](https://github.com/PHPOffice/PhpSpreadsheet/pull/4641)
- Warning messages with corrupt Xls file. [Issue #4647](https://github.com/PHPOffice/PhpSpreadsheet/issues/4647) [PR #4648](https://github.com/PHPOffice/PhpSpreadsheet/pull/4648)
- Additional support for union and intersection. [PR #4596](https://github.com/PHPOffice/PhpSpreadsheet/pull/4596)
- Missing array keys x,o,v for Xml Reader. [Issue #4668](https://github.com/PHPOffice/PhpSpreadsheet/issues/4668) [PR #4669](https://github.com/PHPOffice/PhpSpreadsheet/pull/4669)
- Missing array key x for Xlsx Reader VML. [Issue #4505](https://github.com/PHPOffice/PhpSpreadsheet/issues/4505) [PR #4676](https://github.com/PHPOffice/PhpSpreadsheet/pull/4676)
- Better support for Style Alignment Read Order. [Issue #850](https://github.com/PHPOffice/PhpSpreadsheet/issues/850) [PR #4655](https://github.com/PHPOffice/PhpSpreadsheet/pull/4655)
- More sophisticated workbook password algorithms (Xlsx only). [Issue #4673](https://github.com/PHPOffice/PhpSpreadsheet/issues/4673) [PR #4675](https://github.com/PHPOffice/PhpSpreadsheet/pull/4675)
- Xls Writer fix DIMENSIONS record. [Issue #4682](https://github.com/PHPOffice/PhpSpreadsheet/issues/4682) [PR #4687](https://github.com/PHPOffice/PhpSpreadsheet/pull/4687)
- Xls Reader listWorksheetInfo process MULRK records. [PR #4689](https://github.com/PHPOffice/PhpSpreadsheet/pull/4689)
- Make Reader Xls Escher generic. [PR #4690](https://github.com/PHPOffice/PhpSpreadsheet/pull/4690)
## 2025-09-03 - 5.1.0
### Added
- Add Conditional Formatting with IconSet (Xlsx only). [Issue #4560](https://github.com/PHPOffice/PhpSpreadsheet/issues/4560) [PR #4574](https://github.com/PHPOffice/PhpSpreadsheet/pull/4574)
- Copy cell adjusting formula. [Issue #1203](https://github.com/PHPOffice/PhpSpr
gitextract_kqtir3pu/
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── dependabot.yml
│ ├── stale.yml
│ ├── support.yml
│ └── workflows/
│ ├── github-pages.yml
│ └── main.yml
├── .gitignore
├── .php-cs-fixer.dist.php
├── .phpcs.xml.dist
├── .readthedocs.yaml
├── CHANGELOG.PHPExcel.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── bin/
│ ├── check-phpdoc-types.php
│ ├── generate-document.php
│ ├── generate-locales.php
│ └── pre-commit
├── composer.json
├── docs/
│ ├── extra/
│ │ ├── extra.css
│ │ └── extrajs.js
│ ├── faq.md
│ ├── index.md
│ ├── references/
│ │ ├── features-cross-reference.md
│ │ ├── function-list-by-category.md
│ │ ├── function-list-by-name-compact.md
│ │ └── function-list-by-name.md
│ └── topics/
│ ├── Behind the Mask.md
│ ├── Excel Anomalies.md
│ ├── Looping the Loop.md
│ ├── The Dating Game.md
│ ├── accessing-cells.md
│ ├── architecture.md
│ ├── autofilters.md
│ ├── calculation-engine.md
│ ├── conditional-formatting.md
│ ├── creating-spreadsheet.md
│ ├── defined-names.md
│ ├── file-formats.md
│ ├── images/
│ │ └── Behind the Mask/
│ │ └── Stock Portfolio.xlsx
│ ├── memory_saving.md
│ ├── migration-from-PHPExcel.md
│ ├── reading-and-writing-to-file.md
│ ├── reading-files.md
│ ├── recipes.md
│ ├── settings.md
│ ├── tables.md
│ └── worksheets.md
├── infra/
│ ├── DocumentGenerator.php
│ └── LocaleGenerator.php
├── mkdocs.yml
├── phpstan-baseline.neon
├── phpstan.neon.dist
├── phpunit.xml.dist
├── samples/
│ ├── Autofilter/
│ │ ├── 10_Autofilter.php
│ │ ├── 10_Autofilter_dynamic_dates.php
│ │ ├── 10_Autofilter_selection_1.php
│ │ ├── 10_Autofilter_selection_2.php
│ │ └── 10_Autofilter_selection_display.php
│ ├── Basic/
│ │ ├── 01_Simple.php
│ │ ├── 01_Simple_download_ods.php
│ │ ├── 01_Simple_download_pdf.php
│ │ ├── 01_Simple_download_xls.php
│ │ ├── 01_Simple_download_xlsx.php
│ │ ├── 02_Types.php
│ │ ├── 03_Formulas.php
│ │ ├── 04_Printing.php
│ │ ├── 05_Feature_demo.php
│ │ ├── 05_UnexpectedCharacters.php
│ │ ├── 06_Largescale.php
│ │ ├── 07_Reader.php
│ │ ├── 08_Conditional_formatting.php
│ │ ├── 08_Conditional_formatting_2.php
│ │ └── 09_Pagebreaks.php
│ ├── Basic1/
│ │ ├── 11_Documentsecurity.php
│ │ ├── 12_CellProtection.php
│ │ ├── 13_Calculation.php
│ │ ├── 13_CalculationCyclicFormulae.php
│ │ ├── 14_Xls.php
│ │ ├── 15_Datavalidation.php
│ │ ├── 16_Csv.php
│ │ ├── 17_Html.php
│ │ ├── 17a_Html.php
│ │ ├── 17b_Html.php
│ │ ├── 18_Extendedcalculation.php
│ │ └── 19_Namedrange.php
│ ├── Basic2/
│ │ ├── 20_Read_Excel2003XML.php
│ │ ├── 20_Read_Gnumeric.php
│ │ ├── 20_Read_Ods.php
│ │ ├── 20_Read_Sylk.php
│ │ ├── 20_Read_Xls.php
│ │ ├── 22_Heavily_formatted.php
│ │ ├── 23_Sharedstyles.php
│ │ ├── 24_Readfilter.php
│ │ ├── 25_In_memory_image.php
│ │ ├── 26_Utf8.php
│ │ ├── 27_Images_Html_Pdf.php
│ │ ├── 27_Images_Xls.php
│ │ ├── 27_Images_Xlsx.php
│ │ ├── 28_Iterator.php
│ │ └── 29_Advanced_value_binder.php
│ ├── Basic3/
│ │ ├── 30_Template.php
│ │ ├── 30_Templatebiff5.php
│ │ ├── 31_Document_properties_write.php
│ │ ├── 31_Document_properties_write_xls.php
│ │ ├── 37_Page_layout_view.php
│ │ ├── 38_Clone_worksheet.php
│ │ ├── 39_Dropdown.php
│ │ └── data/
│ │ └── continents/
│ │ ├── Africa.txt
│ │ ├── Asia.txt
│ │ ├── Europe.txt
│ │ ├── North America.txt
│ │ ├── Oceania.txt
│ │ └── South America.txt
│ ├── Basic4/
│ │ ├── 40_Duplicate_style.php
│ │ ├── 41_Password.php
│ │ ├── 42_RichText.php
│ │ ├── 42b_RichText.php
│ │ ├── 43_Merge_workbooks.php
│ │ ├── 44_Worksheet_info.php
│ │ ├── 45_Quadratic_equation_solver.php
│ │ ├── 46_ReadHtml.php
│ │ ├── 47_xlsfill.php
│ │ ├── 47_xlsxfill.php
│ │ ├── 48_Image_move_size_with_cells.php
│ │ └── 49_alignment.php
│ ├── Basic5/
│ │ ├── 50_xlsverticalbreak.php
│ │ ├── 51_ProtectedSort.php
│ │ ├── 52_Currency.php
│ │ ├── 53_ImageOpacity.php
│ │ ├── 54_ImagesInAndOut.php
│ │ ├── 55_DefinedStyles.php
│ │ └── 56_OdsToISO8601.php
│ ├── Bitwise/
│ │ ├── BITAND.php
│ │ ├── BITLSHIFT.php
│ │ ├── BITOR.php
│ │ ├── BITRSHIFT.php
│ │ └── BITXOR.php
│ ├── Bootstrap.php
│ ├── Chart/
│ │ ├── 32_Chart_read_write.php
│ │ ├── 32_Chart_read_write_HTML.php
│ │ ├── 32_Chart_read_write_PDF.php
│ │ ├── 34_Chart_update.php
│ │ ├── 35_Chart_render.php
│ │ ├── 35_Chart_render33.php
│ │ └── 37_Chart_dynamic_title.php
│ ├── Chart33a/
│ │ ├── 33_Chart_create_area.php
│ │ ├── 33_Chart_create_area_2.php
│ │ ├── 33_Chart_create_bar.php
│ │ ├── 33_Chart_create_bar_custom_colors.php
│ │ ├── 33_Chart_create_bar_labels_lines.php
│ │ ├── 33_Chart_create_bar_stacked.php
│ │ ├── 33_Chart_create_bubble.php
│ │ ├── 33_Chart_create_column.php
│ │ ├── 33_Chart_create_column_2.php
│ │ ├── 33_Chart_create_composite.alternate.php
│ │ ├── 33_Chart_create_composite.php
│ │ ├── 33_Chart_create_line.php
│ │ └── 33_Chart_create_line_dateaxis.php
│ ├── Chart33b/
│ │ ├── 33_Chart_create_multiple_charts.php
│ │ ├── 33_Chart_create_pie.php
│ │ ├── 33_Chart_create_pie_custom_colors.php
│ │ ├── 33_Chart_create_radar.php
│ │ ├── 33_Chart_create_scatter.php
│ │ ├── 33_Chart_create_scatter2.php
│ │ ├── 33_Chart_create_scatter3.php
│ │ ├── 33_Chart_create_scatter4.php
│ │ ├── 33_Chart_create_scatter5_trendlines.php
│ │ ├── 33_Chart_create_scatter6_value_xaxis.php
│ │ ├── 33_Chart_create_scatter7_blanks.php
│ │ ├── 33_Chart_create_stock.php
│ │ └── 33_Chart_create_stock2.php
│ ├── ComplexNumbers1/
│ │ ├── COMPLEX.php
│ │ ├── IMABS.php
│ │ ├── IMAGINARY.php
│ │ ├── IMARGUMENT.php
│ │ ├── IMCONJUGATE.php
│ │ └── IMREAL.php
│ ├── ComplexNumbers2/
│ │ ├── IMCOS.php
│ │ ├── IMCOSH.php
│ │ ├── IMCOT.php
│ │ ├── IMCSC.php
│ │ ├── IMCSCH.php
│ │ ├── IMDIV.php
│ │ ├── IMEXP.php
│ │ ├── IMLN.php
│ │ ├── IMLOG10.php
│ │ └── IMLOG2.php
│ ├── ComplexNumbers3/
│ │ ├── IMPOWER.php
│ │ ├── IMPRODUCT.php
│ │ ├── IMSEC.php
│ │ ├── IMSECH.php
│ │ ├── IMSIN.php
│ │ ├── IMSINH.php
│ │ ├── IMSQRT.php
│ │ ├── IMSUB.php
│ │ ├── IMSUM.php
│ │ └── IMTAN.php
│ ├── ConditionalFormatting/
│ │ ├── 01_Basic_Comparisons.php
│ │ ├── 02_Text_Comparisons.php
│ │ ├── 03_Blank_Comparisons.php
│ │ ├── 04_Error_Comparisons.php
│ │ ├── 05_Date_Comparisons.php
│ │ ├── 06_Duplicate_Comparisons.php
│ │ ├── 07_Expression_Comparisons.php
│ │ ├── cond08_colorscale.php
│ │ └── cond09_iconset.php
│ ├── Database/
│ │ ├── DAVERAGE.php
│ │ ├── DCOUNT.php
│ │ ├── DCOUNTA.php
│ │ ├── DGET.php
│ │ ├── DMAX.php
│ │ ├── DMIN.php
│ │ ├── DPRODUCT.php
│ │ ├── DSTDEV.php
│ │ ├── DSTDEVP.php
│ │ ├── DSUM.php
│ │ ├── DVAR.php
│ │ └── DVARP.php
│ ├── DateTime/
│ │ ├── DATE.php
│ │ ├── DATEDIF.php
│ │ ├── DATEVALUE.php
│ │ ├── DAY.php
│ │ ├── DAYS.php
│ │ ├── DAYS360.php
│ │ ├── EDATE.php
│ │ ├── EOMONTH.php
│ │ ├── HOUR.php
│ │ ├── ISOWEEKNUM.php
│ │ ├── MINUTE.php
│ │ └── MONTH.php
│ ├── DateTime2/
│ │ ├── NETWORKDAYS.php
│ │ ├── NOW.php
│ │ ├── SECOND.php
│ │ ├── TIME.php
│ │ ├── TIMEVALUE.php
│ │ ├── TODAY.php
│ │ ├── WEEKDAY.php
│ │ ├── WEEKNUM.php
│ │ ├── WORKDAY.php
│ │ ├── YEAR.php
│ │ └── YEARFRAC.php
│ ├── DefinedNames/
│ │ ├── AbsoluteNamedRange.php
│ │ ├── CrossWorksheetNamedFormula.php
│ │ ├── NamedFormulaeAndRanges.php
│ │ ├── RelativeNamedRange.php
│ │ ├── RelativeNamedRange2.php
│ │ ├── RelativeNamedRangeAsFunction.php
│ │ ├── ScopedNamedRange.php
│ │ ├── ScopedNamedRange2.php
│ │ ├── SimpleNamedFormula.php
│ │ └── SimpleNamedRange.php
│ ├── Engineering/
│ │ ├── BESSELI.php
│ │ ├── BESSELJ.php
│ │ ├── BESSELK.php
│ │ ├── BESSELY.php
│ │ ├── CONVERT.php
│ │ ├── Convert-Online.php
│ │ ├── DELTA.php
│ │ ├── ERF.php
│ │ ├── ERFC.php
│ │ └── GESTEP.php
│ ├── Financial1/
│ │ ├── ACCRINT.php
│ │ ├── ACCRINTM.php
│ │ ├── AMORDEGRC.php
│ │ ├── AMORLINC.php
│ │ ├── COUPDAYBS.php
│ │ ├── COUPDAYS.php
│ │ ├── COUPDAYSNC.php
│ │ ├── COUPNCD.php
│ │ ├── COUPNUM.php
│ │ ├── COUPPCD.php
│ │ ├── CUMIPMT.php
│ │ └── CUMPRINC.php
│ ├── Financial2/
│ │ ├── DB.php
│ │ ├── DDB.php
│ │ ├── DISC.php
│ │ ├── DOLLARDE.php
│ │ ├── DOLLARFR.php
│ │ ├── EFFECT.php
│ │ ├── FV.php
│ │ └── FVSCHEDULE.php
│ ├── Financial3/
│ │ ├── INTRATE.php
│ │ ├── IPMT.php
│ │ ├── IRR.php
│ │ ├── ISPMT.php
│ │ ├── MIRR.php
│ │ ├── NOMINAL.php
│ │ ├── NPER.php
│ │ └── NPV.php
│ ├── Header.php
│ ├── HexEtcConversions/
│ │ ├── BIN2DEC.php
│ │ ├── BIN2HEX.php
│ │ ├── BIN2OCT.php
│ │ ├── DEC2BIN.php
│ │ ├── DEC2HEX.php
│ │ ├── DEC2OCT.php
│ │ ├── HEX2BIN.php
│ │ ├── HEX2DEC.php
│ │ ├── HEX2OCT.php
│ │ ├── OCT2BIN.php
│ │ ├── OCT2DEC.php
│ │ └── OCT2HEX.php
│ ├── Html/
│ │ ├── html_01_Basic_Conditional_Formatting.php
│ │ ├── html_02_More_Conditional_Formatting.php
│ │ ├── html_03_Color_Scale.php
│ │ ├── html_04_Table_Format_without_Conditional.php
│ │ ├── html_05_Table_Format_with_Conditional.php
│ │ └── html_06_Table_Cellspacing.php
│ ├── LookupRef/
│ │ ├── ADDRESS.php
│ │ ├── COLUMN.php
│ │ ├── COLUMNS.php
│ │ ├── INDEX.php
│ │ ├── INDIRECT.php
│ │ ├── OFFSET.php
│ │ ├── ROW.php
│ │ ├── ROWS.php
│ │ ├── SortExcel.php
│ │ ├── SortExcelCols.php
│ │ └── VLOOKUP.php
│ ├── Pdf/
│ │ ├── 21_Pdf_Domdf.php
│ │ ├── 21_Pdf_TCPDF.php
│ │ ├── 21_Pdf_mPDF.php
│ │ ├── 21a_Pdf.php
│ │ ├── 21b_Pdf.php
│ │ ├── 21d_FitToHeightPdf.php
│ │ ├── 21e_UnusualFont_mpdf.php
│ │ ├── 21f_Drawing.php
│ │ ├── 21g_Direction.php
│ │ ├── 21h_DirectionMultiple.php
│ │ ├── Dompdf_Canvas_Headers.php
│ │ ├── Dompdf_Custom_Headers.php
│ │ ├── Mpdf_Custom_Headers.php
│ │ └── Tcpdf_Custom_Headers.php
│ ├── Reader/
│ │ ├── 01_Simple_file_reader_using_IOFactory.php
│ │ ├── 02_Simple_file_reader_using_a_specified_reader.php
│ │ ├── 03_Simple_file_reader_using_the_IOFactory_to_return_a_reader.php
│ │ ├── 04_Simple_file_reader_using_the_IOFactory_to_identify_a_reader_to_use.php
│ │ ├── 05_Simple_file_reader_using_the_read_data_only_option.php
│ │ ├── 06_Simple_file_reader_loading_all_worksheets.php
│ │ ├── 07_Simple_file_reader_loading_a_single_named_worksheet.php
│ │ ├── 08_Simple_file_reader_loading_several_named_worksheets.php
│ │ ├── 09_Simple_file_reader_using_a_read_filter.php
│ │ ├── 10_Simple_file_reader_using_a_configurable_read_filter.php
│ │ ├── 11_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_version_1.php
│ │ ├── 12_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_version_2.php
│ │ └── sampleData/
│ │ ├── example1.xls
│ │ ├── example1xls
│ │ └── example2.xls
│ ├── Reader2/
│ │ ├── 13_Simple_file_reader_for_multiple_CSV_files.php
│ │ ├── 14_Reading_a_large_CSV_file_in_chunks_to_split_across_multiple_worksheets.php
│ │ ├── 15_Simple_file_reader_for_tab_separated_value_file_using_the_Advanced_Value_Binder.php
│ │ ├── 16_Handling_loader_exceptions_using_TryCatch.php
│ │ ├── 17_Simple_file_reader_loading_several_named_worksheets.php
│ │ ├── 18_Reading_list_of_worksheets_without_loading_entire_file.php
│ │ ├── 19_Reading_worksheet_information_without_loading_entire_file.php
│ │ ├── 20_Reader_worksheet_hyperlink_image.php
│ │ ├── 21_Reader_CSV_Long_Integers_with_String_Value_Binder.php
│ │ ├── 22_Reader_formscomments.php
│ │ ├── 22_Reader_issue1767.php
│ │ ├── 23_iterateRowsYield.php
│ │ └── sampleData/
│ │ ├── example1.csv
│ │ ├── example1.tsv
│ │ ├── example1.xls
│ │ ├── example2.csv
│ │ ├── formscomments.xlsx
│ │ ├── issue.1767.xlsx
│ │ └── longIntegers.csv
│ ├── Reading_workbook_data/
│ │ ├── Custom_properties.php
│ │ ├── Custom_property_names.php
│ │ ├── Properties.php
│ │ ├── Worksheet_count_and_names.php
│ │ └── sampleData/
│ │ ├── example1.xls
│ │ ├── example1.xlsx
│ │ └── example2.xls
│ ├── Table/
│ │ ├── 01_Table.php
│ │ ├── 02_Table_Total.php
│ │ ├── 03_Column_Formula.php
│ │ └── 04_Column_Formula_with_Totals.php
│ ├── Wizards/
│ │ ├── Header.php
│ │ └── NumberFormat/
│ │ ├── Accounting.php
│ │ ├── Currency.php
│ │ ├── Number.php
│ │ ├── Percentage.php
│ │ └── Scientific.php
│ ├── bootstrap/
│ │ ├── css/
│ │ │ └── phpspreadsheet.css
│ │ └── fonts/
│ │ └── FontAwesome.otf
│ ├── download.php
│ ├── index.php
│ └── templates/
│ ├── 21d_FitToHeightPdf.xlsx
│ ├── 26template.xlsx
│ ├── 27template.xls
│ ├── 27template.xlsx
│ ├── 28iterators.xlsx
│ ├── 30template.xls
│ ├── 30templatebiff5.xls
│ ├── 31docproperties.xls
│ ├── 31docproperties.xlsx
│ ├── 32chartreadwrite.xlsx
│ ├── 32complexChartreadwrite.xlsx
│ ├── 32readwriteAreaChart1.xlsx
│ ├── 32readwriteAreaChart2.xlsx
│ ├── 32readwriteAreaChart3.xlsx
│ ├── 32readwriteAreaChart3D1.xlsx
│ ├── 32readwriteAreaChart4.xlsx
│ ├── 32readwriteAreaPercentageChart1.xlsx
│ ├── 32readwriteAreaPercentageChart2.xlsx
│ ├── 32readwriteAreaPercentageChart3D1.xlsx
│ ├── 32readwriteAreaStackedChart1.xlsx
│ ├── 32readwriteAreaStackedChart2.xlsx
│ ├── 32readwriteAreaStackedChart3D1.xlsx
│ ├── 32readwriteBarChart1.xlsx
│ ├── 32readwriteBarChart2.xlsx
│ ├── 32readwriteBarChart3.xlsx
│ ├── 32readwriteBarChart3D1.xlsx
│ ├── 32readwriteBarChart4.xlsx
│ ├── 32readwriteBarPercentageChart1.xlsx
│ ├── 32readwriteBarPercentageChart2.xlsx
│ ├── 32readwriteBarPercentageChart3D1.xlsx
│ ├── 32readwriteBarStackedChart1.xlsx
│ ├── 32readwriteBarStackedChart2.xlsx
│ ├── 32readwriteBarStackedChart3D1.xlsx
│ ├── 32readwriteBubbleChart1.xlsx
│ ├── 32readwriteBubbleChart2.xlsx
│ ├── 32readwriteBubbleChart3D1.xlsx
│ ├── 32readwriteChartWithImages1.xlsx
│ ├── 32readwriteColumnChart1.xlsx
│ ├── 32readwriteColumnChart2.xlsx
│ ├── 32readwriteColumnChart3.xlsx
│ ├── 32readwriteColumnChart3D1.xlsx
│ ├── 32readwriteColumnChart4.xlsx
│ ├── 32readwriteColumnPercentageChart1.xlsx
│ ├── 32readwriteColumnPercentageChart2.xlsx
│ ├── 32readwriteColumnPercentageChart3D1.xlsx
│ ├── 32readwriteColumnStackedChart1.xlsx
│ ├── 32readwriteColumnStackedChart2.xlsx
│ ├── 32readwriteColumnStackedChart3D1.xlsx
│ ├── 32readwriteComboChart1.xlsx
│ ├── 32readwriteDonutChart1.xlsx
│ ├── 32readwriteDonutChart2.xlsx
│ ├── 32readwriteDonutChart3.xlsx
│ ├── 32readwriteDonutChart4.xlsx
│ ├── 32readwriteDonutChartExploded1.xlsx
│ ├── 32readwriteDonutChartMultiseries1.xlsx
│ ├── 32readwriteLineChart1.xlsx
│ ├── 32readwriteLineChart2.xlsx
│ ├── 32readwriteLineChart3.xlsx
│ ├── 32readwriteLineChart3D1.xlsx
│ ├── 32readwriteLineChart4.xlsx
│ ├── 32readwriteLineChart5.xlsx
│ ├── 32readwriteLineChart6.xlsx
│ ├── 32readwriteLineChartNoPointMarkers1.xlsx
│ ├── 32readwriteLineDateAxisChart1.xlsx
│ ├── 32readwriteLinePercentageChart1.xlsx
│ ├── 32readwriteLinePercentageChart2.xlsx
│ ├── 32readwriteLineStackedChart1.xlsx
│ ├── 32readwriteLineStackedChart2.xlsx
│ ├── 32readwritePieChart1.xlsx
│ ├── 32readwritePieChart2.xlsx
│ ├── 32readwritePieChart3.xlsx
│ ├── 32readwritePieChart3D1.xlsx
│ ├── 32readwritePieChart4.xlsx
│ ├── 32readwritePieChartExploded1.xlsx
│ ├── 32readwritePieChartExploded3D1.xlsx
│ ├── 32readwriteRadarChart1.xlsx
│ ├── 32readwriteRadarChart2.xlsx
│ ├── 32readwriteRadarChart3.xlsx
│ ├── 32readwriteScatterChart1.xlsx
│ ├── 32readwriteScatterChart10.xlsx
│ ├── 32readwriteScatterChart2.xlsx
│ ├── 32readwriteScatterChart3.xlsx
│ ├── 32readwriteScatterChart4.xlsx
│ ├── 32readwriteScatterChart5.xlsx
│ ├── 32readwriteScatterChart6.xlsx
│ ├── 32readwriteScatterChart7.xlsx
│ ├── 32readwriteScatterChart8.xlsx
│ ├── 32readwriteScatterChart9.xlsx
│ ├── 32readwriteScatterChartTrendlines1.xlsx
│ ├── 32readwriteStockChart1.xlsx
│ ├── 32readwriteStockChart2.xlsx
│ ├── 32readwriteStockChart3.xlsx
│ ├── 32readwriteStockChart4.xlsx
│ ├── 32readwriteStockChart5.xlsx
│ ├── 32readwriteSurfaceChart1.xlsx
│ ├── 32readwriteSurfaceChart2.xlsx
│ ├── 32readwriteSurfaceChart3.xlsx
│ ├── 32readwriteSurfaceChart4.xlsx
│ ├── 36writeLineChart1.xlsx
│ ├── 36writeMultiple1.xlsx
│ ├── 37dynamictitle.xlsx
│ ├── 43mergeBook1.xlsx
│ ├── 43mergeBook2.xlsx
│ ├── 46readHtml.html
│ ├── 47_xlsfill.xls
│ ├── 47_xlsxfill.xlsx
│ ├── 50_xlsverticalbreak.xls
│ ├── 56_MixedDateFormats.ods
│ ├── BasicConditionalFormatting.xlsx
│ ├── ColourScale.xlsx
│ ├── ConditionalFormattingConditions.xlsx
│ ├── Excel2003XMLTest.xml
│ ├── GnumericTest.gnumeric
│ ├── Mpdf2.php
│ ├── OOCalcTest.ods
│ ├── ShadowsIntoLight.OFL.txt
│ ├── SylkTest.slk
│ ├── TableFormat.xlsx
│ ├── chart-with-and-without-overlays.xlsx
│ ├── chartSpreadsheet.php
│ ├── excel2003.short.bad.xml
│ ├── excel2003.xml
│ ├── largeSpreadsheet.php
│ ├── old.gnumeric
│ ├── sampleSpreadsheet.php
│ └── sampleSpreadsheet2.php
├── src/
│ └── PhpSpreadsheet/
│ ├── Calculation/
│ │ ├── ArrayEnabled.php
│ │ ├── BinaryComparison.php
│ │ ├── Calculation.php
│ │ ├── CalculationBase.php
│ │ ├── CalculationLocale.php
│ │ ├── CalculationParserOnly.php
│ │ ├── Category.php
│ │ ├── Database/
│ │ │ ├── DAverage.php
│ │ │ ├── DCount.php
│ │ │ ├── DCountA.php
│ │ │ ├── DGet.php
│ │ │ ├── DMax.php
│ │ │ ├── DMin.php
│ │ │ ├── DProduct.php
│ │ │ ├── DStDev.php
│ │ │ ├── DStDevP.php
│ │ │ ├── DSum.php
│ │ │ ├── DVar.php
│ │ │ ├── DVarP.php
│ │ │ └── DatabaseAbstract.php
│ │ ├── DateTimeExcel/
│ │ │ ├── Constants.php
│ │ │ ├── Current.php
│ │ │ ├── Date.php
│ │ │ ├── DateParts.php
│ │ │ ├── DateValue.php
│ │ │ ├── Days.php
│ │ │ ├── Days360.php
│ │ │ ├── Difference.php
│ │ │ ├── Helpers.php
│ │ │ ├── Month.php
│ │ │ ├── NetworkDays.php
│ │ │ ├── Time.php
│ │ │ ├── TimeParts.php
│ │ │ ├── TimeValue.php
│ │ │ ├── Week.php
│ │ │ ├── WorkDay.php
│ │ │ └── YearFrac.php
│ │ ├── Engine/
│ │ │ ├── ArrayArgumentHelper.php
│ │ │ ├── ArrayArgumentProcessor.php
│ │ │ ├── BranchPruner.php
│ │ │ ├── CyclicReferenceStack.php
│ │ │ ├── FormattedNumber.php
│ │ │ ├── Logger.php
│ │ │ └── Operands/
│ │ │ ├── Operand.php
│ │ │ └── StructuredReference.php
│ │ ├── Engineering/
│ │ │ ├── BesselI.php
│ │ │ ├── BesselJ.php
│ │ │ ├── BesselK.php
│ │ │ ├── BesselY.php
│ │ │ ├── BitWise.php
│ │ │ ├── Compare.php
│ │ │ ├── Complex.php
│ │ │ ├── ComplexFunctions.php
│ │ │ ├── ComplexOperations.php
│ │ │ ├── Constants.php
│ │ │ ├── ConvertBase.php
│ │ │ ├── ConvertBinary.php
│ │ │ ├── ConvertDecimal.php
│ │ │ ├── ConvertHex.php
│ │ │ ├── ConvertOctal.php
│ │ │ ├── ConvertUOM.php
│ │ │ ├── EngineeringValidations.php
│ │ │ ├── Erf.php
│ │ │ └── ErfC.php
│ │ ├── Exception.php
│ │ ├── ExceptionHandler.php
│ │ ├── Financial/
│ │ │ ├── Amortization.php
│ │ │ ├── CashFlow/
│ │ │ │ ├── CashFlowValidations.php
│ │ │ │ ├── Constant/
│ │ │ │ │ ├── Periodic/
│ │ │ │ │ │ ├── Cumulative.php
│ │ │ │ │ │ ├── Interest.php
│ │ │ │ │ │ ├── InterestAndPrincipal.php
│ │ │ │ │ │ └── Payments.php
│ │ │ │ │ └── Periodic.php
│ │ │ │ ├── Single.php
│ │ │ │ └── Variable/
│ │ │ │ ├── NonPeriodic.php
│ │ │ │ └── Periodic.php
│ │ │ ├── Constants.php
│ │ │ ├── Coupons.php
│ │ │ ├── Depreciation.php
│ │ │ ├── Dollar.php
│ │ │ ├── FinancialValidations.php
│ │ │ ├── Helpers.php
│ │ │ ├── InterestRate.php
│ │ │ ├── Securities/
│ │ │ │ ├── AccruedInterest.php
│ │ │ │ ├── Price.php
│ │ │ │ ├── Rates.php
│ │ │ │ ├── SecurityValidations.php
│ │ │ │ └── Yields.php
│ │ │ └── TreasuryBill.php
│ │ ├── FormulaParser.php
│ │ ├── FormulaToken.php
│ │ ├── FunctionArray.php
│ │ ├── Functions.php
│ │ ├── Information/
│ │ │ ├── ErrorValue.php
│ │ │ ├── ExcelError.php
│ │ │ ├── Info.php
│ │ │ └── Value.php
│ │ ├── Internal/
│ │ │ ├── ExcelArrayPseudoFunctions.php
│ │ │ ├── MakeMatrix.php
│ │ │ └── WildcardMatch.php
│ │ ├── Logical/
│ │ │ ├── Boolean.php
│ │ │ ├── Conditional.php
│ │ │ └── Operations.php
│ │ ├── LookupRef/
│ │ │ ├── Address.php
│ │ │ ├── ChooseRowsEtc.php
│ │ │ ├── ExcelMatch.php
│ │ │ ├── Filter.php
│ │ │ ├── Formula.php
│ │ │ ├── HLookup.php
│ │ │ ├── Helpers.php
│ │ │ ├── Hstack.php
│ │ │ ├── Hyperlink.php
│ │ │ ├── Indirect.php
│ │ │ ├── Lookup.php
│ │ │ ├── LookupBase.php
│ │ │ ├── LookupRefValidations.php
│ │ │ ├── Matrix.php
│ │ │ ├── Offset.php
│ │ │ ├── RowColumnInformation.php
│ │ │ ├── Selection.php
│ │ │ ├── Sort.php
│ │ │ ├── TorowTocol.php
│ │ │ ├── Unique.php
│ │ │ ├── VLookup.php
│ │ │ └── Vstack.php
│ │ ├── MathTrig/
│ │ │ ├── Absolute.php
│ │ │ ├── Angle.php
│ │ │ ├── Arabic.php
│ │ │ ├── Base.php
│ │ │ ├── Ceiling.php
│ │ │ ├── Combinations.php
│ │ │ ├── Exp.php
│ │ │ ├── Factorial.php
│ │ │ ├── Floor.php
│ │ │ ├── Gcd.php
│ │ │ ├── Helpers.php
│ │ │ ├── IntClass.php
│ │ │ ├── Lcm.php
│ │ │ ├── Logarithms.php
│ │ │ ├── MatrixFunctions.php
│ │ │ ├── Operations.php
│ │ │ ├── Random.php
│ │ │ ├── Roman.php
│ │ │ ├── Round.php
│ │ │ ├── SeriesSum.php
│ │ │ ├── Sign.php
│ │ │ ├── Sqrt.php
│ │ │ ├── Subtotal.php
│ │ │ ├── Sum.php
│ │ │ ├── SumSquares.php
│ │ │ ├── Trig/
│ │ │ │ ├── Cosecant.php
│ │ │ │ ├── Cosine.php
│ │ │ │ ├── Cotangent.php
│ │ │ │ ├── Secant.php
│ │ │ │ ├── Sine.php
│ │ │ │ └── Tangent.php
│ │ │ └── Trunc.php
│ │ ├── Statistical/
│ │ │ ├── AggregateBase.php
│ │ │ ├── Averages/
│ │ │ │ └── Mean.php
│ │ │ ├── Averages.php
│ │ │ ├── Conditional.php
│ │ │ ├── Confidence.php
│ │ │ ├── Counts.php
│ │ │ ├── Deviations.php
│ │ │ ├── Distributions/
│ │ │ │ ├── Beta.php
│ │ │ │ ├── Binomial.php
│ │ │ │ ├── ChiSquared.php
│ │ │ │ ├── DistributionValidations.php
│ │ │ │ ├── Exponential.php
│ │ │ │ ├── F.php
│ │ │ │ ├── Fisher.php
│ │ │ │ ├── Gamma.php
│ │ │ │ ├── GammaBase.php
│ │ │ │ ├── HyperGeometric.php
│ │ │ │ ├── LogNormal.php
│ │ │ │ ├── NewtonRaphson.php
│ │ │ │ ├── Normal.php
│ │ │ │ ├── Poisson.php
│ │ │ │ ├── StandardNormal.php
│ │ │ │ ├── StudentT.php
│ │ │ │ └── Weibull.php
│ │ │ ├── MaxMinBase.php
│ │ │ ├── Maximum.php
│ │ │ ├── Minimum.php
│ │ │ ├── Percentiles.php
│ │ │ ├── Permutations.php
│ │ │ ├── Size.php
│ │ │ ├── StandardDeviations.php
│ │ │ ├── Standardize.php
│ │ │ ├── StatisticalValidations.php
│ │ │ ├── Trends.php
│ │ │ ├── VarianceBase.php
│ │ │ └── Variances.php
│ │ ├── TextData/
│ │ │ ├── CaseConvert.php
│ │ │ ├── CharacterConvert.php
│ │ │ ├── Concatenate.php
│ │ │ ├── Extract.php
│ │ │ ├── Format.php
│ │ │ ├── Helpers.php
│ │ │ ├── Replace.php
│ │ │ ├── Search.php
│ │ │ ├── Text.php
│ │ │ ├── Thai.php
│ │ │ └── Trim.php
│ │ ├── Token/
│ │ │ └── Stack.php
│ │ ├── Web/
│ │ │ └── Service.php
│ │ └── locale/
│ │ ├── Translations.xlsx
│ │ ├── bg/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── cs/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── da/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── de/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── en/
│ │ │ └── uk/
│ │ │ └── config
│ │ ├── es/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── fi/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── fr/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── hu/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── it/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── nb/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── nl/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── pl/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── pt/
│ │ │ ├── br/
│ │ │ │ ├── config
│ │ │ │ └── functions
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── ru/
│ │ │ ├── config
│ │ │ └── functions
│ │ ├── sv/
│ │ │ ├── config
│ │ │ └── functions
│ │ └── tr/
│ │ ├── config
│ │ └── functions
│ ├── Cell/
│ │ ├── AddressHelper.php
│ │ ├── AddressRange.php
│ │ ├── AdvancedValueBinder.php
│ │ ├── Cell.php
│ │ ├── CellAddress.php
│ │ ├── CellRange.php
│ │ ├── ColumnRange.php
│ │ ├── Coordinate.php
│ │ ├── DataType.php
│ │ ├── DataValidation.php
│ │ ├── DataValidator.php
│ │ ├── DefaultValueBinder.php
│ │ ├── Hyperlink.php
│ │ ├── IValueBinder.php
│ │ ├── IgnoredErrors.php
│ │ ├── RowRange.php
│ │ └── StringValueBinder.php
│ ├── CellReferenceHelper.php
│ ├── Chart/
│ │ ├── Axis.php
│ │ ├── AxisText.php
│ │ ├── Chart.php
│ │ ├── ChartColor.php
│ │ ├── DataSeries.php
│ │ ├── DataSeriesValues.php
│ │ ├── Exception.php
│ │ ├── GridLines.php
│ │ ├── Layout.php
│ │ ├── Legend.php
│ │ ├── PlotArea.php
│ │ ├── Properties.php
│ │ ├── Renderer/
│ │ │ ├── IRenderer.php
│ │ │ ├── JpGraph.php
│ │ │ ├── JpGraphRendererBase.php
│ │ │ ├── MtJpGraphRenderer.php
│ │ │ └── PHP Charting Libraries.txt
│ │ ├── Title.php
│ │ └── TrendLine.php
│ ├── Collection/
│ │ ├── Cells.php
│ │ ├── CellsFactory.php
│ │ └── Memory/
│ │ ├── SimpleCache1.php
│ │ └── SimpleCache3.php
│ ├── Comment.php
│ ├── DefinedName.php
│ ├── Document/
│ │ ├── Properties.php
│ │ └── Security.php
│ ├── Exception.php
│ ├── HashTable.php
│ ├── Helper/
│ │ ├── Dimension.php
│ │ ├── Downloader.php
│ │ ├── Handler.php
│ │ ├── Html.php
│ │ ├── Sample.php
│ │ ├── Size.php
│ │ ├── TextGrid.php
│ │ └── TextGridRightAlign.php
│ ├── IComparable.php
│ ├── IOFactory.php
│ ├── NamedFormula.php
│ ├── NamedRange.php
│ ├── Reader/
│ │ ├── BaseReader.php
│ │ ├── Csv/
│ │ │ └── Delimiter.php
│ │ ├── Csv.php
│ │ ├── DefaultReadFilter.php
│ │ ├── Exception.php
│ │ ├── Gnumeric/
│ │ │ ├── PageSetup.php
│ │ │ ├── Properties.php
│ │ │ └── Styles.php
│ │ ├── Gnumeric.php
│ │ ├── Html.php
│ │ ├── IReadFilter.php
│ │ ├── IReader.php
│ │ ├── Ods/
│ │ │ ├── AutoFilter.php
│ │ │ ├── BaseLoader.php
│ │ │ ├── DefinedNames.php
│ │ │ ├── FormulaTranslator.php
│ │ │ ├── PageSettings.php
│ │ │ └── Properties.php
│ │ ├── Ods.php
│ │ ├── Security/
│ │ │ └── XmlScanner.php
│ │ ├── Slk.php
│ │ ├── Xls/
│ │ │ ├── Biff5.php
│ │ │ ├── Biff8.php
│ │ │ ├── Color/
│ │ │ │ ├── BIFF5.php
│ │ │ │ ├── BIFF8.php
│ │ │ │ └── BuiltIn.php
│ │ │ ├── Color.php
│ │ │ ├── ConditionalFormatting.php
│ │ │ ├── DataValidationHelper.php
│ │ │ ├── ErrorCode.php
│ │ │ ├── Escher.php
│ │ │ ├── ListFunctions.php
│ │ │ ├── LoadSpreadsheet.php
│ │ │ ├── MD5.php
│ │ │ ├── Mappings.php
│ │ │ ├── RC4.php
│ │ │ └── Style/
│ │ │ ├── Border.php
│ │ │ ├── CellAlignment.php
│ │ │ ├── CellFont.php
│ │ │ └── FillPattern.php
│ │ ├── Xls.php
│ │ ├── XlsBase.php
│ │ ├── Xlsx/
│ │ │ ├── AutoFilter.php
│ │ │ ├── BaseParserClass.php
│ │ │ ├── Chart.php
│ │ │ ├── ColumnAndRowAttributes.php
│ │ │ ├── ConditionalStyles.php
│ │ │ ├── DataValidations.php
│ │ │ ├── Hyperlinks.php
│ │ │ ├── Namespaces.php
│ │ │ ├── PageSetup.php
│ │ │ ├── Properties.php
│ │ │ ├── SharedFormula.php
│ │ │ ├── SheetViewOptions.php
│ │ │ ├── SheetViews.php
│ │ │ ├── Styles.php
│ │ │ ├── TableReader.php
│ │ │ ├── Theme.php
│ │ │ └── WorkbookView.php
│ │ ├── Xlsx.php
│ │ ├── Xml/
│ │ │ ├── DataValidations.php
│ │ │ ├── PageSettings.php
│ │ │ ├── Properties.php
│ │ │ ├── Style/
│ │ │ │ ├── Alignment.php
│ │ │ │ ├── Border.php
│ │ │ │ ├── Fill.php
│ │ │ │ ├── Font.php
│ │ │ │ ├── NumberFormat.php
│ │ │ │ └── StyleBase.php
│ │ │ └── Style.php
│ │ └── Xml.php
│ ├── ReferenceHelper.php
│ ├── RichText/
│ │ ├── ITextElement.php
│ │ ├── RichText.php
│ │ ├── Run.php
│ │ └── TextElement.php
│ ├── Settings.php
│ ├── Shared/
│ │ ├── CodePage.php
│ │ ├── Date.php
│ │ ├── Drawing.php
│ │ ├── Escher/
│ │ │ ├── DgContainer/
│ │ │ │ ├── SpgrContainer/
│ │ │ │ │ └── SpContainer.php
│ │ │ │ └── SpgrContainer.php
│ │ │ ├── DgContainer.php
│ │ │ ├── DggContainer/
│ │ │ │ ├── BstoreContainer/
│ │ │ │ │ ├── BSE/
│ │ │ │ │ │ └── Blip.php
│ │ │ │ │ └── BSE.php
│ │ │ │ └── BstoreContainer.php
│ │ │ └── DggContainer.php
│ │ ├── Escher.php
│ │ ├── File.php
│ │ ├── Font.php
│ │ ├── IntOrFloat.php
│ │ ├── OLE/
│ │ │ ├── ChainedBlockStream.php
│ │ │ ├── PPS/
│ │ │ │ ├── File.php
│ │ │ │ └── Root.php
│ │ │ └── PPS.php
│ │ ├── OLE.php
│ │ ├── OLERead.php
│ │ ├── PasswordHasher.php
│ │ ├── StringHelper.php
│ │ ├── TimeZone.php
│ │ ├── Trend/
│ │ │ ├── BestFit.php
│ │ │ ├── ExponentialBestFit.php
│ │ │ ├── LinearBestFit.php
│ │ │ ├── LogarithmicBestFit.php
│ │ │ ├── PolynomialBestFit.php
│ │ │ ├── PowerBestFit.php
│ │ │ └── Trend.php
│ │ ├── XMLWriter.php
│ │ └── Xls.php
│ ├── Spreadsheet.php
│ ├── Style/
│ │ ├── Alignment.php
│ │ ├── Border.php
│ │ ├── Borders.php
│ │ ├── Color.php
│ │ ├── Conditional.php
│ │ ├── ConditionalFormatting/
│ │ │ ├── CellMatcher.php
│ │ │ ├── CellStyleAssessor.php
│ │ │ ├── ConditionalColorScale.php
│ │ │ ├── ConditionalDataBar.php
│ │ │ ├── ConditionalDataBarExtension.php
│ │ │ ├── ConditionalFormatValueObject.php
│ │ │ ├── ConditionalFormattingRuleExtension.php
│ │ │ ├── ConditionalIconSet.php
│ │ │ ├── IconSetValues.php
│ │ │ ├── MergedCellStyle.php
│ │ │ ├── StyleMerger.php
│ │ │ ├── Wizard/
│ │ │ │ ├── Blanks.php
│ │ │ │ ├── CellValue.php
│ │ │ │ ├── DateValue.php
│ │ │ │ ├── Duplicates.php
│ │ │ │ ├── Errors.php
│ │ │ │ ├── Expression.php
│ │ │ │ ├── TextValue.php
│ │ │ │ ├── WizardAbstract.php
│ │ │ │ └── WizardInterface.php
│ │ │ └── Wizard.php
│ │ ├── Fill.php
│ │ ├── Font.php
│ │ ├── NumberFormat/
│ │ │ ├── BaseFormatter.php
│ │ │ ├── DateFormatter.php
│ │ │ ├── Formatter.php
│ │ │ ├── FractionFormatter.php
│ │ │ ├── NumberFormatter.php
│ │ │ ├── PercentageFormatter.php
│ │ │ └── Wizard/
│ │ │ ├── Accounting.php
│ │ │ ├── Currency.php
│ │ │ ├── CurrencyBase.php
│ │ │ ├── CurrencyNegative.php
│ │ │ ├── Date.php
│ │ │ ├── DateTime.php
│ │ │ ├── DateTimeWizard.php
│ │ │ ├── Duration.php
│ │ │ ├── Locale.php
│ │ │ ├── Number.php
│ │ │ ├── NumberBase.php
│ │ │ ├── Percentage.php
│ │ │ ├── Scientific.php
│ │ │ ├── Time.php
│ │ │ └── Wizard.php
│ │ ├── NumberFormat.php
│ │ ├── Protection.php
│ │ ├── RgbTint.php
│ │ ├── Style.php
│ │ └── Supervisor.php
│ ├── Theme.php
│ ├── Worksheet/
│ │ ├── AutoFilter/
│ │ │ ├── Column/
│ │ │ │ └── Rule.php
│ │ │ └── Column.php
│ │ ├── AutoFilter.php
│ │ ├── AutoFit.php
│ │ ├── BaseDrawing.php
│ │ ├── CellIterator.php
│ │ ├── Column.php
│ │ ├── ColumnCellIterator.php
│ │ ├── ColumnDimension.php
│ │ ├── ColumnIterator.php
│ │ ├── Dimension.php
│ │ ├── Drawing/
│ │ │ └── Shadow.php
│ │ ├── Drawing.php
│ │ ├── HeaderFooter.php
│ │ ├── HeaderFooterDrawing.php
│ │ ├── Iterator.php
│ │ ├── MemoryDrawing.php
│ │ ├── PageBreak.php
│ │ ├── PageMargins.php
│ │ ├── PageSetup.php
│ │ ├── Pane.php
│ │ ├── ProtectedRange.php
│ │ ├── Protection.php
│ │ ├── Row.php
│ │ ├── RowCellIterator.php
│ │ ├── RowDimension.php
│ │ ├── RowIterator.php
│ │ ├── SheetView.php
│ │ ├── Table/
│ │ │ ├── Column.php
│ │ │ ├── TableDxfsStyle.php
│ │ │ └── TableStyle.php
│ │ ├── Table.php
│ │ ├── Validations.php
│ │ └── Worksheet.php
│ └── Writer/
│ ├── BaseWriter.php
│ ├── Csv.php
│ ├── Exception.php
│ ├── Html.php
│ ├── IWriter.php
│ ├── Ods/
│ │ ├── AutoFilters.php
│ │ ├── Cell/
│ │ │ ├── Comment.php
│ │ │ └── Style.php
│ │ ├── Content.php
│ │ ├── Formula.php
│ │ ├── Meta.php
│ │ ├── MetaInf.php
│ │ ├── Mimetype.php
│ │ ├── NamedExpressions.php
│ │ ├── Settings.php
│ │ ├── Styles.php
│ │ ├── Thumbnails.php
│ │ └── WriterPart.php
│ ├── Ods.php
│ ├── Pdf/
│ │ ├── Dompdf.php
│ │ ├── Mpdf.php
│ │ ├── Tcpdf.php
│ │ └── TcpdfNoDie.php
│ ├── Pdf.php
│ ├── Xls/
│ │ ├── BIFFwriter.php
│ │ ├── CellDataValidation.php
│ │ ├── ConditionalHelper.php
│ │ ├── ErrorCode.php
│ │ ├── Escher.php
│ │ ├── Font.php
│ │ ├── Parser.php
│ │ ├── Style/
│ │ │ ├── CellAlignment.php
│ │ │ ├── CellBorder.php
│ │ │ └── CellFill.php
│ │ ├── Workbook.php
│ │ ├── Worksheet.php
│ │ └── Xf.php
│ ├── Xls.php
│ ├── Xlsx/
│ │ ├── AutoFilter.php
│ │ ├── Chart.php
│ │ ├── Comments.php
│ │ ├── ContentTypes.php
│ │ ├── DefinedNames.php
│ │ ├── DocProps.php
│ │ ├── Drawing.php
│ │ ├── FeaturePropertyBag.php
│ │ ├── FunctionPrefix.php
│ │ ├── Metadata.php
│ │ ├── Rels.php
│ │ ├── RelsRibbon.php
│ │ ├── RelsVBA.php
│ │ ├── RichDataDrawing.php
│ │ ├── StringTable.php
│ │ ├── Style.php
│ │ ├── Table.php
│ │ ├── Theme.php
│ │ ├── Workbook.php
│ │ ├── Worksheet.php
│ │ └── WriterPart.php
│ ├── Xlsx.php
│ ├── ZipStream0.php
│ ├── ZipStream2.php
│ └── ZipStream3.php
└── tests/
├── PhpSpreadsheetTests/
│ ├── A1LocaleGeneratorTest.php
│ ├── Calculation/
│ │ ├── ArrayFormulaTest.php
│ │ ├── ArrayTest.php
│ │ ├── AssociativityTest.php
│ │ ├── BinaryComparisonTest.php
│ │ ├── CalculationCoverageTest.php
│ │ ├── CalculationErrorTest.php
│ │ ├── CalculationFunctionListTest.php
│ │ ├── CalculationLoggingTest.php
│ │ ├── CalculationSettingsTest.php
│ │ ├── CalculationTest.php
│ │ ├── CustomFunction.php
│ │ ├── CustomFunctionTest.php
│ │ ├── CyclicTest.php
│ │ ├── DefinedNameConfusedForCellTest.php
│ │ ├── DefinedNameWithQuotePrefixedCellTest.php
│ │ ├── DefinedNamesCalculationTest.php
│ │ ├── Discussion1950Test.php
│ │ ├── Engine/
│ │ │ ├── FormattedNumberSlashTest.php
│ │ │ ├── FormattedNumberTest.php
│ │ │ ├── RangeTest.php
│ │ │ ├── StructuredReferenceSlashTest.php
│ │ │ └── StructuredReferenceTest.php
│ │ ├── FormulaAsStringTest.php
│ │ ├── FormulaParserTest.php
│ │ ├── Functions/
│ │ │ ├── Database/
│ │ │ │ ├── DAverageTest.php
│ │ │ │ ├── DCountATest.php
│ │ │ │ ├── DCountTest.php
│ │ │ │ ├── DGetTest.php
│ │ │ │ ├── DMaxTest.php
│ │ │ │ ├── DMinTest.php
│ │ │ │ ├── DProductTest.php
│ │ │ │ ├── DStDevPTest.php
│ │ │ │ ├── DStDevTest.php
│ │ │ │ ├── DSumTest.php
│ │ │ │ ├── DVarPTest.php
│ │ │ │ ├── DVarTest.php
│ │ │ │ └── SetupTeardownDatabases.php
│ │ │ ├── DateTime/
│ │ │ │ ├── DateDifTest.php
│ │ │ │ ├── DateTest.php
│ │ │ │ ├── DateValueTest.php
│ │ │ │ ├── DayTest.php
│ │ │ │ ├── Days360Test.php
│ │ │ │ ├── DaysTest.php
│ │ │ │ ├── EDateTest.php
│ │ │ │ ├── EoMonthTest.php
│ │ │ │ ├── HelpersTest.php
│ │ │ │ ├── HourTest.php
│ │ │ │ ├── IsoWeekNumTest.php
│ │ │ │ ├── MinuteTest.php
│ │ │ │ ├── MonthTest.php
│ │ │ │ ├── NetworkDaysTest.php
│ │ │ │ ├── NowTest.php
│ │ │ │ ├── SecondTest.php
│ │ │ │ ├── TimeTest.php
│ │ │ │ ├── TimeValueTest.php
│ │ │ │ ├── TodayTest.php
│ │ │ │ ├── WeekDayTest.php
│ │ │ │ ├── WeekNumTest.php
│ │ │ │ ├── WorkDayTest.php
│ │ │ │ ├── YearFracTest.php
│ │ │ │ └── YearTest.php
│ │ │ ├── Engineering/
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── BesselITest.php
│ │ │ │ ├── BesselJTest.php
│ │ │ │ ├── BesselKTest.php
│ │ │ │ ├── BesselYTest.php
│ │ │ │ ├── Bin2DecTest.php
│ │ │ │ ├── Bin2HexTest.php
│ │ │ │ ├── Bin2OctTest.php
│ │ │ │ ├── BitAndTest.php
│ │ │ │ ├── BitLShiftTest.php
│ │ │ │ ├── BitOrTest.php
│ │ │ │ ├── BitRShiftTest.php
│ │ │ │ ├── BitXorTest.php
│ │ │ │ ├── ComplexTest.php
│ │ │ │ ├── ConvertUoMTest.php
│ │ │ │ ├── Dec2BinTest.php
│ │ │ │ ├── Dec2HexTest.php
│ │ │ │ ├── Dec2OctTest.php
│ │ │ │ ├── DeltaTest.php
│ │ │ │ ├── ErfCTest.php
│ │ │ │ ├── ErfPreciseTest.php
│ │ │ │ ├── ErfTest.php
│ │ │ │ ├── GeStepTest.php
│ │ │ │ ├── Hex2BinTest.php
│ │ │ │ ├── Hex2DecTest.php
│ │ │ │ ├── Hex2OctTest.php
│ │ │ │ ├── ImAbsTest.php
│ │ │ │ ├── ImArgumentTest.php
│ │ │ │ ├── ImConjugateTest.php
│ │ │ │ ├── ImCosTest.php
│ │ │ │ ├── ImCoshTest.php
│ │ │ │ ├── ImCotTest.php
│ │ │ │ ├── ImCscTest.php
│ │ │ │ ├── ImCschTest.php
│ │ │ │ ├── ImDivTest.php
│ │ │ │ ├── ImExpTest.php
│ │ │ │ ├── ImLnTest.php
│ │ │ │ ├── ImLog10Test.php
│ │ │ │ ├── ImLog2Test.php
│ │ │ │ ├── ImPowerTest.php
│ │ │ │ ├── ImProductTest.php
│ │ │ │ ├── ImRealTest.php
│ │ │ │ ├── ImSecTest.php
│ │ │ │ ├── ImSechTest.php
│ │ │ │ ├── ImSinTest.php
│ │ │ │ ├── ImSinhTest.php
│ │ │ │ ├── ImSqrtTest.php
│ │ │ │ ├── ImSubTest.php
│ │ │ │ ├── ImSumTest.php
│ │ │ │ ├── ImTanTest.php
│ │ │ │ ├── ImaginaryTest.php
│ │ │ │ ├── Oct2BinTest.php
│ │ │ │ ├── Oct2DecTest.php
│ │ │ │ └── Oct2HexTest.php
│ │ │ ├── Financial/
│ │ │ │ ├── AccrintMTest.php
│ │ │ │ ├── AccrintTest.php
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── AmorDegRcTest.php
│ │ │ │ ├── AmorLincTest.php
│ │ │ │ ├── CoupDayBsTest.php
│ │ │ │ ├── CoupDaysNcTest.php
│ │ │ │ ├── CoupDaysTest.php
│ │ │ │ ├── CoupNcdTest.php
│ │ │ │ ├── CoupNumTest.php
│ │ │ │ ├── CoupPcdTest.php
│ │ │ │ ├── CumIpmtTest.php
│ │ │ │ ├── CumPrincTest.php
│ │ │ │ ├── DbTest.php
│ │ │ │ ├── DdbTest.php
│ │ │ │ ├── DiscTest.php
│ │ │ │ ├── DollarDeTest.php
│ │ │ │ ├── DollarFrTest.php
│ │ │ │ ├── EffectTest.php
│ │ │ │ ├── FvScheduleTest.php
│ │ │ │ ├── FvTest.php
│ │ │ │ ├── HelpersTest.php
│ │ │ │ ├── IPmtTest.php
│ │ │ │ ├── IntRateTest.php
│ │ │ │ ├── IrrTest.php
│ │ │ │ ├── IsPmtTest.php
│ │ │ │ ├── MirrTest.php
│ │ │ │ ├── NPerTest.php
│ │ │ │ ├── NominalTest.php
│ │ │ │ ├── NpvTest.php
│ │ │ │ ├── PDurationTest.php
│ │ │ │ ├── PmtTest.php
│ │ │ │ ├── PpmtTest.php
│ │ │ │ ├── PriceDiscTest.php
│ │ │ │ ├── PriceMatTest.php
│ │ │ │ ├── PriceTest.php
│ │ │ │ ├── PvTest.php
│ │ │ │ ├── RateTest.php
│ │ │ │ ├── ReceivedTest.php
│ │ │ │ ├── RriTest.php
│ │ │ │ ├── SlnTest.php
│ │ │ │ ├── SydTest.php
│ │ │ │ ├── TBillEqTest.php
│ │ │ │ ├── TBillPriceTest.php
│ │ │ │ ├── TBillYieldTest.php
│ │ │ │ ├── UsDollarTest.php
│ │ │ │ ├── XNpvTest.php
│ │ │ │ ├── XirrTest.php
│ │ │ │ ├── YieldDiscTest.php
│ │ │ │ └── YieldMatTest.php
│ │ │ ├── FormulaArguments.php
│ │ │ ├── Information/
│ │ │ │ ├── Div0Test.php
│ │ │ │ ├── ErrorTypeTest.php
│ │ │ │ ├── InfoTest.php
│ │ │ │ ├── IsBlankTest.php
│ │ │ │ ├── IsErrTest.php
│ │ │ │ ├── IsErrorTest.php
│ │ │ │ ├── IsEvenTest.php
│ │ │ │ ├── IsFormulaTest.php
│ │ │ │ ├── IsLogicalTest.php
│ │ │ │ ├── IsNaTest.php
│ │ │ │ ├── IsNonTextTest.php
│ │ │ │ ├── IsNumberTest.php
│ │ │ │ ├── IsOddTest.php
│ │ │ │ ├── IsRefTest.php
│ │ │ │ ├── IsTextTest.php
│ │ │ │ ├── NTest.php
│ │ │ │ ├── NaTest.php
│ │ │ │ ├── NameTest.php
│ │ │ │ ├── NanTest.php
│ │ │ │ ├── NullTest.php
│ │ │ │ ├── RefTest.php
│ │ │ │ ├── TypeTest.php
│ │ │ │ └── ValueTest.php
│ │ │ ├── Logical/
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── AndTest.php
│ │ │ │ ├── FalseTest.php
│ │ │ │ ├── IfErrorTest.php
│ │ │ │ ├── IfNaTest.php
│ │ │ │ ├── IfTest.php
│ │ │ │ ├── IfsTest.php
│ │ │ │ ├── NotTest.php
│ │ │ │ ├── OrTest.php
│ │ │ │ ├── SwitchTest.php
│ │ │ │ ├── TrueTest.php
│ │ │ │ └── XorTest.php
│ │ │ ├── LookupRef/
│ │ │ │ ├── AddressInternationalTest.php
│ │ │ │ ├── AddressTest.php
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── ChooseColsTest.php
│ │ │ │ ├── ChooseRowsTest.php
│ │ │ │ ├── ChooseTest.php
│ │ │ │ ├── ColumnOnSpreadsheetTest.php
│ │ │ │ ├── ColumnTest.php
│ │ │ │ ├── ColumnsOnSpreadsheetTest.php
│ │ │ │ ├── ColumnsTest.php
│ │ │ │ ├── DropTest.php
│ │ │ │ ├── ExpandTest.php
│ │ │ │ ├── FilterOnSpreadsheetTest.php
│ │ │ │ ├── FilterTest.php
│ │ │ │ ├── FormulaTextTest.php
│ │ │ │ ├── HLookupTest.php
│ │ │ │ ├── HStackTest.php
│ │ │ │ ├── HyperlinkTest.php
│ │ │ │ ├── IndexOnSpreadsheetTest.php
│ │ │ │ ├── IndexTest.php
│ │ │ │ ├── IndirectInternationalTest.php
│ │ │ │ ├── IndirectMissingCellTest.php
│ │ │ │ ├── IndirectTest.php
│ │ │ │ ├── LookupTest.php
│ │ │ │ ├── MatchTest.php
│ │ │ │ ├── MatrixHelperFunctionsTest.php
│ │ │ │ ├── OffsetTest.php
│ │ │ │ ├── RowOnSpreadsheetTest.php
│ │ │ │ ├── RowTest.php
│ │ │ │ ├── RowsOnSpreadsheetTest.php
│ │ │ │ ├── RowsTest.php
│ │ │ │ ├── SortBetterTest.php
│ │ │ │ ├── SortByBetterTest.php
│ │ │ │ ├── SortByTest.php
│ │ │ │ ├── SortTest.php
│ │ │ │ ├── TakeTest.php
│ │ │ │ ├── TocolTest.php
│ │ │ │ ├── TorowTest.php
│ │ │ │ ├── TransposeOnSpreadsheetTest.php
│ │ │ │ ├── TransposeTest.php
│ │ │ │ ├── UniqueTest.php
│ │ │ │ ├── VLookupTest.php
│ │ │ │ └── VStackTest.php
│ │ │ ├── MathTrig/
│ │ │ │ ├── AbsTest.php
│ │ │ │ ├── AcosTest.php
│ │ │ │ ├── AcoshTest.php
│ │ │ │ ├── AcotTest.php
│ │ │ │ ├── AcothTest.php
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── ArabicTest.php
│ │ │ │ ├── AsinTest.php
│ │ │ │ ├── AsinhTest.php
│ │ │ │ ├── Atan2Test.php
│ │ │ │ ├── AtanTest.php
│ │ │ │ ├── AtanhTest.php
│ │ │ │ ├── BaseTest.php
│ │ │ │ ├── CeilingMathTest.php
│ │ │ │ ├── CeilingPreciseTest.php
│ │ │ │ ├── CeilingTest.php
│ │ │ │ ├── CombinATest.php
│ │ │ │ ├── CombinTest.php
│ │ │ │ ├── CosTest.php
│ │ │ │ ├── CoshTest.php
│ │ │ │ ├── CotTest.php
│ │ │ │ ├── CothTest.php
│ │ │ │ ├── CscTest.php
│ │ │ │ ├── CschTest.php
│ │ │ │ ├── DegreesTest.php
│ │ │ │ ├── EvenTest.php
│ │ │ │ ├── ExpTest.php
│ │ │ │ ├── FactDoubleTest.php
│ │ │ │ ├── FactTest.php
│ │ │ │ ├── FloorMathTest.php
│ │ │ │ ├── FloorPreciseTest.php
│ │ │ │ ├── FloorTest.php
│ │ │ │ ├── GcdTest.php
│ │ │ │ ├── IntTest.php
│ │ │ │ ├── LcmTest.php
│ │ │ │ ├── LnTest.php
│ │ │ │ ├── Log10Test.php
│ │ │ │ ├── LogTest.php
│ │ │ │ ├── MInverseTest.php
│ │ │ │ ├── MMultTest.php
│ │ │ │ ├── MRoundTest.php
│ │ │ │ ├── MUnitTest.php
│ │ │ │ ├── MdeTermTest.php
│ │ │ │ ├── ModTest.php
│ │ │ │ ├── MultinomialTest.php
│ │ │ │ ├── OddTest.php
│ │ │ │ ├── PiTest.php
│ │ │ │ ├── PowerTest.php
│ │ │ │ ├── ProductTest.php
│ │ │ │ ├── QuotientTest.php
│ │ │ │ ├── RadiansTest.php
│ │ │ │ ├── RandArrayTest.php
│ │ │ │ ├── RandBetweenTest.php
│ │ │ │ ├── RandTest.php
│ │ │ │ ├── RomanTest.php
│ │ │ │ ├── RoundDownTest.php
│ │ │ │ ├── RoundTest.php
│ │ │ │ ├── RoundUpTest.php
│ │ │ │ ├── SecTest.php
│ │ │ │ ├── SechTest.php
│ │ │ │ ├── SequenceTest.php
│ │ │ │ ├── SeriesSumTest.php
│ │ │ │ ├── SignTest.php
│ │ │ │ ├── SinTest.php
│ │ │ │ ├── SinhTest.php
│ │ │ │ ├── SqrtPiTest.php
│ │ │ │ ├── SqrtTest.php
│ │ │ │ ├── SubTotalTest.php
│ │ │ │ ├── SumIfTest.php
│ │ │ │ ├── SumIfsTest.php
│ │ │ │ ├── SumProduct2Test.php
│ │ │ │ ├── SumProductTest.php
│ │ │ │ ├── SumSqTest.php
│ │ │ │ ├── SumTest.php
│ │ │ │ ├── SumX2MY2Test.php
│ │ │ │ ├── SumX2PY2Test.php
│ │ │ │ ├── SumXMY2Test.php
│ │ │ │ ├── TanTest.php
│ │ │ │ ├── TanhTest.php
│ │ │ │ └── TruncTest.php
│ │ │ ├── Statistical/
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── AveDevTest.php
│ │ │ │ ├── AverageATest.php
│ │ │ │ ├── AverageIf2Test.php
│ │ │ │ ├── AverageIfTest.php
│ │ │ │ ├── AverageIfsTest.php
│ │ │ │ ├── AverageTest.php
│ │ │ │ ├── BetaDistTest.php
│ │ │ │ ├── BetaInvTest.php
│ │ │ │ ├── BinomDistRangeTest.php
│ │ │ │ ├── BinomDistTest.php
│ │ │ │ ├── BinomInvTest.php
│ │ │ │ ├── ChiDistLeftTailTest.php
│ │ │ │ ├── ChiDistRightTailTest.php
│ │ │ │ ├── ChiInvLeftTailTest.php
│ │ │ │ ├── ChiInvRightTailTest.php
│ │ │ │ ├── ChiTestTest.php
│ │ │ │ ├── ConfidenceTest.php
│ │ │ │ ├── CorrelTest.php
│ │ │ │ ├── CountATest.php
│ │ │ │ ├── CountBlankTest.php
│ │ │ │ ├── CountIfTest.php
│ │ │ │ ├── CountIfsTest.php
│ │ │ │ ├── CountTest.php
│ │ │ │ ├── CovarTest.php
│ │ │ │ ├── DevSqTest.php
│ │ │ │ ├── ExponDistTest.php
│ │ │ │ ├── FDistTest.php
│ │ │ │ ├── FisherInvTest.php
│ │ │ │ ├── FisherTest.php
│ │ │ │ ├── ForecastTest.php
│ │ │ │ ├── GammaDistTest.php
│ │ │ │ ├── GammaInvTest.php
│ │ │ │ ├── GammaLnTest.php
│ │ │ │ ├── GammaTest.php
│ │ │ │ ├── GaussTest.php
│ │ │ │ ├── GeoMeanTest.php
│ │ │ │ ├── GrowthTest.php
│ │ │ │ ├── HarMeanTest.php
│ │ │ │ ├── HypGeomDistTest.php
│ │ │ │ ├── InterceptTest.php
│ │ │ │ ├── KurtTest.php
│ │ │ │ ├── LargeTest.php
│ │ │ │ ├── LinEstTest.php
│ │ │ │ ├── LogEstTest.php
│ │ │ │ ├── LogInvTest.php
│ │ │ │ ├── LogNormDist2Test.php
│ │ │ │ ├── LogNormDistTest.php
│ │ │ │ ├── MaxATest.php
│ │ │ │ ├── MaxIfsTest.php
│ │ │ │ ├── MaxTest.php
│ │ │ │ ├── MedianTest.php
│ │ │ │ ├── MinATest.php
│ │ │ │ ├── MinIfsTest.php
│ │ │ │ ├── MinTest.php
│ │ │ │ ├── ModeTest.php
│ │ │ │ ├── NegBinomDistTest.php
│ │ │ │ ├── NormDistTest.php
│ │ │ │ ├── NormInvTest.php
│ │ │ │ ├── NormSDist2Test.php
│ │ │ │ ├── NormSDistTest.php
│ │ │ │ ├── NormSInvTest.php
│ │ │ │ ├── PercentRankTest.php
│ │ │ │ ├── PercentileTest.php
│ │ │ │ ├── PermutTest.php
│ │ │ │ ├── PermutationATest.php
│ │ │ │ ├── PoissonTest.php
│ │ │ │ ├── QuartileTest.php
│ │ │ │ ├── RankTest.php
│ │ │ │ ├── RsqTest.php
│ │ │ │ ├── SkewTest.php
│ │ │ │ ├── SlopeTest.php
│ │ │ │ ├── SmallTest.php
│ │ │ │ ├── StDevATest.php
│ │ │ │ ├── StDevPATest.php
│ │ │ │ ├── StDevPTest.php
│ │ │ │ ├── StDevTest.php
│ │ │ │ ├── StandardizeTest.php
│ │ │ │ ├── SteyxTest.php
│ │ │ │ ├── TDist2TTest.php
│ │ │ │ ├── TDistRTTest.php
│ │ │ │ ├── TDistTest.php
│ │ │ │ ├── TDotInvDot2TTest.php
│ │ │ │ ├── TDotInvTest.php
│ │ │ │ ├── TdotDistFalseTest.php
│ │ │ │ ├── TdotDistTrueTest.php
│ │ │ │ ├── TinvTest.php
│ │ │ │ ├── TrendTest.php
│ │ │ │ ├── TrimMeanTest.php
│ │ │ │ ├── VarATest.php
│ │ │ │ ├── VarPATest.php
│ │ │ │ ├── VarPTest.php
│ │ │ │ ├── VarTest.php
│ │ │ │ ├── WeibullTest.php
│ │ │ │ └── ZTestTest.php
│ │ │ ├── TextData/
│ │ │ │ ├── AllSetupTeardown.php
│ │ │ │ ├── ArrayToTextTest.php
│ │ │ │ ├── BahtTest.php
│ │ │ │ ├── CharNonPrintableTest.php
│ │ │ │ ├── CharTest.php
│ │ │ │ ├── CleanTest.php
│ │ │ │ ├── CodeTest.php
│ │ │ │ ├── ConcatTest.php
│ │ │ │ ├── ConcatenateGnumericTest.php
│ │ │ │ ├── ConcatenateRangeTest.php
│ │ │ │ ├── ConcatenateTest.php
│ │ │ │ ├── DollarTest.php
│ │ │ │ ├── ErrorPropagationTest.php
│ │ │ │ ├── ExactTest.php
│ │ │ │ ├── FindTest.php
│ │ │ │ ├── FixedTest.php
│ │ │ │ ├── LeftTest.php
│ │ │ │ ├── LenTest.php
│ │ │ │ ├── LowerTest.php
│ │ │ │ ├── MidTest.php
│ │ │ │ ├── NumberValueTest.php
│ │ │ │ ├── OpenOfficeTest.php
│ │ │ │ ├── ProperTest.php
│ │ │ │ ├── ReplaceTest.php
│ │ │ │ ├── ReptTest.php
│ │ │ │ ├── RightTest.php
│ │ │ │ ├── SearchTest.php
│ │ │ │ ├── SubstituteTest.php
│ │ │ │ ├── TTest.php
│ │ │ │ ├── TextAfterTest.php
│ │ │ │ ├── TextBeforeTest.php
│ │ │ │ ├── TextJoinTest.php
│ │ │ │ ├── TextSplitTest.php
│ │ │ │ ├── TextTest.php
│ │ │ │ ├── TrimTest.php
│ │ │ │ ├── UnicharTest.php
│ │ │ │ ├── UnicodeTest.php
│ │ │ │ ├── UpperTest.php
│ │ │ │ ├── ValueTest.php
│ │ │ │ └── ValueToTextTest.php
│ │ │ └── Web/
│ │ │ ├── UrlEncodeTest.php
│ │ │ └── WebServiceTest.php
│ │ ├── FunctionsTest.php
│ │ ├── InternalFunctionsTest.php
│ │ ├── Issue4451Test.php
│ │ ├── Issue4656Test.php
│ │ ├── Issue606Test.php
│ │ ├── MergedCellTest.php
│ │ ├── MissingArgumentsTest.php
│ │ ├── NullEqualsZeroTest.php
│ │ ├── ParseFormulaTest.php
│ │ ├── RefErrorTest.php
│ │ ├── RowColumnReferenceTest.php
│ │ ├── StringLengthTest.php
│ │ ├── StructuredReferenceFormulaTest.php
│ │ ├── TranslationTest.php
│ │ └── XlfnFunctionsTest.php
│ ├── Cell/
│ │ ├── AddressHelperTest.php
│ │ ├── AddressRangeTest.php
│ │ ├── AdvancedValueBinderTest.php
│ │ ├── CellAddressTest.php
│ │ ├── CellArrayFormulaTest.php
│ │ ├── CellDetachTest.php
│ │ ├── CellFormulaTest.php
│ │ ├── CellRangeTest.php
│ │ ├── CellTest.php
│ │ ├── ColumnRangeTest.php
│ │ ├── ConvertSpecialArrayTest.php
│ │ ├── CoordinateTest.php
│ │ ├── DataType2Test.php
│ │ ├── DataTypeTest.php
│ │ ├── DataValidationTest.php
│ │ ├── DataValidator2Test.php
│ │ ├── DataValidator3Test.php
│ │ ├── DataValidatorTest.php
│ │ ├── DefaultValueBinderTest.php
│ │ ├── Hyperlink2Test.php
│ │ ├── HyperlinkTest.php
│ │ ├── RowRangeTest.php
│ │ ├── SetValueExplicitCellTest.php
│ │ ├── StringValueBinder2Test.php
│ │ ├── StringValueBinderTest.php
│ │ ├── StringableObject.php
│ │ └── ValueBinderWithOverriddenDataTypeForValue.php
│ ├── CellReferenceHelperTest.php
│ ├── Chart/
│ │ ├── AxisGlowTest.php
│ │ ├── AxisPropertiesTest.php
│ │ ├── AxisShadowTest.php
│ │ ├── BarChartCustomColorsTest.php
│ │ ├── ChartBorderTest.php
│ │ ├── ChartCloneTest.php
│ │ ├── ChartMethodTest.php
│ │ ├── Charts32CatAxValAxTest.php
│ │ ├── Charts32ColoredAxisLabelTest.php
│ │ ├── Charts32DsvGlowTest.php
│ │ ├── Charts32DsvLabelsTest.php
│ │ ├── Charts32ScatterTest.php
│ │ ├── Charts32XmlTest.php
│ │ ├── ChartsByNameTest.php
│ │ ├── ChartsDynamicTitleTest.php
│ │ ├── ChartsOpenpyxlTest.php
│ │ ├── ChartsTitleTest.php
│ │ ├── ColorTest.php
│ │ ├── DataSeriesColorTest.php
│ │ ├── DataSeriesValues2Test.php
│ │ ├── DataSeriesValuesTest.php
│ │ ├── DisplayBlanksAsTest.php
│ │ ├── GridlinesLineStyleTest.php
│ │ ├── GridlinesShadowGlowTest.php
│ │ ├── Issue2077Test.php
│ │ ├── Issue2506Test.php
│ │ ├── Issue2931Test.php
│ │ ├── Issue2965Test.php
│ │ ├── Issue316Test.php
│ │ ├── Issue3397Test.php
│ │ ├── Issue3833Test.php
│ │ ├── Issue4201Test.php
│ │ ├── Issue562Test.php
│ │ ├── Issue589Test.php
│ │ ├── LayoutEffectsTest.php
│ │ ├── LayoutTest.php
│ │ ├── LegendColorTest.php
│ │ ├── LegendTest.php
│ │ ├── LineStylesTest.php
│ │ ├── MultiplierTest.php
│ │ ├── PR3163Test.php
│ │ ├── PieFillTest.php
│ │ ├── PlotAreaTest.php
│ │ ├── RenderTest.php
│ │ ├── RoundedCornersTest.php
│ │ ├── ShadowPresetsTest.php
│ │ ├── TitleTest.php
│ │ └── TrendLineTest.php
│ ├── Collection/
│ │ ├── Cells2Test.php
│ │ ├── CellsTest.php
│ │ └── SimpleCache3xxx.php
│ ├── CommentTest.php
│ ├── Custom/
│ │ └── ComplexAssert.php
│ ├── CustomReader.php
│ ├── CustomWriter.php
│ ├── DefinedNameFormulaTest.php
│ ├── DefinedNameTest.php
│ ├── Document/
│ │ ├── EpochTest.php
│ │ ├── PropertiesTest.php
│ │ └── SecurityTest.php
│ ├── DocumentGeneratorTest.php
│ ├── Features/
│ │ └── AutoFilter/
│ │ └── Xlsx/
│ │ └── BasicLoadTest.php
│ ├── FloatImprecisionTest.php
│ ├── Functional/
│ │ ├── AbstractFunctional.php
│ │ ├── ActiveSheetTest.php
│ │ ├── ArrayFunctionsCellTest.php
│ │ ├── ArrayFunctionsSpillTest.php
│ │ ├── ColumnWidthTest.php
│ │ ├── CommentsTest.php
│ │ ├── ConditionalStopIfTrueTest.php
│ │ ├── ConditionalTextTest.php
│ │ ├── DrawingImageHyperlinkTest.php
│ │ ├── EnclosureTest.php
│ │ ├── FreezePaneTest.php
│ │ ├── MergedCellsTest.php
│ │ ├── PrintAreaTest.php
│ │ ├── ReadBlankCellsTest.php
│ │ ├── ReadFilterFilter.php
│ │ ├── ReadFilterTest.php
│ │ ├── SelectedCellsTest.php
│ │ ├── StreamTest.php
│ │ ├── TypeAttributePreservationTest.php
│ │ └── WorkbookViewAttributesTest.php
│ ├── HashTableTest.php
│ ├── Helper/
│ │ ├── DimensionTest.php
│ │ ├── HandlerTest.php
│ │ ├── HtmlTest.php
│ │ ├── SampleCoverageTest.php
│ │ ├── SampleTest.php
│ │ ├── TextGridExtended.php
│ │ └── TextGridTest.php
│ ├── IOFactoryRegisterTest.php
│ ├── IOFactoryTest.php
│ ├── Issue1449Test.php
│ ├── Issue4521Test.php
│ ├── NamedFormulaTest.php
│ ├── NamedRange2Test.php
│ ├── NamedRange3Test.php
│ ├── NamedRangeTest.php
│ ├── Reader/
│ │ ├── BaseNoLoad.php
│ │ ├── BaseNoLoadTest.php
│ │ ├── CreateBlankSheetIfNoneReadTest.php
│ │ ├── Csv/
│ │ │ ├── BinderTest.php
│ │ │ ├── CsvCallbackTest.php
│ │ │ ├── CsvContiguousFilter.php
│ │ │ ├── CsvContiguousTest.php
│ │ │ ├── CsvEncodingTest.php
│ │ │ ├── CsvIssue2232Test.php
│ │ │ ├── CsvIssue2840Test.php
│ │ │ ├── CsvLineEndingTest.php
│ │ │ ├── CsvLoadFromStringTest.php
│ │ │ ├── CsvNumberFormatLocaleTest.php
│ │ │ ├── CsvNumberFormatTest.php
│ │ │ ├── CsvTest.php
│ │ │ ├── NotHtmlTest.php
│ │ │ └── Php9Test.php
│ │ ├── Gnumeric/
│ │ │ ├── ArrayFormula2Test.php
│ │ │ ├── ArrayFormulaTest.php
│ │ │ ├── AutoFilterTest.php
│ │ │ ├── DefinedNameTest.php
│ │ │ ├── GnumericFilter.php
│ │ │ ├── GnumericInfoTest.php
│ │ │ ├── GnumericLoadTest.php
│ │ │ ├── GnumericStylesTest.php
│ │ │ ├── HiddenWorksheetTest.php
│ │ │ └── PageSetupTest.php
│ │ ├── Html/
│ │ │ ├── BinderTest.php
│ │ │ ├── DataFormulaTest.php
│ │ │ ├── DirectionTest.php
│ │ │ ├── HtmlBorderTest.php
│ │ │ ├── HtmlCharsetTest.php
│ │ │ ├── HtmlExtend.php
│ │ │ ├── HtmlHelper.php
│ │ │ ├── HtmlImage2Test.php
│ │ │ ├── HtmlImageTest.php
│ │ │ ├── HtmlLibxmlTest.php
│ │ │ ├── HtmlLoadStringTest.php
│ │ │ ├── HtmlPhpunit10Test.php
│ │ │ ├── HtmlTagsTest.php
│ │ │ ├── HtmlTest.php
│ │ │ ├── Issue1107Test.php
│ │ │ ├── Issue1284Test.php
│ │ │ ├── Issue2029Test.php
│ │ │ ├── Issue2810Test.php
│ │ │ ├── Issue2942Test.php
│ │ │ ├── OpacityTest.php
│ │ │ ├── StyleCheckBoxTest.php
│ │ │ └── ViewportTest.php
│ │ ├── Ods/
│ │ │ ├── AlignmentStyleTest.php
│ │ │ ├── ArrayFormulaTest.php
│ │ │ ├── ArrayTest.php
│ │ │ ├── AutoFilterTest.php
│ │ │ ├── BooleanDataTest.php
│ │ │ ├── BorderStyleTest.php
│ │ │ ├── CeilingFloorTest.php
│ │ │ ├── ColGroupTest.php
│ │ │ ├── CurrencyTest.php
│ │ │ ├── DefinedNamesTest.php
│ │ │ ├── EmptyFileTest.php
│ │ │ ├── FontStyleTest.php
│ │ │ ├── FormulaTranslatorTest.php
│ │ │ ├── HiddenMergeCellsTest.php
│ │ │ ├── HiddenWorksheetTest.php
│ │ │ ├── HyperlinkTest.php
│ │ │ ├── InvalidFileTest.php
│ │ │ ├── Issue2810Test.php
│ │ │ ├── Issue3721Test.php
│ │ │ ├── Issue4099Test.php
│ │ │ ├── Issue4435Test.php
│ │ │ ├── Issue804Test.php
│ │ │ ├── MergeRangeTest.php
│ │ │ ├── MultiLineCommentTest.php
│ │ │ ├── NestedTableRowTest.php
│ │ │ ├── NumberFormatCallbackTest.php
│ │ │ ├── OdsInfoTest.php
│ │ │ ├── OdsPropertiesTest.php
│ │ │ ├── OdsTest.php
│ │ │ ├── OldCalculatedTest.php
│ │ │ ├── PageSetupBug1772Test.php
│ │ │ ├── PageSetupTest.php
│ │ │ ├── ProtectionStyleTest.php
│ │ │ ├── RepeatEmptyCellsAndRowsTest.php
│ │ │ └── RepeatedColumnsTest.php
│ │ ├── Security/
│ │ │ └── XmlScannerTest.php
│ │ ├── Slk/
│ │ │ ├── BinderTest.php
│ │ │ ├── SlkCommentsTest.php
│ │ │ ├── SlkSharedFormulasTest.php
│ │ │ └── SlkTest.php
│ │ ├── Utility/
│ │ │ └── File.php
│ │ ├── Xls/
│ │ │ ├── Biff8CoverTest.php
│ │ │ ├── ColorMapTest.php
│ │ │ ├── ColourTest.php
│ │ │ ├── ConditionalBorderTest.php
│ │ │ ├── ConditionalFormattingBasicTest.php
│ │ │ ├── ConditionalFormattingExpressionTest.php
│ │ │ ├── ConditionalItalicTest.php
│ │ │ ├── DataValidationTest.php
│ │ │ ├── DateReaderTest.php
│ │ │ ├── DefinedNameTest.php
│ │ │ ├── ErrorCodeMapTest.php
│ │ │ ├── FormulasTest.php
│ │ │ ├── HiddenMergeCellsTest.php
│ │ │ ├── HiddenWorksheetTest.php
│ │ │ ├── InfoNamesTest.php
│ │ │ ├── IsOddTest.php
│ │ │ ├── Issue2463Test.php
│ │ │ ├── Issue3202Test.php
│ │ │ ├── Issue4356Test.php
│ │ │ ├── LoadSheetsOnlyTest.php
│ │ │ ├── Md5Test.php
│ │ │ ├── NonExistentFileTest.php
│ │ │ ├── NumberFormatGeneralTest.php
│ │ │ ├── PageBreakTest.php
│ │ │ ├── PageSetupTest.php
│ │ │ ├── PasswordTest.php
│ │ │ ├── Pr607Test.php
│ │ │ ├── Rc4Test.php
│ │ │ ├── RichTextSizeTest.php
│ │ │ ├── SheetProtectionTest.php
│ │ │ ├── WholeRowAndColumnTest.php
│ │ │ ├── XlsBugPr3734Test.php
│ │ │ ├── XlsSpecialCodePage.php
│ │ │ └── XlsTest.php
│ │ ├── Xlsx/
│ │ │ ├── AbsolutePathTest.php
│ │ │ ├── AlignmentTest.php
│ │ │ ├── ApostropheTest.php
│ │ │ ├── AutoFilter2Test.php
│ │ │ ├── AutoFilterEvaluateTest.php
│ │ │ ├── AutoFilterTest.php
│ │ │ ├── ChartSheetTest.php
│ │ │ ├── ColorTabTest.php
│ │ │ ├── CommentTest.php
│ │ │ ├── CondNumFmtTest.php
│ │ │ ├── ConditionalBorderTest.php
│ │ │ ├── ConditionalColorScaleTest.php
│ │ │ ├── ConditionalFormattingDataBarXlsxTest.php
│ │ │ ├── ConditionalIconSetTest.php
│ │ │ ├── ConditionalNoFormatSetTest.php
│ │ │ ├── ConditionalPriority2Test.php
│ │ │ ├── ConditionalPriorityTest.php
│ │ │ ├── ConditionalTest.php
│ │ │ ├── CoverageGapsTest.php
│ │ │ ├── DataValidationBooleanValueTest.php
│ │ │ ├── DataValidationTest.php
│ │ │ ├── DateReaderTest.php
│ │ │ ├── DefaultFillTest.php
│ │ │ ├── DefaultFontTest.php
│ │ │ ├── DirectorySeparatorTest.php
│ │ │ ├── DrawingInCellTest.php
│ │ │ ├── DrawingOneCellAnchorTest.php
│ │ │ ├── EmptyFileTest.php
│ │ │ ├── ExplicitDateTest.php
│ │ │ ├── GridlinesTest.php
│ │ │ ├── GroupByLimitedTest.php
│ │ │ ├── HiddenMergeCellsTest.php
│ │ │ ├── HiddenWorksheetTest.php
│ │ │ ├── HyperlinkTest.php
│ │ │ ├── IgnoredErrorTest.php
│ │ │ ├── InvalidFileTest.php
│ │ │ ├── Issue1482Test.php
│ │ │ ├── Issue1637Test.php
│ │ │ ├── Issue2301Test.php
│ │ │ ├── Issue2331Test.php
│ │ │ ├── Issue2362Test.php
│ │ │ ├── Issue2387Test.php
│ │ │ ├── Issue2450Test.php
│ │ │ ├── Issue2488Test.php
│ │ │ ├── Issue2490Test.php
│ │ │ ├── Issue2494Test.php
│ │ │ ├── Issue2501Test.php
│ │ │ ├── Issue2516Test.php
│ │ │ ├── Issue2542Test.php
│ │ │ ├── Issue2581Test.php
│ │ │ ├── Issue2778Test.php
│ │ │ ├── Issue2885Test.php
│ │ │ ├── Issue3126Test.php
│ │ │ ├── Issue3145Test.php
│ │ │ ├── Issue3277Test.php
│ │ │ ├── Issue3435Test.php
│ │ │ ├── Issue3464Test.php
│ │ │ ├── Issue3495Test.php
│ │ │ ├── Issue3534Test.php
│ │ │ ├── Issue3552Test.php
│ │ │ ├── Issue3553Test.php
│ │ │ ├── Issue3613Test.php
│ │ │ ├── Issue3665Test.php
│ │ │ ├── Issue3679ImgTest.php
│ │ │ ├── Issue3720Test.php
│ │ │ ├── Issue3730Test.php
│ │ │ ├── Issue3767Test.php
│ │ │ ├── Issue3770Test.php
│ │ │ ├── Issue3807Test.php
│ │ │ ├── Issue3863Test.php
│ │ │ ├── Issue3982Test.php
│ │ │ ├── Issue4039Test.php
│ │ │ ├── Issue4049Test.php
│ │ │ ├── Issue4063Test.php
│ │ │ ├── Issue4248Test.php
│ │ │ ├── Issue4356Test.php
│ │ │ ├── Issue4375Test.php
│ │ │ ├── Issue4415Test.php
│ │ │ ├── Issue4416Filter.php
│ │ │ ├── Issue4416Test.php
│ │ │ ├── Issue4477Test.php
│ │ │ ├── Issue4505Test.php
│ │ │ ├── Issue4629Test.php
│ │ │ ├── Issue4800Test.php
│ │ │ ├── Issue731Test.php
│ │ │ ├── LoadSheetsOnlyTest.php
│ │ │ ├── MySpreadsheet.php
│ │ │ ├── MyXlsxReader.php
│ │ │ ├── MyXlsxTest.php
│ │ │ ├── NamedRangeTest.php
│ │ │ ├── NamespaceIssue2109bTest.php
│ │ │ ├── NamespaceNonStdTest.php
│ │ │ ├── NamespaceOpenpyxl35Test.php
│ │ │ ├── NamespacePurlTest.php
│ │ │ ├── NamespaceStdTest.php
│ │ │ ├── NumericCellTypeTest.php
│ │ │ ├── OctothorpeTest.php
│ │ │ ├── OddColumnReadFilter.php
│ │ │ ├── OutlineTest.php
│ │ │ ├── PageSetup2Test.php
│ │ │ ├── PageSetupTest.php
│ │ │ ├── PropertiesTest.php
│ │ │ ├── ReadDynamTest.php
│ │ │ ├── RgbTintTest.php
│ │ │ ├── RibbonTest.php
│ │ │ ├── RichTextTest.php
│ │ │ ├── RowBreakTest.php
│ │ │ ├── SharedFormulaTest.php
│ │ │ ├── SharedFormulaeTest.php
│ │ │ ├── SheetProtectionTest.php
│ │ │ ├── SheetsXlsxChartTest.php
│ │ │ ├── SplitsTest.php
│ │ │ ├── TableTest.php
│ │ │ ├── URLImageTest.php
│ │ │ ├── UnderscoreTest.php
│ │ │ ├── VerticalAlignTest.php
│ │ │ ├── VmlTest.php
│ │ │ ├── WorksheetInfoNamesTest.php
│ │ │ ├── Xlsx2Test.php
│ │ │ ├── XlsxRootZipFilesTest.php
│ │ │ └── XlsxTest.php
│ │ └── Xml/
│ │ ├── ArrayFormulaTest.php
│ │ ├── DataValidationsTest.php
│ │ ├── HtmlEntitiesLoadTest.php
│ │ ├── Issue4448Test.php
│ │ ├── PageSetupTest.php
│ │ ├── ReadOrderTest.php
│ │ ├── SplitsTest.php
│ │ ├── XmlActiveSheetTest.php
│ │ ├── XmlColSpanTest.php
│ │ ├── XmlColumnRowHiddenTest.php
│ │ ├── XmlFilter.php
│ │ ├── XmlFontBoldItalicTest.php
│ │ ├── XmlFreezePanesTest.php
│ │ ├── XmlInfoTest.php
│ │ ├── XmlIssue4000Test.php
│ │ ├── XmlIssue4002Test.php
│ │ ├── XmlLoadTest.php
│ │ ├── XmlOddTest.php
│ │ ├── XmlPropertiesTest.php
│ │ ├── XmlProtectionTest.php
│ │ ├── XmlRichTextTest.php
│ │ ├── XmlStyleCoverageTest.php
│ │ ├── XmlStylesTest.php
│ │ ├── XmlTest.php
│ │ └── XmlTopLeftTest.php
│ ├── RefRangeTest.php
│ ├── ReferenceHelper2Test.php
│ ├── ReferenceHelper3Test.php
│ ├── ReferenceHelper4Test.php
│ ├── ReferenceHelper5Test.php
│ ├── ReferenceHelperDVTest.php
│ ├── ReferenceHelperTest.php
│ ├── RichTextTest.php
│ ├── SettingsTest.php
│ ├── Shared/
│ │ ├── CodePageTest.php
│ │ ├── Date2Test.php
│ │ ├── DateTest.php
│ │ ├── DgContainerTest.php
│ │ ├── DggContainerTest.php
│ │ ├── DrawingTest.php
│ │ ├── ExactFontTest.php
│ │ ├── FileTest.php
│ │ ├── Font2Test.php
│ │ ├── Font3Test.php
│ │ ├── FontFileNameTest.php
│ │ ├── FontTest.php
│ │ ├── Issue1324Test.php
│ │ ├── Issue347Test.php
│ │ ├── Issue4696Test.php
│ │ ├── OLEPhpunit10Test.php
│ │ ├── OLEReadTest.php
│ │ ├── OLETest.php
│ │ ├── PasswordHasherTest.php
│ │ ├── PasswordReloadTest.php
│ │ ├── SpgrContainerTest.php
│ │ ├── StringHelperInvalidCharTest.php
│ │ ├── StringHelperLocale2Test.php
│ │ ├── StringHelperLocaleTest.php
│ │ ├── StringHelperNoIconv.php
│ │ ├── StringHelperNoIconv2.php
│ │ ├── StringHelperNoIconv3.php
│ │ ├── StringHelperNoIntl.php
│ │ ├── StringHelperTest.php
│ │ ├── TimeZoneTest.php
│ │ ├── Trend/
│ │ │ ├── BestFitTest.php
│ │ │ ├── ExponentialBestFitTest.php
│ │ │ └── LinearBestFitTest.php
│ │ ├── XMLWriterNoUri.php
│ │ ├── XlsTest.php
│ │ └── XmlWriterTest.php
│ ├── SpreadsheetCopyCloneTest.php
│ ├── SpreadsheetCoverageTest.php
│ ├── SpreadsheetDuplicateSheetTest.php
│ ├── SpreadsheetSerializeTest.php
│ ├── SpreadsheetTest.php
│ ├── Style/
│ │ ├── AlignmentMiddleTest.php
│ │ ├── AlignmentTest.php
│ │ ├── BorderRangeTest.php
│ │ ├── BorderTest.php
│ │ ├── ColorIndexTest.php
│ │ ├── ColorTest.php
│ │ ├── ConditionalBoolTest.php
│ │ ├── ConditionalFormatting/
│ │ │ ├── CellMatcherTest.php
│ │ │ ├── PR3946Test.php
│ │ │ └── Wizard/
│ │ │ ├── BlankWizardTest.php
│ │ │ ├── CellValueWizardTest.php
│ │ │ ├── DateValueWizardTest.php
│ │ │ ├── DuplicatesWizardTest.php
│ │ │ ├── ErrorWizardTest.php
│ │ │ ├── ExpressionWizardTest.php
│ │ │ ├── TextValueWizardTest.php
│ │ │ └── WizardFactoryTest.php
│ │ ├── ConditionalTest.php
│ │ ├── ExportArrayTest.php
│ │ ├── FillTest.php
│ │ ├── FontTest.php
│ │ ├── NumberFormat/
│ │ │ └── Wizard/
│ │ │ ├── AccountingTest.php
│ │ │ ├── CurrencyTest.php
│ │ │ ├── DateTest.php
│ │ │ ├── DateTimeTest.php
│ │ │ ├── DurationTest.php
│ │ │ ├── NumberBase2.php
│ │ │ ├── NumberTest.php
│ │ │ ├── PercentageTest.php
│ │ │ ├── ScientificTest.php
│ │ │ └── TimeTest.php
│ │ ├── NumberFormatBuiltinTest.php
│ │ ├── NumberFormatFractionalSecondTest.php
│ │ ├── NumberFormatRoundTest.php
│ │ ├── NumberFormatSystemDateTimeTest.php
│ │ ├── NumberFormatTest.php
│ │ ├── ReplaceBuiltinNumberFormatTest.php
│ │ └── StyleTest.php
│ ├── Worksheet/
│ │ ├── ApplyStylesTest.php
│ │ ├── AutoFilter/
│ │ │ ├── AutoFilterAverageTop10Test.php
│ │ │ ├── AutoFilterCustomNumericTest.php
│ │ │ ├── AutoFilterCustomTextTest.php
│ │ │ ├── AutoFilterMonthTest.php
│ │ │ ├── AutoFilterQuarterTest.php
│ │ │ ├── AutoFilterTest.php
│ │ │ ├── AutoFilterTodayTest.php
│ │ │ ├── AutoFilterWeekTest.php
│ │ │ ├── AutoFilterYearTest.php
│ │ │ ├── ColumnTest.php
│ │ │ ├── DateGroupTest.php
│ │ │ ├── DeleteAutoFilterTest.php
│ │ │ ├── RuleCustomTest.php
│ │ │ ├── RuleDateGroupTest.php
│ │ │ ├── RuleTest.php
│ │ │ └── SetupTeardown.php
│ │ ├── AutoSizeTest.php
│ │ ├── ByColumnAndRowTest.php
│ │ ├── ByColumnAndRowUndeprecatedTest.php
│ │ ├── CloneTest.php
│ │ ├── ColumnCellIterator2Test.php
│ │ ├── ColumnCellIteratorTest.php
│ │ ├── ColumnDimension2Test.php
│ │ ├── ColumnDimension3Test.php
│ │ ├── ColumnDimensionTest.php
│ │ ├── ColumnIteratorEmptyTest.php
│ │ ├── ColumnIteratorTest.php
│ │ ├── ColumnRowStyleTest.php
│ │ ├── ColumnTest.php
│ │ ├── ConditionalIntersectionTest.php
│ │ ├── ConditionalStyleTest.php
│ │ ├── CopyCellsTest.php
│ │ ├── DefaultPaperSizeTest.php
│ │ ├── DrawingTest.php
│ │ ├── InsertTest.php
│ │ ├── Issue1203Test.php
│ │ ├── Issue1425Test.php
│ │ ├── Issue1457Test.php
│ │ ├── Issue4112Test.php
│ │ ├── Issue4128Test.php
│ │ ├── Issue4241Test.php
│ │ ├── Issue641Test.php
│ │ ├── IteratorTest.php
│ │ ├── MemoryDrawing2.php
│ │ ├── MemoryDrawingTest.php
│ │ ├── MergeBehaviourTest.php
│ │ ├── MergeCellsDeletedTest.php
│ │ ├── PageBreakTest.php
│ │ ├── PageMarginsTest.php
│ │ ├── PrintAreaTest.php
│ │ ├── ProtectedRangeTest.php
│ │ ├── Protection2Test.php
│ │ ├── ProtectionTest.php
│ │ ├── RemoveTest.php
│ │ ├── RowCellIterator2Test.php
│ │ ├── RowCellIteratorTest.php
│ │ ├── RowDimensionSaveTest.php
│ │ ├── RowDimensionTest.php
│ │ ├── RowIteratorEmptyTest.php
│ │ ├── RowIteratorTest.php
│ │ ├── RowTest.php
│ │ ├── SetValueExplicitWorksheetTest.php
│ │ ├── SheetViewTest.php
│ │ ├── Table/
│ │ │ ├── ColumnTest.php
│ │ │ ├── FormulaTest.php
│ │ │ ├── Issue3635Test.php
│ │ │ ├── Issue3659Test.php
│ │ │ ├── Issue3820Test.php
│ │ │ ├── RemoveTableTest.php
│ │ │ ├── SetupTeardown.php
│ │ │ ├── TableStyleTest.php
│ │ │ └── TableTest.php
│ │ ├── ToArrayOldCalculatedValueTest.php
│ │ ├── ToArrayTest.php
│ │ ├── Worksheet2Test.php
│ │ ├── Worksheet3Test.php
│ │ ├── WorksheetNamedRangesTest.php
│ │ ├── WorksheetParentTest.php
│ │ └── WorksheetTest.php
│ └── Writer/
│ ├── Csv/
│ │ ├── CsvArrayTest.php
│ │ ├── CsvEnclosureTest.php
│ │ ├── CsvExcelCompatibilityTest.php
│ │ ├── CsvOutputEncodingTest.php
│ │ ├── CsvWriteTest.php
│ │ ├── HyperlinkTest.php
│ │ └── VariableColumnsTest.php
│ ├── Dompdf/
│ │ ├── GridlinesInlineTest.php
│ │ ├── HideMergeTest.php
│ │ ├── HideTest.php
│ │ ├── PaperSizeArrayTest.php
│ │ ├── PrintAreaTest.php
│ │ └── TextRotationTest.php
│ ├── Html/
│ │ ├── AllOrOneSheetTest.php
│ │ ├── BackgroundImageTest.php
│ │ ├── BadCustomPropertyTest.php
│ │ ├── BadHyperlinkBaseTest.php
│ │ ├── BadHyperlinkTest.php
│ │ ├── BetterBooleanTest.php
│ │ ├── CalcErrorTest.php
│ │ ├── CallbackTest.php
│ │ ├── CommentAlignmentTest.php
│ │ ├── DirectionTest.php
│ │ ├── ExtendForChartsAndImagesTest.php
│ │ ├── FixHeightTest.php
│ │ ├── FloatInlineTest.php
│ │ ├── GridlinesInlineTest.php
│ │ ├── GridlinesTest.php
│ │ ├── HideMergeTest.php
│ │ ├── HideTest.php
│ │ ├── HtmlArrayTest.php
│ │ ├── HtmlColourScaleTest.php
│ │ ├── HtmlCommentsTest.php
│ │ ├── HtmlConditionalFormattingTest.php
│ │ ├── HtmlDifferentConditionalFormattingsTest.php
│ │ ├── HtmlExtend2.php
│ │ ├── HtmlNumberFormatTest.php
│ │ ├── HtmlTableFormatTest.php
│ │ ├── HtmlTableFormatWithConditionalTest.php
│ │ ├── ImageCopyTest.php
│ │ ├── ImageEmbedTest.php
│ │ ├── ImagesRootTest.php
│ │ ├── InvalidFileNameTest.php
│ │ ├── Issue1319Test.php
│ │ ├── Issue3678Test.php
│ │ ├── Issue4539Test.php
│ │ ├── Issue4773Test.php
│ │ ├── LineEndingTest.php
│ │ ├── LongTitleTest.php
│ │ ├── MailtoTest.php
│ │ ├── MemoryDrawingOffsetTest.php
│ │ ├── NavigationBadTitleTest.php
│ │ ├── NoJavascriptLinksTest.php
│ │ ├── NoTitleTest.php
│ │ ├── PrintAreaTest.php
│ │ ├── ReadOrderTest.php
│ │ ├── RepeatedRowsTest.php
│ │ ├── RichTextTest.php
│ │ ├── TextRotationTest.php
│ │ ├── TransparentDrawingsTest.php
│ │ ├── VisibilityTest.php
│ │ └── XssVulnerabilityTest.php
│ ├── Mpdf/
│ │ ├── GridlinesInlineTest.php
│ │ ├── HideMergeTest.php
│ │ ├── HideTest.php
│ │ ├── ImageCopyPdfTest.php
│ │ ├── Issue4773Test.php
│ │ ├── MergedBorderTest.php
│ │ ├── OrientationTest.php
│ │ ├── PrintAreaTest.php
│ │ └── TextRotationTest.php
│ ├── Ods/
│ │ ├── ArrayTest.php
│ │ ├── AutoColorTest.php
│ │ ├── AutoFilterTest.php
│ │ ├── ContentTest.php
│ │ ├── DefinedNamesTest.php
│ │ ├── DurationTest.php
│ │ ├── FreezeTest.php
│ │ ├── IndentTest.php
│ │ ├── Issue4537Test.php
│ │ ├── Issue4584Test.php
│ │ ├── Issue4798Test.php
│ │ ├── MergeRangeTest.php
│ │ ├── MicrosecondsTest.php
│ │ └── ReadOrderTest.php
│ ├── PreCalcTest.php
│ ├── RetainSelectedCellsTest.php
│ ├── Tcpdf/
│ │ ├── GridlinesInlineTest.php
│ │ ├── HideMergeTest.php
│ │ ├── HideTest.php
│ │ ├── MergedBorderTest.php
│ │ ├── MergedCellTest.php
│ │ ├── NoDieTest.php
│ │ └── PrintAreaTest.php
│ ├── Xls/
│ │ ├── BooleanLiteralTest.php
│ │ ├── Calendar1904Test.php
│ │ ├── ConditionalFontColorTest.php
│ │ ├── ConditionalLimitsTest.php
│ │ ├── ConditionalUnionTest.php
│ │ ├── DataValidationTest.php
│ │ ├── DimensionsRecordTest.php
│ │ ├── FormulaErrTest.php
│ │ ├── HyperlinkTest.php
│ │ ├── Issue4331Test.php
│ │ ├── Issue4584Test.php
│ │ ├── Issue642Test.php
│ │ ├── Issue918Test.php
│ │ ├── MicrosecondsTest.php
│ │ ├── NonLatinFormulasTest.php
│ │ ├── ParserTest.php
│ │ ├── ReadOrderTest.php
│ │ ├── RichTextTest.php
│ │ ├── Sample19Test.php
│ │ ├── VisibilityTest.php
│ │ ├── WorkbookTest.php
│ │ └── XlsGifBmpTest.php
│ └── Xlsx/
│ ├── ArrayFormulaPrefixTest.php
│ ├── ArrayFormulaValidationTest.php
│ ├── ArrayFunctions2Test.php
│ ├── ArrayFunctionsInlineTest.php
│ ├── ArrayFunctionsTest.php
│ ├── AutoColorTest.php
│ ├── BackgroundImageTest.php
│ ├── BadParamExceptionTest.php
│ ├── CalculationErrorTest.php
│ ├── Calendar1904Test.php
│ ├── CheckBoxStyleTest.php
│ ├── CommentAlignmentTest.php
│ ├── ConditionalFillTest.php
│ ├── ConditionalFormatIconSetTest.php
│ ├── ConditionalTest.php
│ ├── DataValidationTest.php
│ ├── DrawingInCellTest.php
│ ├── DrawingPassThroughTest.php
│ ├── DrawingsInsertRowsTest.php
│ ├── DrawingsTest.php
│ ├── ExplicitStyle0Test.php
│ ├── FloatsRetainedTest.php
│ ├── FontCharsetTest.php
│ ├── FunctionPrefixTest.php
│ ├── HyperlinkTest.php
│ ├── Issue2082Test.php
│ ├── Issue2266Test.php
│ ├── Issue2368Test.php
│ ├── Issue3443Test.php
│ ├── Issue3711Test.php
│ ├── Issue3843Test.php
│ ├── Issue3951Test.php
│ ├── Issue3988Test.php
│ ├── Issue4025Test.php
│ ├── Issue4179Test.php
│ ├── Issue4200Test.php
│ ├── Issue4269Test.php
│ ├── Issue4537Test.php
│ ├── Issue4542Test.php
│ ├── Issue4584Test.php
│ ├── Issue476Test.php
│ ├── Issue484Test.php
│ ├── Issue993Test.php
│ ├── LocaleFloatsTest.php
│ ├── MemoryDrawingTest.php
│ ├── MetadataTest.php
│ ├── MicrosecondsTest.php
│ ├── PageBreakTest.php
│ ├── RichTextTest.php
│ ├── StartsWithHashTest.php
│ ├── StylesWriterTest.php
│ ├── TableTest.php
│ ├── ThemeColorsTest.php
│ ├── ThemeFontsTest.php
│ ├── TransparentDrawingsTest.php
│ ├── Unparsed2396Test.php
│ ├── UnparsedDataCloneTest.php
│ ├── UnparsedDataTest.php
│ ├── VisibilityTest.php
│ └── WmfTest.php
├── bootstrap.php
└── data/
├── Calculation/
│ ├── BinaryComparisonOperations.php
│ ├── Calculation.php
│ ├── DateTime/
│ │ ├── DATE.php
│ │ ├── DATEDIF.php
│ │ ├── DATEVALUE.php
│ │ ├── DAY.php
│ │ ├── DAYOpenOffice.php
│ │ ├── DAYS.php
│ │ ├── DAYS360.php
│ │ ├── EDATE.php
│ │ ├── EOMONTH.php
│ │ ├── HOUR.php
│ │ ├── ISOWEEKNUM.php
│ │ ├── ISOWEEKNUM1904.php
│ │ ├── MINUTE.php
│ │ ├── MONTH.php
│ │ ├── NETWORKDAYS.php
│ │ ├── SECOND.php
│ │ ├── TIME.php
│ │ ├── TIMEVALUE.php
│ │ ├── WEEKDAY.php
│ │ ├── WEEKNUM.php
│ │ ├── WEEKNUM1904.php
│ │ ├── WORKDAY.php
│ │ ├── YEAR.php
│ │ └── YEARFRAC.php
│ ├── DefinedNames/
│ │ ├── NamedFormulae.xlsx
│ │ └── NamedRanges.xlsx
│ ├── Engineering/
│ │ ├── BESSELI.php
│ │ ├── BESSELJ.php
│ │ ├── BESSELK.php
│ │ ├── BESSELY.php
│ │ ├── BIN2DEC.php
│ │ ├── BIN2DECOpenOffice.php
│ │ ├── BIN2HEX.php
│ │ ├── BIN2HEXOpenOffice.php
│ │ ├── BIN2OCT.php
│ │ ├── BIN2OCTOpenOffice.php
│ │ ├── BITAND.php
│ │ ├── BITLSHIFT.php
│ │ ├── BITOR.php
│ │ ├── BITRSHIFT.php
│ │ ├── BITXOR.php
│ │ ├── COMPLEX.php
│ │ ├── CONVERTUOM.php
│ │ ├── DEC2BIN.php
│ │ ├── DEC2BINOpenOffice.php
│ │ ├── DEC2HEX.php
│ │ ├── DEC2HEXOpenOffice.php
│ │ ├── DEC2OCT.php
│ │ ├── DEC2OCTOpenOffice.php
│ │ ├── DELTA.php
│ │ ├── ERF.php
│ │ ├── ERFC.php
│ │ ├── ERFPRECISE.php
│ │ ├── GESTEP.php
│ │ ├── HEX2BIN.php
│ │ ├── HEX2BINOpenOffice.php
│ │ ├── HEX2DEC.php
│ │ ├── HEX2DECOpenOffice.php
│ │ ├── HEX2OCT.php
│ │ ├── HEX2OCTOpenOffice.php
│ │ ├── IMABS.php
│ │ ├── IMAGINARY.php
│ │ ├── IMARGUMENT.php
│ │ ├── IMCONJUGATE.php
│ │ ├── IMCOS.php
│ │ ├── IMCOSH.php
│ │ ├── IMCOT.php
│ │ ├── IMCSC.php
│ │ ├── IMCSCH.php
│ │ ├── IMDIV.php
│ │ ├── IMEXP.php
│ │ ├── IMLN.php
│ │ ├── IMLOG10.php
│ │ ├── IMLOG2.php
│ │ ├── IMPOWER.php
│ │ ├── IMPRODUCT.php
│ │ ├── IMREAL.php
│ │ ├── IMSEC.php
│ │ ├── IMSECH.php
│ │ ├── IMSIN.php
│ │ ├── IMSINH.php
│ │ ├── IMSQRT.php
│ │ ├── IMSUB.php
│ │ ├── IMSUM.php
│ │ ├── IMTAN.php
│ │ ├── OCT2BIN.php
│ │ ├── OCT2BINOpenOffice.php
│ │ ├── OCT2DEC.php
│ │ ├── OCT2DECOpenOffice.php
│ │ ├── OCT2HEX.php
│ │ └── OCT2HEXOpenOffice.php
│ ├── Financial/
│ │ ├── ACCRINT.php
│ │ ├── ACCRINTM.php
│ │ ├── AMORDEGRC.php
│ │ ├── AMORLINC.php
│ │ ├── COUPDAYBS.php
│ │ ├── COUPDAYS.php
│ │ ├── COUPDAYSNC.php
│ │ ├── COUPNCD.php
│ │ ├── COUPNUM.php
│ │ ├── COUPPCD.php
│ │ ├── CUMIPMT.php
│ │ ├── CUMPRINC.php
│ │ ├── DB.php
│ │ ├── DDB.php
│ │ ├── DISC.php
│ │ ├── DOLLARDE.php
│ │ ├── DOLLARFR.php
│ │ ├── DaysPerYear.php
│ │ ├── EFFECT.php
│ │ ├── FV.php
│ │ ├── FVSCHEDULE.php
│ │ ├── INTRATE.php
│ │ ├── IPMT.php
│ │ ├── IRR.php
│ │ ├── ISPMT.php
│ │ ├── MIRR.php
│ │ ├── NOMINAL.php
│ │ ├── NPER.php
│ │ ├── NPV.php
│ │ ├── PDURATION.php
│ │ ├── PMT.php
│ │ ├── PPMT.php
│ │ ├── PRICE.php
│ │ ├── PRICE3.php
│ │ ├── PRICEDISC.php
│ │ ├── PRICEMAT.php
│ │ ├── PV.php
│ │ ├── RATE.php
│ │ ├── RECEIVED.php
│ │ ├── RRI.php
│ │ ├── SLN.php
│ │ ├── SYD.php
│ │ ├── TBILLEQ.php
│ │ ├── TBILLPRICE.php
│ │ ├── TBILLYIELD.php
│ │ ├── USDOLLAR.php
│ │ ├── XIRR.php
│ │ ├── XNPV.php
│ │ ├── YIELDDISC.php
│ │ └── YIELDMAT.php
│ ├── Functions/
│ │ └── IF_CONDITION.php
│ ├── FunctionsAsString.php
│ ├── Information/
│ │ ├── ERROR_TYPE.php
│ │ ├── INFO.php
│ │ ├── IS_BLANK.php
│ │ ├── IS_ERR.php
│ │ ├── IS_ERROR.php
│ │ ├── IS_EVEN.php
│ │ ├── IS_LOGICAL.php
│ │ ├── IS_NA.php
│ │ ├── IS_NONTEXT.php
│ │ ├── IS_NUMBER.php
│ │ ├── IS_ODD.php
│ │ ├── IS_TEXT.php
│ │ ├── N.php
│ │ └── TYPE.php
│ ├── Logical/
│ │ ├── AND.php
│ │ ├── ANDLiteral.php
│ │ ├── IF.php
│ │ ├── IFERROR.php
│ │ ├── IFNA.php
│ │ ├── IFS.php
│ │ ├── NOT.php
│ │ ├── OR.php
│ │ ├── ORLiteral.php
│ │ ├── SWITCH.php
│ │ ├── XOR.php
│ │ └── XORLiteral.php
│ ├── LookupRef/
│ │ ├── ADDRESS.php
│ │ ├── CHOOSE.php
│ │ ├── CHOOSECOLS.php
│ │ ├── CHOOSEROWS.php
│ │ ├── COLUMN.php
│ │ ├── COLUMNS.php
│ │ ├── COLUMNSonSpreadsheet.php
│ │ ├── COLUMNonSpreadsheet.php
│ │ ├── DROP.php
│ │ ├── EXPAND.php
│ │ ├── FORMULATEXT.php
│ │ ├── HLOOKUP.php
│ │ ├── HYPERLINK.php
│ │ ├── INDEX.php
│ │ ├── INDEXonSpreadsheet.php
│ │ ├── INDIRECT.php
│ │ ├── IndirectDefinedName.xlsx
│ │ ├── IndirectFormulaSelection.xlsx
│ │ ├── LOOKUP.php
│ │ ├── MATCH.php
│ │ ├── OFFSET.php
│ │ ├── ROW.php
│ │ ├── ROWS.php
│ │ ├── ROWSonSpreadsheet.php
│ │ ├── ROWonSpreadsheet.php
│ │ ├── TAKE.php
│ │ ├── TRANSPOSE.php
│ │ └── VLOOKUP.php
│ ├── MathTrig/
│ │ ├── ABS.php
│ │ ├── ACOS.php
│ │ ├── ACOSH.php
│ │ ├── ACOT.php
│ │ ├── ACOTH.php
│ │ ├── ARABIC.php
│ │ ├── ASIN.php
│ │ ├── ASINH.php
│ │ ├── ATAN.php
│ │ ├── ATAN2.php
│ │ ├── ATANH.php
│ │ ├── BASE.php
│ │ ├── CEILING.php
│ │ ├── CEILINGMATH.php
│ │ ├── CEILINGPRECISE.php
│ │ ├── COMBIN.php
│ │ ├── COMBINA.php
│ │ ├── COS.php
│ │ ├── COSH.php
│ │ ├── COT.php
│ │ ├── COTH.php
│ │ ├── CSC.php
│ │ ├── CSCH.php
│ │ ├── DEGREES.php
│ │ ├── EVEN.php
│ │ ├── EXP.php
│ │ ├── FACT.php
│ │ ├── FACTDOUBLE.php
│ │ ├── FACTGNUMERIC.php
│ │ ├── FLOOR.php
│ │ ├── FLOORMATH.php
│ │ ├── FLOORPRECISE.php
│ │ ├── GCD.php
│ │ ├── INT.php
│ │ ├── LCM.php
│ │ ├── LN.php
│ │ ├── LOG.php
│ │ ├── LOG10.php
│ │ ├── MDETERM.php
│ │ ├── MINVERSE.php
│ │ ├── MMULT.php
│ │ ├── MOD.php
│ │ ├── MROUND.php
│ │ ├── MULTINOMIAL.php
│ │ ├── ODD.php
│ │ ├── PI.php
│ │ ├── POWER.php
│ │ ├── PRODUCT.php
│ │ ├── QUOTIENT.php
│ │ ├── RADIANS.php
│ │ ├── RANDBETWEEN.php
│ │ ├── ROMAN.php
│ │ ├── ROUND.php
│ │ ├── ROUNDDOWN.php
│ │ ├── ROUNDUP.php
│ │ ├── SEC.php
│ │ ├── SECH.php
│ │ ├── SEQUENCE.php
│ │ ├── SERIESSUM.php
│ │ ├── SIGN.php
│ │ ├── SIN.php
│ │ ├── SINH.php
│ │ ├── SQRT.php
│ │ ├── SQRTPI.php
│ │ ├── SUBTOTAL.php
│ │ ├── SUBTOTALHIDDEN.php
│ │ ├── SUM.php
│ │ ├── SUMIF.php
│ │ ├── SUMIFS.php
│ │ ├── SUMLITERALS.php
│ │ ├── SUMPRODUCT.php
│ │ ├── SUMSQ.php
│ │ ├── SUMWITHINDEXMATCH.php
│ │ ├── SUMX2MY2.php
│ │ ├── SUMX2PY2.php
│ │ ├── SUMXMY2.php
│ │ ├── TAN.php
│ │ ├── TANH.php
│ │ └── TRUNC.php
│ ├── Statistical/
│ │ ├── AVEDEV.php
│ │ ├── AVERAGE.php
│ │ ├── AVERAGEA.php
│ │ ├── AVERAGEIF.php
│ │ ├── AVERAGEIFS.php
│ │ ├── BETADIST.php
│ │ ├── BETAINV.php
│ │ ├── BINOMDIST.php
│ │ ├── BINOMDISTRANGE.php
│ │ ├── BINOMINV.php
│ │ ├── BasicCOUNT.php
│ │ ├── CHIDISTLeftTail.php
│ │ ├── CHIDISTRightTail.php
│ │ ├── CHIINVLeftTail.php
│ │ ├── CHIINVRightTail.php
│ │ ├── CHITEST.php
│ │ ├── CONFIDENCE.php
│ │ ├── CORREL.php
│ │ ├── COUNTA.php
│ │ ├── COUNTBLANK.php
│ │ ├── COUNTIF.php
│ │ ├── COUNTIFS.php
│ │ ├── COVAR.php
│ │ ├── DEVSQ.php
│ │ ├── EXPONDIST.php
│ │ ├── ExcelCOUNT.php
│ │ ├── FDIST.php
│ │ ├── FISHER.php
│ │ ├── FISHERINV.php
│ │ ├── FORECAST.php
│ │ ├── GAMMA.php
│ │ ├── GAMMADIST.php
│ │ ├── GAMMAINV.php
│ │ ├── GAMMALN.php
│ │ ├── GAUSS.php
│ │ ├── GEOMEAN.php
│ │ ├── GROWTH.php
│ │ ├── GnumericCOUNT.php
│ │ ├── HARMEAN.php
│ │ ├── HYPGEOMDIST.php
│ │ ├── INTERCEPT.php
│ │ ├── KURT.php
│ │ ├── LARGE.php
│ │ ├── LINEST.php
│ │ ├── LOGEST.php
│ │ ├── LOGINV.php
│ │ ├── LOGNORMDIST.php
│ │ ├── LOGNORMDIST2.php
│ │ ├── MAX.php
│ │ ├── MAXA.php
│ │ ├── MAXIFS.php
│ │ ├── MEDIAN.php
│ │ ├── MIN.php
│ │ ├── MINA.php
│ │ ├── MINIFS.php
│ │ ├── MODE.php
│ │ ├── NEGBINOMDIST.php
│ │ ├── NORMDIST.php
│ │ ├── NORMINV.php
│ │ ├── NORMSDIST.php
│ │ ├── NORMSDIST2.php
│ │ ├── NORMSINV.php
│ │ ├── OpenOfficeCOUNT.php
│ │ ├── PERCENTILE.php
│ │ ├── PERCENTRANK.php
│ │ ├── PERMUT.php
│ │ ├── PERMUTATIONA.php
│ │ ├── POISSON.php
│ │ ├── QUARTILE.php
│ │ ├── RANK.php
│ │ ├── RSQ.php
│ │ ├── SKEW.php
│ │ ├── SLOPE.php
│ │ ├── SMALL.php
│ │ ├── STANDARDIZE.php
│ │ ├── STDEV.php
│ │ ├── STDEVA.php
│ │ ├── STDEVA_ODS.php
│ │ ├── STDEVP.php
│ │ ├── STDEVPA.php
│ │ ├── STDEVPA_ODS.php
│ │ ├── STDEVP_ODS.php
│ │ ├── STDEV_ODS.php
│ │ ├── STEYX.php
│ │ ├── TDIST.php
│ │ ├── TDIST2T.php
│ │ ├── TDISTRT.php
│ │ ├── TINV.php
│ │ ├── TREND.php
│ │ ├── TRIMMEAN.php
│ │ ├── TdotINV.php
│ │ ├── VAR.php
│ │ ├── VARA.php
│ │ ├── VARA_ODS.php
│ │ ├── VARP.php
│ │ ├── VARPA.php
│ │ ├── VARPA_ODS.php
│ │ ├── VARP_ODS.php
│ │ ├── VAR_ODS.php
│ │ ├── WEIBULL.php
│ │ ├── ZTEST.php
│ │ ├── tDotDistFalse.php
│ │ └── tDotDistTrue.php
│ ├── TableFormulae.xlsx
│ ├── TextData/
│ │ ├── ARRAYTOTEXT.php
│ │ ├── BAHTTEXT.php
│ │ ├── CHAR.php
│ │ ├── CLEAN.php
│ │ ├── CODE.php
│ │ ├── CONCAT.php
│ │ ├── CONCATENATE.php
│ │ ├── DOLLAR.php
│ │ ├── EXACT.php
│ │ ├── FIND.php
│ │ ├── FIXED.php
│ │ ├── LEFT.php
│ │ ├── LEN.php
│ │ ├── LOWER.php
│ │ ├── MID.php
│ │ ├── NUMBERVALUE.php
│ │ ├── OpenOffice.php
│ │ ├── PROPER.php
│ │ ├── REPLACE.php
│ │ ├── REPT.php
│ │ ├── RIGHT.php
│ │ ├── SEARCH.php
│ │ ├── SUBSTITUTE.php
│ │ ├── T.php
│ │ ├── TEXT.php
│ │ ├── TEXTAFTER.php
│ │ ├── TEXTBEFORE.php
│ │ ├── TEXTJOIN.php
│ │ ├── TEXTSPLIT.php
│ │ ├── TRIM.php
│ │ ├── UPPER.php
│ │ ├── VALUE.php
│ │ └── VALUETOTEXT.php
│ ├── Translations.php
│ └── Web/
│ ├── URLENCODE.php
│ └── WEBSERVICE.php
├── CalculationBinaryComparisonOperation.php
├── Cell/
│ ├── A1ConversionToR1C1Absolute.php
│ ├── A1ConversionToR1C1Exception.php
│ ├── A1ConversionToR1C1Relative.php
│ ├── ConvertFormulaToA1FromR1C1Absolute.php
│ ├── ConvertFormulaToA1FromR1C1Relative.php
│ ├── ConvertFormulaToA1FromSpreadsheetXml.php
│ ├── CoordinateIsInsideRange.php
│ ├── CoordinateIsInsideRangeException.php
│ ├── IndexesFromString.php
│ ├── R1C1ConversionToA1Absolute.php
│ ├── R1C1ConversionToA1Exception.php
│ ├── R1C1ConversionToA1Relative.php
│ ├── SetValueExplicit.php
│ ├── SetValueExplicitException.php
│ └── SetValueExplicitTypeArguments.php
├── CellAbsoluteCoordinate.php
├── CellAbsoluteReference.php
├── CellBuildRange.php
├── CellCoordinates.php
├── CellExtractAllCellReferencesInRange.php
├── CellGetRangeBoundaries.php
├── CellMergeRangesInCollection.php
├── CellRangeBoundaries.php
├── CellRangeDimension.php
├── CellSplitRange.php
├── ColumnIndex.php
├── ColumnString.php
├── CoordinateIsRange.php
├── Features/
│ └── AutoFilter/
│ └── Xlsx/
│ ├── AutoFilter_Basic.xlsx
│ └── AutoFilter_Basic_Office365.xlsx
├── Functional/
│ └── TypeAttributePreservation/
│ └── Formula.php
├── Reader/
│ ├── CSV/
│ │ ├── NumberFormatTest.csv
│ │ ├── NumberFormatTest.de.csv
│ │ ├── backslash.csv
│ │ ├── contains_html.csv
│ │ ├── csv_without_extension
│ │ ├── empty.csv
│ │ ├── enclosure.csv
│ │ ├── encoding.iso88591.csv
│ │ ├── encoding.utf16be.csv
│ │ ├── encoding.utf16le.csv
│ │ ├── encoding.utf32be.csv
│ │ ├── encoding.utf32le.csv
│ │ ├── encoding.utf8.csv
│ │ ├── encoding.utf8bom.csv
│ │ ├── escape.csv
│ │ ├── issue.2232.csv
│ │ ├── line_break_escaped_32le.csv
│ │ ├── line_break_in_enclosure.csv
│ │ ├── line_break_in_enclosure_with_escaped_quotes.csv
│ │ ├── linend.mac.csv
│ │ ├── linend.unix.csv
│ │ ├── linend.win.csv
│ │ ├── no_delimiter.csv
│ │ ├── premiere.utf16be.csv
│ │ ├── premiere.utf16bebom.csv
│ │ ├── premiere.utf16le.csv
│ │ ├── premiere.utf16lebom.csv
│ │ ├── premiere.utf32be.csv
│ │ ├── premiere.utf32bebom.csv
│ │ ├── premiere.utf32le.csv
│ │ ├── premiere.utf32lebom.csv
│ │ ├── premiere.utf8.csv
│ │ ├── premiere.utf8bom.csv
│ │ ├── premiere.win1252.csv
│ │ ├── semicolon_separated.csv
│ │ ├── sep.csv
│ │ └── utf16be.line_break_in_enclosure.csv
│ ├── Gnumeric/
│ │ ├── ArrayFormulaTest.gnumeric
│ │ ├── ArrayFormulaTest2.gnumeric
│ │ ├── Autofilter_Basic.gnumeric
│ │ ├── HiddenSheet.gnumeric
│ │ ├── PageSetup.gnumeric
│ │ ├── PageSetup.gnumeric.unzipped.xml
│ │ ├── apostrophe3a.gnumeric
│ │ ├── apostrophe3b.gnumeric
│ │ └── xmlwithdoctype.gnumeric
│ ├── HTML/
│ │ ├── badhtml.html
│ │ ├── charset.ISO-8859-1.html
│ │ ├── charset.ISO-8859-1.html4.html
│ │ ├── charset.ISO-8859-2.html
│ │ ├── charset.UTF-16.bebom.html
│ │ ├── charset.UTF-16.lebom.html
│ │ ├── charset.UTF-8.bom.html
│ │ ├── charset.UTF-8.html
│ │ ├── charset.gb18030.html
│ │ ├── charset.nocharset.html
│ │ ├── charset.unknown.html
│ │ ├── csv_with_angle_bracket.csv
│ │ ├── html.opacity.3.html
│ │ ├── rowspan.html
│ │ ├── utf8chars.charset.html
│ │ ├── utf8chars.html
│ │ └── xhtml4.entity.xhtml
│ ├── NotASpreadsheetFile.doc
│ ├── Ods/
│ │ ├── ArrayFormulaTest.ods
│ │ ├── AutoFilter.ods
│ │ ├── DefinedNames.apostrophe.ods
│ │ ├── DefinedNames.ods
│ │ ├── HiddenMergeCellsTest.ods
│ │ ├── HiddenSheet2.ods
│ │ ├── MergeRangeTest.ods
│ │ ├── PageSetup.ods
│ │ ├── RepeatedCells.ods
│ │ ├── RepeatedDataCells.ods
│ │ ├── bug1772.ods
│ │ ├── colgroup.ods
│ │ ├── colheader.ods
│ │ ├── corruptMeta.ods
│ │ ├── currency4.ods
│ │ ├── data.ods
│ │ ├── issue.2507.ods
│ │ ├── issue.2810.ods
│ │ ├── issue.3658.ods
│ │ ├── issue.3721.ods
│ │ ├── issue.407.ods
│ │ ├── issue.4081.ods
│ │ ├── issue.4099.ods
│ │ ├── issue.4435b.ods
│ │ ├── issue.4528.ods
│ │ ├── issue.804.ods
│ │ ├── nomimetype.ods
│ │ ├── odsstyles5.ods
│ │ └── propertyTest.ods
│ ├── Slk/
│ │ ├── issue.2267c.slk
│ │ ├── issue.2276.slk
│ │ └── issue.3658.slk
│ ├── XLS/
│ │ ├── 1900_Calendar.xls
│ │ ├── 1904_Calendar.xls
│ │ ├── CF_Basic_Comparisons.xls
│ │ ├── CF_Expression_Comparisons.xls
│ │ ├── Colours.xls
│ │ ├── DataValidation.xls
│ │ ├── DefinedNameTest.xls
│ │ ├── HiddenMergeCellsTest.xls
│ │ ├── HiddenSheet.xls
│ │ ├── PageSetup.xls
│ │ ├── RichTextFontSize.xls
│ │ ├── WholeRowAndColumn.xls
│ │ ├── biff8cover.xls
│ │ ├── bug-pr-3734.xls
│ │ ├── bug1114.xls
│ │ ├── bug1505.xls
│ │ ├── bug1592.xls
│ │ ├── chartsheet.xls
│ │ ├── formulas.database.xls
│ │ ├── formulas.other.xls
│ │ ├── formulas.xls
│ │ ├── isodd.xls
│ │ ├── issue.2463.xls
│ │ ├── issue.3202.xls
│ │ ├── issue.3658.xls
│ │ ├── issue2239.xls
│ │ ├── maccentraleurope.biff5.xls
│ │ ├── maccentraleurope.xls
│ │ ├── pr.4687.excel.badendian.xls
│ │ ├── pr.4687.excel.xls
│ │ ├── pr607.sum_data.xls
│ │ ├── pwtest.xls
│ │ ├── pwtest2.xls
│ │ ├── pwtest3.xls
│ │ ├── sample.xls
│ │ └── visibility.xls
│ ├── XLSX/
│ │ ├── 1900_Calendar.xlsx
│ │ ├── 1904_Calendar.xlsx
│ │ ├── ChartSheet.xlsx
│ │ ├── ConditionalFormat_Ranges.xlsx
│ │ ├── HiddenMergeCellsTest.xlsx
│ │ ├── HiddenSheet.xlsx
│ │ ├── PageSetup.xlsx
│ │ ├── RgbTint.xlsx
│ │ ├── TableWithoutFilter.xlsx
│ │ ├── Zip-Linux-Directory-Separator.xlsx
│ │ ├── Zip-Windows-Directory-Separator.xlsx
│ │ ├── atsign.choosecols.xlsx
│ │ ├── autofilter2.xlsx
│ │ ├── autofilterTest.xlsx
│ │ ├── blankcell.xlsx
│ │ ├── bug1686b.xlsx
│ │ ├── colorscale.xlsx
│ │ ├── colortabs.xlsx
│ │ ├── condfmtnum.xlsx
│ │ ├── conditionalFormatting2Test.xlsx
│ │ ├── conditionalFormatting3Test.xlsx
│ │ ├── conditionalFormattingDataBarTest.xlsx
│ │ ├── conditionalFormattingIconSet.xlsx
│ │ ├── conditionalFormattingTest.xlsx
│ │ ├── dataValidation2Test.xlsx
│ │ ├── dataValidationTest.xlsx
│ │ ├── data_with_tables.xlsx
│ │ ├── double_attr_drawing.xlsx
│ │ ├── drawingOneCellAnchor.xlsx
│ │ ├── drawing_in_cell.xlsx
│ │ ├── ebcdic.dontuse
│ │ ├── empty_drawing.xlsx
│ │ ├── excel-groupby-one.xlsx
│ │ ├── excelChartsTest.xlsx
│ │ ├── explicitdate.xlsx
│ │ ├── fakewebservice.xlsx
│ │ ├── ignoreerror.xlsx
│ │ ├── issue.1319.bug2.xlsx
│ │ ├── issue.1432b.xlsx
│ │ ├── issue.1482.xlsx
│ │ ├── issue.1637.xlsx
│ │ ├── issue.2246a.xlsx
│ │ ├── issue.2246b.xlsx
│ │ ├── issue.2301.xlsx
│ │ ├── issue.2316.xlsx
│ │ ├── issue.2331c.xlsx
│ │ ├── issue.2362.xlsx
│ │ ├── issue.2387.xlsx
│ │ ├── issue.2450.xlsx
│ │ ├── issue.2488.xlsx
│ │ ├── issue.2490.xlsx
│ │ ├── issue.2494.xlsx
│ │ ├── issue.2501.b.xlsx
│ │ ├── issue.2506.xlsx
│ │ ├── issue.2516b.xlsx
│ │ ├── issue.2542.xlsx
│ │ ├── issue.2581.xlsx
│ │ ├── issue.2677.namespace.xlsx
│ │ ├── issue.2677.removeformula1.xlsx
│ │ ├── issue.2778.xlsx
│ │ ├── issue.282.xlsx
│ │ ├── issue.2885.xlsx
│ │ ├── issue.2965.xlsx
│ │ ├── issue.3093.xlsx
│ │ ├── issue.3126.xlsx
│ │ ├── issue.3143a.xlsx
│ │ ├── issue.3145.xlsx
│ │ ├── issue.3202.xlsx
│ │ ├── issue.3255.xlsx
│ │ ├── issue.3277.xlsx
│ │ ├── issue.3370.xlsx
│ │ ├── issue.3435.xlsx
│ │ ├── issue.3453.xlsx
│ │ ├── issue.3464.xlsx
│ │ ├── issue.3495d.xlsx
│ │ ├── issue.3534.xlsx
│ │ ├── issue.3552.xlsx
│ │ ├── issue.3553.xlsx
│ │ ├── issue.3613.xlsx
│ │ ├── issue.3654.xlsx
│ │ ├── issue.3654c.xlsx
│ │ ├── issue.3658.xlsx
│ │ ├── issue.3665.xlsx
│ │ ├── issue.3679.img.xlsx
│ │ ├── issue.3720.xlsx
│ │ ├── issue.3730.xlsx
│ │ ├── issue.3767.xlsx
│ │ ├── issue.3770.xlsx
│ │ ├── issue.3807.xlsx
│ │ ├── issue.3833.logarithm.xlsx
│ │ ├── issue.3833.units.xlsx
│ │ ├── issue.3863.xlsx
│ │ ├── issue.3909b.xlsx
│ │ ├── issue.3982.xlsx
│ │ ├── issue.4049.xlsx
│ │ ├── issue.4063.xlsx
│ │ ├── issue.4248.xlsx
│ │ ├── issue.4312c.xlsx
│ │ ├── issue.4318.xlsx
│ │ ├── issue.4375.small.xlsx
│ │ ├── issue.4415.xlsx
│ │ ├── issue.4416.smallauto.xlsx
│ │ ├── issue.4477.disclaimer.xlsx
│ │ ├── issue.4505.namespace.xlsx
│ │ ├── issue.4539.xlsx
│ │ ├── issue.4629.xlsx
│ │ ├── issue.4724.xlsx
│ │ ├── issue.4800.xlsx
│ │ ├── issue.731.xlsx
│ │ ├── issue2109b.xlsx
│ │ ├── namespacenonstd.xlsx
│ │ ├── namespacepurl.xlsx
│ │ ├── namespaces.openpyxl35.xlsx
│ │ ├── namespaces.xlsx
│ │ ├── namespacestd.xlsx
│ │ ├── octo#thorpe.xlsx
│ │ ├── outline.xlsx
│ │ ├── pageSetupTest.xlsx
│ │ ├── pr1769e.xlsx
│ │ ├── pr1769g.py.xlsx
│ │ ├── pr2050cf-fill.xlsx
│ │ ├── pr2225-datavalidation-onezero.xlsx
│ │ ├── pr2225-datavalidation-truefalse.xlsx
│ │ ├── propertyTest.xlsx
│ │ ├── rootZipFiles.xlsx
│ │ ├── rowColumnAttributeTest.xlsx
│ │ ├── sec-j47r.dontuse
│ │ ├── sec-p66w.dontuse
│ │ ├── sec-q229.dontuse
│ │ ├── sharedformulae.xlsx
│ │ ├── sheetprotect.xlsx
│ │ ├── sheetsChartsTest.xlsx
│ │ ├── splits.xlsx
│ │ ├── stylesTest.xlsx
│ │ ├── tableTest.xlsx
│ │ ├── threesheets.xlsx
│ │ ├── urlImage.bad.dontuse
│ │ ├── urlImage.notfound.xlsx
│ │ ├── urlImage.xlsx
│ │ ├── urlImage2.onecell.xlsx
│ │ ├── urlImage2.xlsx
│ │ ├── utf16be.bom.xlsx
│ │ ├── utf16be.xlsx
│ │ ├── utf16entity.dontuse
│ │ ├── utf7quoteorder.dontuse
│ │ ├── utf7white.dontuse
│ │ ├── utf8and16.dontuse
│ │ ├── utf8and16.entity.dontuse
│ │ ├── utf8entity.dontuse
│ │ ├── verticalAlignTest.xlsx
│ │ ├── visibility.xlsx
│ │ └── without_cell_reference.xlsx
│ └── Xml/
│ ├── ArrayFormula.xml
│ ├── CorruptedXmlFile.xml
│ ├── PageSetup.xml
│ ├── SecurityScannerWithCallbackExample.xml
│ ├── XEETestInvalidSimpleXML.xml
│ ├── XEETestInvalidUTF-16.xml
│ ├── XEETestInvalidUTF-16BE.xml
│ ├── XEETestInvalidUTF-16LE.xml
│ ├── XEETestInvalidUTF-7-single-quote.xml
│ ├── XEETestInvalidUTF-7-whitespace.xml
│ ├── XEETestInvalidUTF-7.xml
│ ├── XEETestInvalidUTF-7_DoubleEncoded.xml
│ ├── XEETestInvalidUTF-8.xml
│ ├── XEETestValidUTF-16.xml
│ ├── XEETestValidUTF-16BE.xml
│ ├── XEETestValidUTF-16LE.xml
│ ├── XEETestValidUTF-8-single-quote.xml
│ ├── XEETestValidUTF-8-whitespace.xml
│ ├── XEETestValidUTF-8.xml
│ ├── bug4669.xml
│ ├── datavalidations.wholerow.xml
│ ├── datavalidations.xml
│ ├── excel2003.iso8859-1.xml
│ ├── hyperlinkbase.xml
│ ├── issue.2157.small.xml
│ ├── issue.3658.xml
│ ├── issue.4448.xml
│ ├── issue.850.xml
│ ├── sec-w24f.dontuse
│ └── splits.xml
├── ReferenceHelperFormulaUpdates.php
├── ReferenceHelperFormulaUpdatesMultipleSheet.php
├── Shared/
│ ├── CentimeterSizeToPixels.php
│ ├── CodePage.php
│ ├── Date/
│ │ ├── DateTimeToExcel.php
│ │ ├── ExcelToTimestamp1900.php
│ │ ├── ExcelToTimestamp1900Timezone.php
│ │ ├── ExcelToTimestamp1904.php
│ │ ├── FormatCodes.php
│ │ ├── FormattedPHPToExcel1900.php
│ │ ├── TimestampToExcel1900.php
│ │ └── TimestampToExcel1904.php
│ ├── FontSizeToPixels.php
│ ├── InchSizeToPixels.php
│ ├── OLERead/
│ │ ├── document
│ │ ├── summary
│ │ └── wrkbook
│ ├── PasswordHashes.php
│ └── Trend/
│ ├── ExponentialBestFit.php
│ └── LinearBestFit.php
├── Style/
│ ├── Color/
│ │ ├── ColorChangeBrightness.php
│ │ ├── ColorGetBlue.php
│ │ ├── ColorGetGreen.php
│ │ └── ColorGetRed.php
│ ├── ConditionalFormatting/
│ │ └── CellMatcher.xlsx
│ ├── NumberFormat.php
│ ├── NumberFormatDates.php
│ └── NumberFormatFractions.php
├── Worksheet/
│ ├── Table/
│ │ └── TableFormulae.xlsx
│ └── namedRangeTest.xlsx
└── Writer/
├── Ods/
│ ├── content-arrays.xml
│ ├── content-empty.xml
│ ├── content-hidden-worksheet.xml
│ └── content-with-data.xml
└── XLSX/
├── ArrayFunctions2.json
├── drawing_in_comment.xlsx
├── drawing_on_2nd_page.xlsx
├── form_pass_print.xlsm
├── gallerytheme.xlsx
├── grouped_images.xlsx
├── issue.2266f.xlsx
├── issue.2368new.xlsx
├── issue.2396.xlsx
├── issue.2908.xlsx
├── issue.3811b.xlsx
├── issue.3843a.template.xlsx
├── issue.4037.xlsx
├── issue.476.xlsx
├── merge.excel.xlsx
├── purple_square.tiff
├── saving_drawing_with_same_path.xlsx
└── wmffile.xlsx
Showing preview only (1,181K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (11852 symbols across 1780 files)
FILE: bin/check-phpdoc-types.php
function checkPhpDocTypes (line 11) | function checkPhpDocTypes(): int
FILE: infra/DocumentGenerator.php
class DocumentGenerator (line 10) | class DocumentGenerator
method generateFunctionListByCategory (line 22) | public static function generateFunctionListByCategory($phpSpreadsheetF...
method getCategories (line 47) | private static function getCategories(): array
method tableRow (line 59) | private static function tableRow(array $lengths, ?array $values = null...
method getPhpSpreadsheetFunctionText (line 74) | private static function getPhpSpreadsheetFunctionText(mixed $functionC...
method generateFunctionListByName (line 94) | public static function generateFunctionListByName(array $phpSpreadshee...
FILE: infra/LocaleGenerator.php
class LocaleGenerator (line 12) | class LocaleGenerator
method __construct (line 60) | public function __construct(
method generateLocales (line 72) | public function generateLocales(): void
method buildConfigFileForLocale (line 93) | protected function buildConfigFileForLocale(string $column, string $lo...
method writeConfigArgumentSeparator (line 129) | protected function writeConfigArgumentSeparator($configFile, string $c...
method writeConfigCurrencySymbol (line 145) | protected function writeConfigCurrencySymbol($configFile, string $colu...
method buildFunctionsFileForLocale (line 163) | protected function buildFunctionsFileForLocale(string $column, string ...
method openConfigFile (line 198) | protected function openConfigFile(string $locale, string $language, st...
method openFunctionNameFile (line 216) | protected function openFunctionNameFile(string $locale, string $langua...
method getLocaleFolder (line 233) | protected function getLocaleFolder(string $locale): string
method writeFileHeader (line 248) | protected function writeFileHeader($localeFile, string $localeLanguage...
method writeFileSectionHeader (line 260) | protected function writeFileSectionHeader($localeFile, string $header)...
method openTranslationWorkbook (line 267) | protected function openTranslationWorkbook(): void
method getTranslationSheet (line 273) | protected function getTranslationSheet(string $sheetName): Worksheet
method mapLanguageColumns (line 281) | protected function mapLanguageColumns(Worksheet $translationWorksheet)...
method localeCanBeSupported (line 304) | protected function localeCanBeSupported(Worksheet $worksheet, Cell $ce...
method mapErrorCodeRows (line 319) | protected function mapErrorCodeRows(): void
method mapFunctionNameRows (line 336) | protected function mapFunctionNameRows(): void
method isFunctionCategoryEntry (line 366) | private function isFunctionCategoryEntry(Cell $cell): bool
method log (line 376) | private function log(string $message): void
FILE: samples/Autofilter/10_Autofilter_dynamic_dates.php
function createSheet (line 15) | function createSheet(Sample $helper, Spreadsheet $spreadsheet, string $r...
FILE: samples/Basic1/17b_Html.php
function changeGridlines (line 9) | function changeGridlines(string $html): string
FILE: samples/Basic2/24_Readfilter.php
class MyReadFilter (line 21) | class MyReadFilter implements IReadFilter
method readCell (line 23) | public function readCell(string $columnAddress, int $row, string $work...
FILE: samples/Basic3/39_Dropdown.php
function transpose (line 27) | function transpose(string $value): array
FILE: samples/Basic5/55_DefinedStyles.php
function threeDecimalPlaces (line 80) | function threeDecimalPlaces(Style $obj, string $name): void
function redBrackets (line 93) | function redBrackets(Style $obj, string $name): void
function writeAdditional (line 128) | function writeAdditional(BaseWriter $writer): void
FILE: samples/Basic5/56_OdsToISO8601.php
function datesToIso8601 (line 7) | function datesToIso8601(string $infile, Sample $helper): void
FILE: samples/Chart33a/33_Chart_create_line_dateaxis.php
function dateRange (line 342) | function dateRange(int $nrows, Spreadsheet $wrkbk): array
FILE: samples/ConditionalFormatting/cond09_iconset.php
function makeConditionalIconSet (line 98) | function makeConditionalIconSet(
FILE: samples/DefinedNames/CrossWorksheetNamedFormula.php
function setYearlyData (line 44) | function setYearlyData(Worksheet $worksheet, string $year, array $yearly...
FILE: samples/Html/html_01_Basic_Conditional_Formatting.php
function writerCallback (line 18) | function writerCallback(HtmlWriter $writer): void
FILE: samples/Html/html_02_More_Conditional_Formatting.php
function writerCallback (line 18) | function writerCallback(HtmlWriter $writer): void
FILE: samples/Html/html_03_Color_Scale.php
function writerCallback (line 18) | function writerCallback(HtmlWriter $writer): void
FILE: samples/Html/html_04_Table_Format_without_Conditional.php
function writerCallback (line 18) | function writerCallback(HtmlWriter $writer): void
FILE: samples/Html/html_05_Table_Format_with_Conditional.php
function writerCallback (line 19) | function writerCallback(HtmlWriter $writer): void
FILE: samples/Html/html_06_Table_Cellspacing.php
function addCellspacing (line 10) | function addCellspacing(string $html): string
function writerCallback (line 21) | function writerCallback(HtmlWriter $writer): void
FILE: samples/LookupRef/SortExcel.php
class SortExcel (line 10) | class SortExcel
method cmp (line 19) | private function cmp(mixed $rowA, mixed $rowB): int
method sortArray (line 82) | public function sortArray(array &$array, int $ascending = self::ASCEND...
function displaySorted (line 98) | function displaySorted(array $original, Sample $helper): void
FILE: samples/LookupRef/SortExcelCols.php
class SortExcelCols (line 11) | class SortExcelCols
method cmp (line 20) | private function cmp(mixed $rowA, mixed $rowB): int
method sortArray (line 83) | public function sortArray(array &$array, int $ascending = self::ASCEND...
function displaySortedCols (line 123) | function displaySortedCols(array $original, Sample $helper): void
FILE: samples/Pdf/21a_Pdf.php
function changeGridlines (line 21) | function changeGridlines(string $html): string
FILE: samples/Pdf/21b_Pdf.php
function replaceBody (line 10) | function replaceBody(string $html): string
FILE: samples/Pdf/Dompdf_Canvas_Headers.php
class Dompdf_Canvas_Headers (line 14) | class Dompdf_Canvas_Headers extends Dompdf // phpcs:ignore
method callPageScript (line 16) | protected function callPageScript(\Dompdf\Dompdf $dompdf): void
FILE: samples/Pdf/Dompdf_Custom_Headers.php
function addHeadersFootersDompdf2000 (line 11) | function addHeadersFootersDompdf2000(string $html): string
FILE: samples/Pdf/Mpdf_Custom_Headers.php
function addHeadersFootersMpdf2000 (line 12) | function addHeadersFootersMpdf2000(string $html): string
FILE: samples/Pdf/Tcpdf_Custom_Headers.php
class Tcpdf2 (line 11) | class Tcpdf2 extends TcpdfNoDie // phpcs:ignore
method createExternalWriterInstance (line 17) | protected function createExternalWriterInstance(string $orientation, s...
class Tcpdf2Class (line 26) | class Tcpdf2Class extends VendorTcpdf // phpcs:ignore
method Header (line 29) | public function Header(): void // phpcs:ignore
method Footer (line 47) | public function Footer(): void // phpcs:ignore
FILE: samples/Reader/08_Simple_file_reader_loading_several_named_worksheets.php
function getDesiredSheetNames (line 8) | function getDesiredSheetNames(): array
FILE: samples/Reader/09_Simple_file_reader_using_a_read_filter.php
class MyReadFilter (line 14) | class MyReadFilter implements IReadFilter
method readCell (line 16) | public function readCell(string $columnAddress, int $row, string $work...
FILE: samples/Reader/10_Simple_file_reader_using_a_configurable_read_filter.php
class MyReadFilter (line 14) | class MyReadFilter implements IReadFilter
method __construct (line 17) | public function __construct(
method readCell (line 24) | public function readCell(string $columnAddress, int $row, string $work...
FILE: samples/Reader/11_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_version_1.php
class ChunkReadFilter (line 14) | class ChunkReadFilter implements IReadFilter
method __construct (line 23) | public function __construct(int $startRow, int $chunkSize)
method readCell (line 29) | public function readCell(string $columnAddress, int $row, string $work...
FILE: samples/Reader/12_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_version_2.php
class ChunkReadFilter (line 14) | class ChunkReadFilter implements IReadFilter
method setRows (line 23) | public function setRows(int $startRow, int $chunkSize): void
method readCell (line 29) | public function readCell(string $columnAddress, int $row, string $work...
FILE: samples/Reader2/14_Reading_a_large_CSV_file_in_chunks_to_split_across_multiple_worksheets.php
class ChunkReadFilter (line 14) | class ChunkReadFilter implements IReadFilter
method setRows (line 23) | public function setRows(int $startRow, int $chunkSize): void
method readCell (line 29) | public function readCell(string $columnAddress, int $row, string $work...
FILE: samples/Table/01_Table.php
function writerCallbackForHtml (line 100) | function writerCallbackForHtml(IWriter $writer): void
FILE: samples/templates/Mpdf2.php
class Mpdf2 (line 9) | class Mpdf2 extends Mpdf
method createExternalWriterInstance (line 21) | protected function createExternalWriterInstance($config): \Mpdf\Mpdf
FILE: src/PhpSpreadsheet/Calculation/ArrayEnabled.php
type ArrayEnabled (line 8) | trait ArrayEnabled
method initialiseHelper (line 17) | private static function initialiseHelper(array $arguments): void
method evaluateSingleArgumentArray (line 35) | protected static function evaluateSingleArgumentArray(callable $method...
method evaluateArrayArguments (line 53) | protected static function evaluateArrayArguments(callable $method, mix...
method evaluateArrayArgumentsSubset (line 70) | protected static function evaluateArrayArgumentsSubset(callable $metho...
method testFalse (line 80) | private static function testFalse(mixed $value): bool
method evaluateArrayArgumentsSubsetFrom (line 94) | protected static function evaluateArrayArgumentsSubsetFrom(callable $m...
method evaluateArrayArgumentsIgnore (line 121) | protected static function evaluateArrayArgumentsIgnore(callable $metho...
FILE: src/PhpSpreadsheet/Calculation/BinaryComparison.php
class BinaryComparison (line 8) | class BinaryComparison
method strcmpLowercaseFirst (line 21) | private static function strcmpLowercaseFirst(mixed $str1, mixed $str2)...
method strcmpAllowNull (line 37) | private static function strcmpAllowNull(mixed $str1, mixed $str2): int
method compare (line 45) | public static function compare(mixed $operand1, mixed $operand2, strin...
method evaluateComparison (line 80) | private static function evaluateComparison(mixed $operand1, mixed $ope...
method equal (line 93) | private static function equal(mixed $operand1, mixed $operand2): bool
method greaterThanOrEqual (line 106) | private static function greaterThanOrEqual(mixed $operand1, mixed $ope...
method lessThanOrEqual (line 121) | private static function lessThanOrEqual(mixed $operand1, mixed $operan...
method greaterThan (line 136) | private static function greaterThan(mixed $operand1, mixed $operand2, ...
method lessThan (line 141) | private static function lessThan(mixed $operand1, mixed $operand2, boo...
method notEqual (line 146) | private static function notEqual(mixed $operand1, mixed $operand2): bool
FILE: src/PhpSpreadsheet/Calculation/Calculation.php
class Calculation (line 29) | class Calculation extends CalculationLocale
method keyInExcelConstants (line 165) | public static function keyInExcelConstants(string $key): bool
method getExcelConstants (line 170) | public static function getExcelConstants(string $key): bool|null
method __construct (line 195) | public function __construct(?Spreadsheet $spreadsheet = null)
method getInstance (line 209) | public static function getInstance(?Spreadsheet $spreadsheet = null): ...
method getInstanceOrNull (line 227) | public static function getInstanceOrNull(?Spreadsheet $spreadsheet = n...
method flushInstance (line 240) | public function flushInstance(): void
method getDebugLog (line 249) | public function getDebugLog(): Logger
method __clone (line 257) | final public function __clone()
method setArrayReturnType (line 269) | public static function setArrayReturnType(string $returnType): bool
method getArrayReturnType (line 289) | public static function getArrayReturnType(): string
method setInstanceArrayReturnType (line 301) | public function setInstanceArrayReturnType(string $returnType): bool
method getInstanceArrayReturnType (line 321) | public function getInstanceArrayReturnType(): string
method getCalculationCacheEnabled (line 329) | public function getCalculationCacheEnabled(): bool
method setCalculationCacheEnabled (line 337) | public function setCalculationCacheEnabled(bool $calculationCacheEnabl...
method enableCalculationCache (line 348) | public function enableCalculationCache(): void
method disableCalculationCache (line 356) | public function disableCalculationCache(): void
method clearCalculationCache (line 364) | public function clearCalculationCache(): void
method clearCalculationCacheForWorksheet (line 372) | public function clearCalculationCacheForWorksheet(string $worksheetNam...
method renameCalculationCacheForWorksheet (line 382) | public function renameCalculationCacheForWorksheet(string $fromWorkshe...
method getBranchPruningEnabled (line 390) | public function getBranchPruningEnabled(): bool
method setBranchPruningEnabled (line 395) | public function setBranchPruningEnabled(mixed $enabled): self
method enableBranchPruning (line 403) | public function enableBranchPruning(): void
method disableBranchPruning (line 408) | public function disableBranchPruning(): void
method wrapResult (line 416) | public static function wrapResult(mixed $value): mixed
method unwrapResult (line 438) | public static function unwrapResult(mixed $value): mixed
method calculate (line 458) | public function calculate(?Cell $cell = null): mixed
method calculateCellValue (line 473) | public function calculateCellValue(?Cell $cell = null, bool $resetLog ...
method parseFormula (line 560) | public function parseFormula(string $formula): array|bool
method calculateFormula (line 589) | public function calculateFormula(string $formula, ?string $cellID = nu...
method getValueFromCache (line 621) | public function getValueFromCache(string $cellReference, mixed &$cellV...
method saveValueToCache (line 638) | public function saveValueToCache(string $cellReference, mixed $cellVal...
method _calculateFormulaValue (line 653) | public function _calculateFormulaValue(string $formula, ?string $cellI...
method checkMatrixOperands (line 743) | public static function checkMatrixOperands(mixed &$operand1, mixed &$o...
method getMatrixDimensions (line 792) | public static function getMatrixDimensions(array &$matrix): array
method resizeMatricesShrink (line 820) | private static function resizeMatricesShrink(array &$matrix1, array &$...
method resizeMatricesExtend (line 863) | private static function resizeMatricesExtend(array &$matrix1, array &$...
method showValue (line 907) | private function showValue(mixed $value): mixed
method showTypeDetails (line 945) | private function showTypeDetails(mixed $value): ?string
method convertMatrixReferences (line 985) | private function convertMatrixReferences(string $formula): false|string
method unionForComma (line 1059) | private static function unionForComma(array $matches): string
method internalParseFormula (line 1083) | private function internalParseFormula(string $formula, ?Cell $cell = n...
method dataTestReference (line 1588) | private static function dataTestReference(array &$operandData): mixed
method processTokenStack (line 1621) | private function processTokenStack(false|array $tokens, ?string $cellI...
method validateBinaryOperand (line 2341) | private function validateBinaryOperand(mixed &$operand, Stack &$stack)...
method executeArrayComparison (line 2380) | private function executeArrayComparison(mixed $operand1, mixed $operan...
method executeBinaryComparisonOperation (line 2425) | private function executeBinaryComparisonOperation(mixed $operand1, mix...
method executeNumericBinaryOperation (line 2442) | private function executeNumericBinaryOperation(mixed $operand1, mixed ...
method raiseFormulaError (line 2582) | protected function raiseFormulaError(string $errorMessage, int $code =...
method extractCellRange (line 2605) | public function extractCellRange(string &$range = 'A1', ?Worksheet $wo...
method extractNamedRange (line 2680) | public function extractNamedRange(string &$range = 'A1', ?Worksheet $w...
method isImplemented (line 2740) | public function isImplemented(string $function): bool
method getImplementedFunctionNames (line 2754) | public function getImplementedFunctionNames(): array
method addDefaultArgumentValues (line 2774) | private function addDefaultArgumentValues(array $functionCall, array $...
method getArgumentDefaultValue (line 2799) | private function getArgumentDefaultValue(ReflectionParameter $methodAr...
method addCellReference (line 2831) | private function addCellReference(array $args, bool $passCellReference...
method evaluateDefinedName (line 2851) | private function evaluateDefinedName(Cell $cell, DefinedName $namedRan...
method setSuppressFormulaErrors (line 2922) | public function setSuppressFormulaErrors(bool $suppressFormulaErrors):...
method getSuppressFormulaErrors (line 2929) | public function getSuppressFormulaErrors(): bool
method boolToString (line 2934) | public static function boolToString(mixed $operand1): mixed
method isNumericOrBool (line 2945) | private static function isNumericOrBool(mixed $operand): bool
method makeError (line 2950) | private static function makeError(mixed $operand = ''): string
method swapOperands (line 2955) | private static function swapOperands(Stack $stack, string $opCharacter...
method getSpreadsheet (line 2971) | public function getSpreadsheet(): ?Spreadsheet
FILE: src/PhpSpreadsheet/Calculation/CalculationBase.php
class CalculationBase (line 5) | class CalculationBase
method getFunctions (line 12) | public static function getFunctions(): array
method getFunctionsAddress (line 22) | protected static function &getFunctionsAddress(): array
method addFunction (line 30) | public static function addFunction(string $key, array $value): bool
method isDummy (line 45) | private static function isDummy(string $key): bool
method removeFunction (line 59) | public static function removeFunction(string $key): bool
FILE: src/PhpSpreadsheet/Calculation/CalculationLocale.php
class CalculationLocale (line 5) | class CalculationLocale extends CalculationBase
method getLocaleBoolean (line 53) | public static function getLocaleBoolean(string $index): string
method loadLocales (line 58) | protected static function loadLocales(): void
method getTRUE (line 80) | public static function getTRUE(): string
method getFALSE (line 90) | public static function getFALSE(): string
method getLocale (line 98) | public function getLocale(): string
method getLocaleFile (line 103) | protected function getLocaleFile(string $localeDir, string $locale, st...
method getFalseTrueArray (line 119) | public function getFalseTrueArray(): array
method setLocale (line 167) | public function setLocale(string $locale): bool
method translateSeparator (line 250) | public static function translateSeparator(
method translateFormulaBlock (line 284) | protected static function translateFormulaBlock(
method translateFormula (line 312) | protected static function translateFormula(array $from, array $to, str...
method translateFormulaToLocale (line 350) | public function translateFormulaToLocale(string $formula): string
method translateFormulaToEnglish (line 389) | public function translateFormulaToEnglish(string $formula): string
method localeFunc (line 414) | public static function localeFunc(string $function): string
FILE: src/PhpSpreadsheet/Calculation/CalculationParserOnly.php
class CalculationParserOnly (line 14) | final class CalculationParserOnly extends Calculation
method getParserInstance (line 29) | public static function getParserInstance(): self
method setBranchPruningEnabled (line 39) | public function setBranchPruningEnabled(mixed $enabled): self
FILE: src/PhpSpreadsheet/Calculation/Category.php
class Category (line 5) | abstract class Category
FILE: src/PhpSpreadsheet/Calculation/Database/DAverage.php
class DAverage (line 8) | class DAverage extends DatabaseAbstract
method evaluate (line 33) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DCount.php
class DCount (line 8) | class DCount extends DatabaseAbstract
method evaluate (line 34) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DCountA.php
class DCountA (line 8) | class DCountA extends DatabaseAbstract
method evaluate (line 33) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DGet.php
class DGet (line 7) | class DGet extends DatabaseAbstract
method evaluate (line 33) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DMax.php
class DMax (line 8) | class DMax extends DatabaseAbstract
method evaluate (line 34) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DMin.php
class DMin (line 8) | class DMin extends DatabaseAbstract
method evaluate (line 34) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DProduct.php
class DProduct (line 8) | class DProduct extends DatabaseAbstract
method evaluate (line 33) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DStDev.php
class DStDev (line 8) | class DStDev extends DatabaseAbstract
method evaluate (line 34) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DStDevP.php
class DStDevP (line 8) | class DStDevP extends DatabaseAbstract
method evaluate (line 34) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DSum.php
class DSum (line 8) | class DSum extends DatabaseAbstract
method evaluate (line 33) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DVar.php
class DVar (line 8) | class DVar extends DatabaseAbstract
method evaluate (line 36) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DVarP.php
class DVarP (line 8) | class DVarP extends DatabaseAbstract
method evaluate (line 36) | public static function evaluate(array $database, array|null|int|string...
FILE: src/PhpSpreadsheet/Calculation/Database/DatabaseAbstract.php
class DatabaseAbstract (line 10) | abstract class DatabaseAbstract
method evaluate (line 28) | abstract public static function evaluate(array $database, array|null|i...
method fieldExtract (line 45) | protected static function fieldExtract(array $database, mixed $field):...
method filter (line 88) | protected static function filter(array $database, array $criteria): array
method getFilteredColumn (line 109) | protected static function getFilteredColumn(array $database, ?int $fie...
method buildQuery (line 132) | private static function buildQuery(array $criteriaNames, array $criter...
method buildCondition (line 153) | private static function buildCondition(mixed $criterion, string $crite...
method executeQuery (line 180) | private static function executeQuery(array $database, string $query, a...
method processCondition (line 207) | private static function processCondition(string $criterion, array $fie...
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/Constants.php
class Constants (line 5) | class Constants
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/Current.php
class Current (line 9) | class Current
method today (line 28) | public static function today(): DateTime|float|int|string
method now (line 53) | public static function now(): DateTime|float|int|string
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/Date.php
class Date (line 12) | class Date
method fromYMD (line 67) | public static function fromYMD(array|float|int|string $year, null|arra...
method getYear (line 93) | private static function getYear(mixed $year, int $baseYear): int
method getMonth (line 122) | private static function getMonth(mixed $month): int
method getDay (line 143) | private static function getDay(mixed $day): int
method adjustYearMonth (line 161) | private static function adjustYearMonth(int &$year, int &$month, int $...
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/DateParts.php
class DateParts (line 10) | class DateParts
method day (line 31) | public static function day(mixed $dateValue): array|int|string
method month (line 72) | public static function month(mixed $dateValue): array|string|int
method year (line 111) | public static function year(mixed $dateValue): array|string|int
method weirdCondition (line 137) | private static function weirdCondition(mixed $dateValue): int
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/DateValue.php
class DateValue (line 11) | class DateValue
method fromString (line 43) | public static function fromString(null|array|string|int|bool|float $da...
method t1ToString (line 90) | private static function t1ToString(array $t1, DateTimeImmutable $dti, ...
method setUpArray (line 115) | private static function setUpArray(string $dateValue, DateTimeImmutabl...
method finalResults (line 143) | private static function finalResults(array $PHPDateArray, DateTimeImmu...
method getInt (line 172) | private static function getInt(array $array, string $index): int
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/Days.php
class Days (line 11) | class Days
method between (line 34) | public static function between(array|DateTimeInterface|float|int|strin...
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/Days360.php
class Days360 (line 10) | class Days360
method between (line 47) | public static function between(mixed $startDate = 0, mixed $endDate = ...
method dateDiff360 (line 81) | private static function dateDiff360(int $startDay, int $startMonth, in...
method getStartDay (line 89) | private static function getStartDay(int $startDay, int $startMonth, in...
method getEndDay (line 100) | private static function getEndDay(int $endDay, int &$endMonth, int &$e...
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/Difference.php
class Difference (line 12) | class Difference
method interval (line 31) | public static function interval(mixed $startDate, mixed $endDate, arra...
method initialDiff (line 70) | private static function initialDiff(float $startDate, float $endDate):...
method replaceRetValue (line 83) | private static function replaceRetValue(bool|int $retVal, string $unit...
method datedifD (line 92) | private static function datedifD(float $difference): int
method datedifM (line 97) | private static function datedifM(DateInterval $PHPDiffDateObject): int
method datedifMD (line 102) | private static function datedifMD(int $startDays, int $endDays, DateTi...
method datedifY (line 116) | private static function datedifY(DateInterval $PHPDiffDateObject): int
method datedifYD (line 121) | private static function datedifYD(float $difference, int $startYears, ...
method datedifYM (line 149) | private static function datedifYM(DateInterval $PHPDiffDateObject): int
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/Helpers.php
class Helpers (line 12) | class Helpers
method isLeapYear (line 21) | public static function isLeapYear(int|string $year): bool
method getDateValue (line 33) | public static function getDateValue(mixed $dateValue, bool $allowBool ...
method getTimeValue (line 74) | public static function getTimeValue(string $timeValue): string|float
method adjustDateByMonths (line 90) | public static function adjustDateByMonths($dateValue = 0, float $adjus...
method replaceIfEmpty (line 120) | public static function replaceIfEmpty(mixed &$value, mixed $altValue):...
method adjustYear (line 128) | public static function adjustYear(string $testVal1, string $testVal2, ...
method returnIn3FormatsArray (line 144) | public static function returnIn3FormatsArray(array $dateArray, bool $n...
method returnIn3FormatsFloat (line 177) | public static function returnIn3FormatsFloat(float $excelDateValue): f...
method returnIn3FormatsObject (line 194) | public static function returnIn3FormatsObject(DateTime $PHPDateObject)...
method baseDate (line 210) | private static function baseDate(): int
method nullFalseTrueToNumber (line 225) | public static function nullFalseTrueToNumber(mixed &$number, bool $all...
method validateNumericNull (line 239) | public static function validateNumericNull(mixed $number): int|float
method validateNotNegative (line 260) | public static function validateNotNegative(mixed $number): float
method silly1900 (line 272) | public static function silly1900(DateTime $PHPDateObject, string $mod ...
method dateParse (line 281) | public static function dateParse(string $string): array
method dateParseSucceeded (line 290) | public static function dateParseSucceeded(array $dateArray): bool
method forceArray (line 303) | private static function forceArray(array|bool $dateArray): array
method floatOrInt (line 308) | public static function floatOrInt(mixed $value): float|int
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/Month.php
class Month (line 9) | class Month
method adjust (line 37) | public static function adjust(mixed $dateValue, array|string|bool|floa...
method lastDay (line 81) | public static function lastDay(mixed $dateValue, array|float|int|bool|...
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/NetworkDays.php
class NetworkDays (line 9) | class NetworkDays
method count (line 36) | public static function count(mixed $startDate, mixed $endDate, mixed ....
method calcStartDow (line 85) | private static function calcStartDow(float $startDate): int
method calcEndDow (line 95) | private static function calcEndDow(float $endDate): int
method calcPartWeekDays (line 105) | private static function calcPartWeekDays(int $startDow, int $endDow): int
method applySign (line 115) | private static function applySign(int $result, float $sDate, float $eD...
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/Time.php
class Time (line 12) | class Time
method fromHMS (line 46) | public static function fromHMS(array|int|float|bool|null|string $hour,...
method adjustSecond (line 87) | private static function adjustSecond(int &$second, int &$minute): void
method adjustMinute (line 101) | private static function adjustMinute(int &$minute, int &$hour): void
method toIntWithNullBool (line 118) | private static function toIntWithNullBool(mixed $value): int
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeParts.php
class TimeParts (line 11) | class TimeParts
method hour (line 32) | public static function hour(mixed $timeValue): array|string|int
method minute (line 78) | public static function minute(mixed $timeValue): array|string|int
method second (line 124) | public static function second(mixed $timeValue): array|string|int
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeValue.php
class TimeValue (line 12) | class TimeValue
method fromString (line 53) | public static function fromString(null|array|string|int|bool|float $ti...
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/Week.php
class Week (line 11) | class Week
method number (line 48) | public static function number(mixed $dateValue, array|int|string|null ...
method isoWeekNumber (line 108) | public static function isoWeekNumber(mixed $dateValue): array|int|string
method day (line 153) | public static function day(null|array|float|int|string|bool $dateValue...
method validateStyle (line 192) | private static function validateStyle(mixed $style): int
method dow0Becomes7 (line 205) | private static function dow0Becomes7(int $DoW): int
method apparentBug (line 214) | private static function apparentBug(mixed $dateValue): bool
method validateDateValue (line 231) | private static function validateDateValue(mixed $dateValue): float
method validateMethod (line 243) | private static function validateMethod(mixed $method): int
method buggyWeekNum1900 (line 262) | private static function buggyWeekNum1900(int $method): bool
method buggyWeekNum1904 (line 267) | private static function buggyWeekNum1904(int $method, bool $origNull, ...
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/WorkDay.php
class WorkDay (line 10) | class WorkDay
method date (line 39) | public static function date(mixed $startDate, array|int|string $endDay...
method incrementing (line 78) | private static function incrementing(float $startDate, int $endDays, a...
method incrementingArray (line 109) | private static function incrementingArray(float $startDate, float $end...
method decrementing (line 141) | private static function decrementing(float $startDate, int $endDays, a...
method decrementingArray (line 172) | private static function decrementingArray(float $startDate, float $end...
method getWeekDay (line 200) | private static function getWeekDay(float $date, int $wd): int
FILE: src/PhpSpreadsheet/Calculation/DateTimeExcel/YearFrac.php
class YearFrac (line 11) | class YearFrac
method fraction (line 46) | public static function fraction(mixed $startDate, mixed $endDate, arra...
method excelBug (line 77) | private static function excelBug(float $sDate, mixed $startDate, mixed...
method method1 (line 92) | private static function method1(float $startDate, float $endDate): float
FILE: src/PhpSpreadsheet/Calculation/Engine/ArrayArgumentHelper.php
class ArrayArgumentHelper (line 7) | class ArrayArgumentHelper
method initialise (line 23) | public function initialise(array $arguments): void
method arguments (line 42) | public function arguments(): array
method hasArrayArgument (line 47) | public function hasArrayArgument(): bool
method getFirstArrayArgumentNumber (line 52) | public function getFirstArrayArgumentNumber(): int
method getSingleRowVector (line 66) | public function getSingleRowVector(): ?int
method getRowVectors (line 74) | private function getRowVectors(): array
method getSingleColumnVector (line 86) | public function getSingleColumnVector(): ?int
method getColumnVectors (line 94) | private function getColumnVectors(): array
method getMatrixPair (line 107) | public function getMatrixPair(): array
method isVector (line 120) | public function isVector(int $argument): bool
method isRowVector (line 125) | public function isRowVector(int $argument): bool
method isColumnVector (line 130) | public function isColumnVector(int $argument): bool
method rowCount (line 135) | public function rowCount(int $argument): int
method columnCount (line 140) | public function columnCount(int $argument): int
method rows (line 150) | private function rows(array $arguments): array
method columns (line 163) | private function columns(array $arguments): array
method arrayArguments (line 173) | public function arrayArguments(): int
method flattenSingleCellArrays (line 192) | private function flattenSingleCellArrays(array $arguments, array $rows...
method filterArray (line 211) | private function filterArray(array $array): array
FILE: src/PhpSpreadsheet/Calculation/Engine/ArrayArgumentProcessor.php
class ArrayArgumentProcessor (line 8) | class ArrayArgumentProcessor
method processArguments (line 13) | public static function processArguments(
method evaluateVectorMatrixPair (line 64) | private static function evaluateVectorMatrixPair(callable $method, arr...
method evaluateMatrixPair (line 109) | private static function evaluateMatrixPair(callable $method, array $ma...
method evaluateVectorPair (line 137) | private static function evaluateVectorPair(callable $method, int $rowI...
method evaluateNthArgumentAsArray (line 162) | private static function evaluateNthArgumentAsArray(callable $method, i...
FILE: src/PhpSpreadsheet/Calculation/Engine/BranchPruner.php
class BranchPruner (line 7) | class BranchPruner
method __construct (line 54) | public function __construct(bool $branchPruningEnabled)
method clearBranchStore (line 59) | public function clearBranchStore(): void
method initialiseForLoop (line 64) | public function initialiseForLoop(): void
method initialiseCondition (line 79) | private function initialiseCondition(): void
method initialiseThen (line 91) | private function initialiseThen(): void
method initialiseElse (line 103) | private function initialiseElse(): void
method decrementDepth (line 115) | public function decrementDepth(): void
method incrementDepth (line 122) | public function incrementDepth(): void
method functionCall (line 129) | public function functionCall(string $functionName): void
method argumentSeparator (line 143) | public function argumentSeparator(): void
method closingBrace (line 159) | public function closingBrace(mixed $value): void
method currentCondition (line 179) | public function currentCondition(): ?string
method currentOnlyIf (line 184) | public function currentOnlyIf(): ?string
method currentOnlyIfNot (line 189) | public function currentOnlyIfNot(): ?string
method getUnusedBranchStoreKey (line 194) | private function getUnusedBranchStoreKey(): string
FILE: src/PhpSpreadsheet/Calculation/Engine/CyclicReferenceStack.php
class CyclicReferenceStack (line 5) | class CyclicReferenceStack
method count (line 17) | public function count(): int
method push (line 27) | public function push($value): void
method pop (line 35) | public function pop(): mixed
method onStack (line 45) | public function onStack($value): bool
method clear (line 53) | public function clear(): void
method showStack (line 63) | public function showStack(): array
FILE: src/PhpSpreadsheet/Calculation/Engine/FormattedNumber.php
class FormattedNumber (line 8) | class FormattedNumber
method convertToNumberIfFormatted (line 25) | public static function convertToNumberIfFormatted(float|string &$opera...
method convertToNumberIfNumeric (line 39) | public static function convertToNumberIfNumeric(float|string &$operand...
method convertToNumberIfFraction (line 61) | public static function convertToNumberIfFraction(float|string &$operan...
method convertToNumberIfPercent (line 83) | public static function convertToNumberIfPercent(float|string &$operand...
method convertToNumberIfCurrency (line 108) | public static function convertToNumberIfCurrency(float|string &$operan...
method currencyMatcherRegexp (line 132) | public static function currencyMatcherRegexp(): string
FILE: src/PhpSpreadsheet/Calculation/Engine/Logger.php
class Logger (line 5) | class Logger
method __construct (line 37) | public function __construct(CyclicReferenceStack $stack)
method setWriteDebugLog (line 45) | public function setWriteDebugLog(bool $writeDebugLog): void
method getWriteDebugLog (line 53) | public function getWriteDebugLog(): bool
method setEchoDebugLog (line 61) | public function setEchoDebugLog(bool $echoDebugLog): void
method getEchoDebugLog (line 69) | public function getEchoDebugLog(): bool
method writeDebugLog (line 77) | public function writeDebugLog(string $message, mixed ...$args): void
method mergeDebugLog (line 100) | public function mergeDebugLog(array $args): void
method clearLog (line 112) | public function clearLog(): void
method getLog (line 122) | public function getLog(): array
FILE: src/PhpSpreadsheet/Calculation/Engine/Operands/Operand.php
type Operand (line 5) | interface Operand
method fromParser (line 8) | public static function fromParser(string $formula, int $index, array $...
method value (line 10) | public function value(): string;
FILE: src/PhpSpreadsheet/Calculation/Engine/Operands/StructuredReference.php
class StructuredReference (line 13) | final class StructuredReference implements Operand, Stringable
method __construct (line 54) | public function __construct(string $structuredReference)
method fromParser (line 60) | public static function fromParser(string $formula, int $index, array $...
method parse (line 88) | public function parse(Cell $cell): string
method isRowReference (line 101) | private function isRowReference(): bool
method getTableStructure (line 111) | private function getTableStructure(Cell $cell): void
method getTableForCell (line 139) | private function getTableForCell(Cell $cell): Table
method getTableByName (line 159) | private function getTableByName(Cell $cell): Table
method getColumns (line 182) | private function getColumns(Cell $cell, array $tableRange): array
method getRowReference (line 201) | private function getRowReference(Cell $cell): string
method adjustRowReference (line 215) | private function adjustRowReference(string $columnName, string $refere...
method getColumnReference (line 236) | private function getColumnReference(): string
method validateParsedReference (line 260) | private function validateParsedReference(string $reference): string
method fullData (line 274) | private function fullData(int $startRow, int $endRow): string
method getMinimumRow (line 283) | private function getMinimumRow(string $reference): int
method getMaximumRow (line 293) | private function getMaximumRow(string $reference): int
method value (line 303) | public function value(): string
method getRowsForColumnReference (line 311) | private function getRowsForColumnReference(string &$reference, int $st...
method getColumnsForColumnReference (line 338) | private function getColumnsForColumnReference(string $reference, int $...
method __toString (line 360) | public function __toString(): string
FILE: src/PhpSpreadsheet/Calculation/Engineering/BesselI.php
class BesselI (line 9) | class BesselI
method BESSELI (line 38) | public static function BESSELI(mixed $x, mixed $ord): array|string|float
method calculate (line 60) | private static function calculate(float $x, int $ord): float
method besselI0 (line 69) | private static function besselI0(float $x): float
method besselI1 (line 88) | private static function besselI1(float $x): float
method besselI2 (line 110) | private static function besselI2(float $x, int $ord): float
FILE: src/PhpSpreadsheet/Calculation/Engineering/BesselJ.php
class BesselJ (line 9) | class BesselJ
method BESSELJ (line 37) | public static function BESSELJ(mixed $x, mixed $ord): array|string|float
method calculate (line 59) | private static function calculate(float $x, int $ord): float
method besselJ0 (line 68) | private static function besselJ0(float $x): float
method besselJ1 (line 92) | private static function besselJ1(float $x): float
method besselJ2 (line 118) | private static function besselJ2(float $x, int $ord): float
method besselj2a (line 132) | private static function besselj2a(float $ax, int $ord, float $x): float
method besselj2b (line 147) | private static function besselj2b(float $ax, int $ord, float $x): float
FILE: src/PhpSpreadsheet/Calculation/Engineering/BesselK.php
class BesselK (line 9) | class BesselK
method BESSELK (line 35) | public static function BESSELK(mixed $x, mixed $ord): array|string|float
method calculate (line 57) | private static function calculate(float $x, int $ord): float
method callBesselI (line 71) | private static function callBesselI(float $x, int $ord): float
method besselK0 (line 81) | private static function besselK0(float $x): float
method besselK1 (line 99) | private static function besselK1(float $x): float
method besselK2 (line 117) | private static function besselK2(float $x, int $ord): float
FILE: src/PhpSpreadsheet/Calculation/Engineering/BesselY.php
class BesselY (line 9) | class BesselY
method BESSELY (line 34) | public static function BESSELY(mixed $x, mixed $ord): array|string|float
method calculate (line 56) | private static function calculate(float $x, int $ord): float
method callBesselJ (line 70) | private static function callBesselJ(float $x, int $ord): float
method besselY0 (line 80) | private static function besselY0(float $x): float
method besselY1 (line 102) | private static function besselY1(float $x): float
method besselY2 (line 124) | private static function besselY2(float $x, int $ord): float
FILE: src/PhpSpreadsheet/Calculation/Engineering/BitWise.php
class BitWise (line 9) | class BitWise
method splitNumber (line 20) | private static function splitNumber(float|int $number): array
method BITAND (line 39) | public static function BITAND(null|array|bool|float|int|string $number...
method BITOR (line 71) | public static function BITOR(null|array|bool|float|int|string $number1...
method BITXOR (line 104) | public static function BITXOR(null|array|bool|float|int|string $number...
method BITLSHIFT (line 137) | public static function BITLSHIFT(null|array|bool|float|int|string $num...
method BITRSHIFT (line 172) | public static function BITRSHIFT(null|array|bool|float|int|string $num...
method validateBitwiseArgument (line 196) | private static function validateBitwiseArgument(mixed $value): float
method validateShiftAmount (line 219) | private static function validateShiftAmount(mixed $value): int
method nullFalseTrueToNumber (line 237) | private static function nullFalseTrueToNumber(mixed &$number): mixed
FILE: src/PhpSpreadsheet/Calculation/Engineering/Compare.php
class Compare (line 8) | class Compare
method DELTA (line 32) | public static function DELTA(array|float|bool|string|int $a, array|flo...
method GESTEP (line 67) | public static function GESTEP(array|float|bool|string|int $number, $st...
FILE: src/PhpSpreadsheet/Calculation/Engineering/Complex.php
class Complex (line 11) | class Complex
method COMPLEX (line 34) | public static function COMPLEX(mixed $realNumber = 0.0, mixed $imagina...
method IMAGINARY (line 76) | public static function IMAGINARY($complexNumber): array|string|float
method IMREAL (line 106) | public static function IMREAL($complexNumber): array|string|float
FILE: src/PhpSpreadsheet/Calculation/Engineering/ComplexFunctions.php
class ComplexFunctions (line 10) | class ComplexFunctions
method IMABS (line 28) | public static function IMABS(array|string $complexNumber): array|float...
method IMARGUMENT (line 58) | public static function IMARGUMENT(array|string $complexNumber): array|...
method IMCONJUGATE (line 91) | public static function IMCONJUGATE(array|string $complexNumber): array...
method IMCOS (line 120) | public static function IMCOS(array|string $complexNumber): array|string
method IMCOSH (line 149) | public static function IMCOSH(array|string $complexNumber): array|string
method IMCOT (line 178) | public static function IMCOT(array|string $complexNumber): array|string
method IMCSC (line 207) | public static function IMCSC(array|string $complexNumber): array|string
method IMCSCH (line 236) | public static function IMCSCH(array|string $complexNumber): array|string
method IMSIN (line 265) | public static function IMSIN(array|string $complexNumber): array|string
method IMSINH (line 294) | public static function IMSINH(array|string $complexNumber): array|string
method IMSEC (line 323) | public static function IMSEC(array|string $complexNumber): array|string
method IMSECH (line 352) | public static function IMSECH(array|string $complexNumber): array|string
method IMTAN (line 381) | public static function IMTAN(array|string $complexNumber): array|string
method IMSQRT (line 410) | public static function IMSQRT(array|string $complexNumber): array|string
method IMLN (line 444) | public static function IMLN(array|string $complexNumber): array|string
method IMLOG10 (line 477) | public static function IMLOG10(array|string $complexNumber): array|string
method IMLOG2 (line 510) | public static function IMLOG2(array|string $complexNumber): array|string
method IMEXP (line 543) | public static function IMEXP(array|string $complexNumber): array|string
method IMPOWER (line 574) | public static function IMPOWER(array|string $complexNumber, array|floa...
FILE: src/PhpSpreadsheet/Calculation/Engineering/ComplexOperations.php
class ComplexOperations (line 11) | class ComplexOperations
method IMDIV (line 31) | public static function IMDIV(array|string $complexDividend, array|stri...
method IMSUB (line 60) | public static function IMSUB(array|string $complexNumber1, array|strin...
method IMSUM (line 83) | public static function IMSUM(...$complexNumbers): string
method IMPRODUCT (line 111) | public static function IMPRODUCT(...$complexNumbers): string
FILE: src/PhpSpreadsheet/Calculation/Engineering/Constants.php
class Constants (line 5) | class Constants
FILE: src/PhpSpreadsheet/Calculation/Engineering/ConvertBase.php
class ConvertBase (line 11) | abstract class ConvertBase
method validateValue (line 15) | protected static function validateValue(mixed $value): string
method validatePlaces (line 33) | protected static function validatePlaces(mixed $places = null): ?int
method nbrConversionFormat (line 58) | protected static function nbrConversionFormat(string $value, ?int $pla...
FILE: src/PhpSpreadsheet/Calculation/Engineering/ConvertBinary.php
class ConvertBinary (line 8) | class ConvertBinary extends ConvertBase
method toDecimal (line 30) | public static function toDecimal($value)
method toHex (line 80) | public static function toHex($value, $places = null): array|string
method toOctal (line 133) | public static function toOctal($value, $places = null): array|string
method validateBinary (line 155) | protected static function validateBinary(string $value): string
FILE: src/PhpSpreadsheet/Calculation/Engineering/ConvertDecimal.php
class ConvertDecimal (line 8) | class ConvertDecimal extends ConvertBase
method toBinary (line 48) | public static function toBinary($value, $places = null): array|string
method toHex (line 105) | public static function toHex($value, $places = null): array|string
method hex32bit (line 129) | public static function hex32bit(float $value, string $hexstr, bool $fo...
method toOctal (line 181) | public static function toOctal($value, $places = null): array|string
method validateDecimal (line 205) | protected static function validateDecimal(string $value): string
FILE: src/PhpSpreadsheet/Calculation/Engineering/ConvertHex.php
class ConvertHex (line 8) | class ConvertHex extends ConvertBase
method toBinary (line 41) | public static function toBinary($value, $places = null): array|string
method toDecimal (line 81) | public static function toDecimal($value)
method toOctal (line 148) | public static function toOctal($value, $places = null): array|string
method validateHex (line 167) | protected static function validateHex(string $value): string
FILE: src/PhpSpreadsheet/Calculation/Engineering/ConvertOctal.php
class ConvertOctal (line 8) | class ConvertOctal extends ConvertBase
method toBinary (line 47) | public static function toBinary($value, $places = null): array|string
method toDecimal (line 85) | public static function toDecimal($value)
method toHex (line 145) | public static function toHex($value, $places = null): array|string
method validateOctal (line 165) | protected static function validateOctal(string $value): string
FILE: src/PhpSpreadsheet/Calculation/Engineering/ConvertUOM.php
class ConvertUOM (line 9) | class ConvertUOM
method getConversionCategories (line 441) | public static function getConversionCategories(): array
method getConversionCategoryUnits (line 459) | public static function getConversionCategoryUnits(?string $category = ...
method getConversionCategoryUnitDetails (line 478) | public static function getConversionCategoryUnitDetails(?string $categ...
method getConversionMultipliers (line 499) | public static function getConversionMultipliers(): array
method getBinaryConversionMultipliers (line 510) | public static function getBinaryConversionMultipliers(): array
method CONVERT (line 536) | public static function CONVERT($value, $fromUOM, $toUOM)
method getUOMDetails (line 576) | private static function getUOMDetails(string $uom): array
method convertTemperature (line 625) | protected static function convertTemperature(string $fromUOM, string $...
method resolveTemperatureSynonyms (line 677) | private static function resolveTemperatureSynonyms(string $uom): string
FILE: src/PhpSpreadsheet/Calculation/Engineering/EngineeringValidations.php
class EngineeringValidations (line 8) | class EngineeringValidations
method validateFloat (line 10) | public static function validateFloat(mixed $value): float
method validateInt (line 19) | public static function validateInt(mixed $value): int
FILE: src/PhpSpreadsheet/Calculation/Engineering/Erf.php
class Erf (line 9) | class Erf
method ERF (line 37) | public static function ERF(mixed $lower, mixed $upper = null): array|f...
method ERFPRECISE (line 69) | public static function ERFPRECISE(mixed $limit)
method makeFloat (line 78) | private static function makeFloat(mixed $value): float
method erfValue (line 86) | public static function erfValue(float|int|string $value): float
FILE: src/PhpSpreadsheet/Calculation/Engineering/ErfC.php
class ErfC (line 9) | class ErfC
method ERFC (line 32) | public static function ERFC(mixed $value)
method erfcValue (line 50) | private static function erfcValue(float|int|string $value): float|int
FILE: src/PhpSpreadsheet/Calculation/Exception.php
class Exception (line 7) | class Exception extends PhpSpreadsheetException
method errorHandlerCallback (line 14) | public static function errorHandlerCallback(int $code, string $string,...
FILE: src/PhpSpreadsheet/Calculation/ExceptionHandler.php
class ExceptionHandler (line 5) | class ExceptionHandler
method __construct (line 10) | public function __construct()
method __destruct (line 20) | public function __destruct()
FILE: src/PhpSpreadsheet/Calculation/Financial/Amortization.php
class Amortization (line 10) | class Amortization
method AMORDEGRC (line 42) | public static function AMORDEGRC(
method AMORLINC (line 127) | public static function AMORLINC(
method getAmortizationCoefficient (line 193) | private static function getAmortizationCoefficient(float $rate): float
FILE: src/PhpSpreadsheet/Calculation/Financial/CashFlow/CashFlowValidations.php
class CashFlowValidations (line 10) | class CashFlowValidations extends FinancialValidations
method validateRate (line 12) | public static function validateRate(mixed $rate): float
method validatePeriodType (line 19) | public static function validatePeriodType(mixed $type): int
method validatePresentValue (line 32) | public static function validatePresentValue(mixed $presentValue): float
method validateFutureValue (line 37) | public static function validateFutureValue(mixed $futureValue): float
FILE: src/PhpSpreadsheet/Calculation/Financial/CashFlow/Constant/Periodic.php
class Periodic (line 11) | class Periodic
method futureValue (line 32) | public static function futureValue(
method presentValue (line 71) | public static function presentValue(
method periods (line 115) | public static function periods(
method calculateFutureValue (line 146) | private static function calculateFutureValue(
method calculatePresentValue (line 162) | private static function calculatePresentValue(
method calculatePeriods (line 177) | private static function calculatePeriods(
FILE: src/PhpSpreadsheet/Calculation/Financial/CashFlow/Constant/Periodic/Cumulative.php
class Cumulative (line 11) | class Cumulative
method interest (line 31) | public static function interest(
method principal (line 94) | public static function principal(
FILE: src/PhpSpreadsheet/Calculation/Financial/CashFlow/Constant/Periodic/Interest.php
class Interest (line 11) | class Interest
method payment (line 33) | public static function payment(
method schedulePayment (line 90) | public static function schedulePayment(mixed $interestRate, mixed $per...
method rate (line 152) | public static function rate(
method rateNextGuess (line 196) | private static function rateNextGuess(float $rate, float $numberOfPeri...
FILE: src/PhpSpreadsheet/Calculation/Financial/CashFlow/Constant/Periodic/InterestAndPrincipal.php
class InterestAndPrincipal (line 7) | class InterestAndPrincipal
method __construct (line 13) | public function __construct(
method interest (line 35) | public function interest(): float
method principal (line 40) | public function principal(): float
FILE: src/PhpSpreadsheet/Calculation/Financial/CashFlow/Constant/Periodic/Payments.php
class Payments (line 11) | class Payments
method annuity (line 26) | public static function annuity(
method interestPayment (line 73) | public static function interestPayment(
FILE: src/PhpSpreadsheet/Calculation/Financial/CashFlow/Single.php
class Single (line 9) | class Single
method futureValue (line 23) | public static function futureValue(mixed $principal, array $schedule):...
method periods (line 53) | public static function periods(mixed $rate, mixed $presentValue, mixed...
method interestRate (line 86) | public static function interestRate(mixed $periods = 0.0, mixed $prese...
FILE: src/PhpSpreadsheet/Calculation/Financial/CashFlow/Variable/NonPeriodic.php
class NonPeriodic (line 11) | class NonPeriodic
method rate (line 34) | public static function rate(mixed $values, $dates, mixed $guess = self...
method presentValue (line 123) | public static function presentValue(mixed $rate, mixed $values, mixed ...
method bothNegAndPos (line 128) | private static function bothNegAndPos(bool $neg, bool $pos): bool
method xirrPart1 (line 134) | private static function xirrPart1(mixed &$values, mixed &$dates): string
method xirrPart2 (line 162) | private static function xirrPart2(array &$values): string
method xirrPart3 (line 188) | private static function xirrPart3(array $values, array $dates, float $...
method xirrBisection (line 221) | private static function xirrBisection(array $values, array $dates, flo...
method xnpvOrdered (line 258) | private static function xnpvOrdered(mixed $rate, mixed $values, mixed ...
method validateXnpv (line 311) | private static function validateXnpv(mixed $rate, array $values, array...
FILE: src/PhpSpreadsheet/Calculation/Financial/CashFlow/Variable/Periodic.php
class Periodic (line 8) | class Periodic
method rate (line 32) | public static function rate(mixed $values, mixed $guess = 0.1): string...
method modifiedRate (line 103) | public static function modifiedRate(mixed $values, mixed $financeRate,...
method presentValue (line 145) | public static function presentValue(mixed $rate, ...$args): int|float
FILE: src/PhpSpreadsheet/Calculation/Financial/Constants.php
class Constants (line 5) | class Constants
FILE: src/PhpSpreadsheet/Calculation/Financial/Coupons.php
class Coupons (line 13) | class Coupons
method COUPDAYBS (line 43) | public static function COUPDAYBS(
method COUPDAYS (line 102) | public static function COUPDAYS(
method COUPDAYSNC (line 169) | public static function COUPDAYSNC(
method COUPNCD (line 232) | public static function COUPNCD(
method COUPNUM (line 282) | public static function COUPNUM(
method COUPPCD (line 339) | public static function COUPPCD(
method monthsDiff (line 363) | private static function monthsDiff(DateTime $result, int $months, stri...
method couponFirstPeriodDate (line 371) | private static function couponFirstPeriodDate(float $settlement, float...
method validateCouponPeriod (line 389) | private static function validateCouponPeriod(float $settlement, float ...
FILE: src/PhpSpreadsheet/Calculation/Financial/Depreciation.php
class Depreciation (line 9) | class Depreciation
method DB (line 36) | public static function DB(mixed $cost, mixed $salvage, mixed $life, mi...
method DDB (line 100) | public static function DDB(mixed $cost, mixed $salvage, mixed $life, m...
method SLN (line 148) | public static function SLN(mixed $cost, mixed $salvage, mixed $life): ...
method SYD (line 181) | public static function SYD(mixed $cost, mixed $salvage, mixed $life, m...
method validateCost (line 206) | private static function validateCost(mixed $cost, bool $negativeValueA...
method validateSalvage (line 216) | private static function validateSalvage(mixed $salvage, bool $negative...
method validateLife (line 226) | private static function validateLife(mixed $life, bool $negativeValueA...
method validatePeriod (line 236) | private static function validatePeriod(mixed $period, bool $negativeVa...
method validateMonth (line 246) | private static function validateMonth(mixed $month): int
method validateFactor (line 256) | private static function validateFactor(mixed $factor): float
FILE: src/PhpSpreadsheet/Calculation/Financial/Dollar.php
class Dollar (line 11) | class Dollar
method format (line 31) | public static function format(mixed $number, mixed $precision = 2)
method decimal (line 53) | public static function decimal(mixed $fractionalDollar = null, mixed $...
method fractional (line 101) | public static function fractional(mixed $decimalDollar = null, mixed $...
FILE: src/PhpSpreadsheet/Calculation/Financial/FinancialValidations.php
class FinancialValidations (line 10) | class FinancialValidations
method validateDate (line 12) | public static function validateDate(mixed $date): float
method validateSettlementDate (line 17) | public static function validateSettlementDate(mixed $settlement): float
method validateMaturityDate (line 22) | public static function validateMaturityDate(mixed $maturity): float
method validateFloat (line 27) | public static function validateFloat(mixed $value): float
method validateInt (line 36) | public static function validateInt(mixed $value): int
method validateRate (line 45) | public static function validateRate(mixed $rate): float
method validateFrequency (line 55) | public static function validateFrequency(mixed $frequency): int
method validateBasis (line 69) | public static function validateBasis(mixed $basis): int
method validatePrice (line 83) | public static function validatePrice(mixed $price): float
method validateParValue (line 93) | public static function validateParValue(mixed $parValue): float
method validateYield (line 103) | public static function validateYield(mixed $yield): float
method validateDiscount (line 113) | public static function validateDiscount(mixed $discount): float
FILE: src/PhpSpreadsheet/Calculation/Financial/Helpers.php
class Helpers (line 10) | class Helpers
method daysPerYear (line 27) | public static function daysPerYear(mixed $year, $basis = 0): string|int
method isLastDayOfMonth (line 57) | public static function isLastDayOfMonth(DateTimeInterface $date): bool
FILE: src/PhpSpreadsheet/Calculation/Financial/InterestRate.php
class InterestRate (line 9) | class InterestRate
method effective (line 23) | public static function effective(mixed $nominalRate = 0, mixed $period...
method nominal (line 52) | public static function nominal(mixed $effectiveRate = 0, mixed $period...
FILE: src/PhpSpreadsheet/Calculation/Financial/Securities/AccruedInterest.php
class AccruedInterest (line 11) | class AccruedInterest
method periodic (line 48) | public static function periodic(
method atMaturity (line 114) | public static function atMaturity(
FILE: src/PhpSpreadsheet/Calculation/Financial/Securities/Price.php
class Price (line 14) | class Price
method price (line 41) | public static function price(
method priceDiscounted (line 110) | public static function priceDiscounted(
method priceAtMaturity (line 165) | public static function priceAtMaturity(
method received (line 241) | public static function received(
FILE: src/PhpSpreadsheet/Calculation/Financial/Securities/Rates.php
class Rates (line 12) | class Rates
method discount (line 36) | public static function discount(
method interest (line 95) | public static function interest(
FILE: src/PhpSpreadsheet/Calculation/Financial/Securities/SecurityValidations.php
class SecurityValidations (line 9) | class SecurityValidations extends FinancialValidations
method validateIssueDate (line 11) | public static function validateIssueDate(mixed $issue): float
method validateSecurityPeriod (line 16) | public static function validateSecurityPeriod(mixed $settlement, mixed...
method validateRedemption (line 23) | public static function validateRedemption(mixed $redemption): float
FILE: src/PhpSpreadsheet/Calculation/Financial/Securities/Yields.php
class Yields (line 12) | class Yields
method yieldDiscounted (line 35) | public static function yieldDiscounted(
method yieldAtMaturity (line 95) | public static function yieldAtMaturity(
FILE: src/PhpSpreadsheet/Calculation/Financial/TreasuryBill.php
class TreasuryBill (line 11) | class TreasuryBill
method bondEquivalentYield (line 27) | public static function bondEquivalentYield(mixed $settlement, mixed $m...
method price (line 72) | public static function price(mixed $settlement, mixed $maturity, mixed...
method yield (line 120) | public static function yield(mixed $settlement, mixed $maturity, $pric...
FILE: src/PhpSpreadsheet/Calculation/FormulaParser.php
class FormulaParser (line 30) | class FormulaParser
method __construct (line 67) | public function __construct(?string $formula = '')
method getFormula (line 83) | public function getFormula(): string
method getToken (line 93) | public function getToken(int $id = 0): FormulaToken
method getTokenCount (line 105) | public function getTokenCount(): int
method getTokens (line 115) | public function getTokens(): array
method parseToTokens (line 123) | private function parseToTokens(): void
FILE: src/PhpSpreadsheet/Calculation/FormulaToken.php
class FormulaToken (line 30) | class FormulaToken
method __construct (line 79) | public function __construct(string $value, string $tokenType = self::T...
method getValue (line 90) | public function getValue(): string
method setValue (line 98) | public function setValue(string $value): void
method getTokenType (line 106) | public function getTokenType(): string
method setTokenType (line 114) | public function setTokenType(string $value): void
method getTokenSubType (line 122) | public function getTokenSubType(): string
method setTokenSubType (line 130) | public function setTokenSubType(string $value): void
FILE: src/PhpSpreadsheet/Calculation/FunctionArray.php
class FunctionArray (line 5) | class FunctionArray extends CalculationBase
FILE: src/PhpSpreadsheet/Calculation/Functions.php
class Functions (line 10) | class Functions
method setCompatibilityMode (line 54) | public static function setCompatibilityMode(string $compatibilityMode)...
method getCompatibilityMode (line 78) | public static function getCompatibilityMode(): string
method setReturnDateType (line 94) | public static function setReturnDateType(string $returnDateType): bool
method getReturnDateType (line 118) | public static function getReturnDateType(): string
method DUMMY (line 128) | public static function DUMMY(): string
method isMatrixValue (line 133) | public static function isMatrixValue(mixed $idx): bool
method isValue (line 140) | public static function isValue(mixed $idx): bool
method isCellValue (line 147) | public static function isCellValue(mixed $idx): bool
method ifCondition (line 154) | public static function ifCondition(mixed $condition): string
method operandSpecialHandling (line 193) | private static function operandSpecialHandling(mixed $operand): bool|f...
method flattenArray (line 223) | public static function flattenArray(mixed $array): array
method flattenArray2 (line 253) | public static function flattenArray2(mixed ...$array): array
method scalar (line 271) | public static function scalar(mixed $value): mixed
method flattenArrayIndexed (line 291) | public static function flattenArrayIndexed($array): array
method flattenSingleValue (line 322) | public static function flattenSingleValue(mixed $value): mixed
method expandDefinedName (line 331) | public static function expandDefinedName(string $coordinate, Cell $cel...
method trimTrailingRange (line 351) | public static function trimTrailingRange(string $coordinate): string
method trimSheetFromCellReference (line 356) | public static function trimSheetFromCellReference(string $coordinate):...
method convertArrayToCellRange (line 366) | public static function convertArrayToCellRange(array $array): string
FILE: src/PhpSpreadsheet/Calculation/Information/ErrorValue.php
class ErrorValue (line 8) | class ErrorValue
method isErr (line 21) | public static function isErr(mixed $value = ''): array|bool
method isError (line 39) | public static function isError(mixed $value = '', bool $tryNotImplemen...
method isNa (line 64) | public static function isNa(mixed $value = ''): array|bool
FILE: src/PhpSpreadsheet/Calculation/Information/ExcelError.php
class ExcelError (line 7) | class ExcelError
method throwError (line 33) | public static function throwError(mixed $value): string
method type (line 45) | public static function type(mixed $value = ''): array|int|string
method null (line 69) | public static function null(): string
method NAN (line 81) | public static function NAN(): string
method REF (line 93) | public static function REF(): string
method NA (line 109) | public static function NA(): string
method VALUE (line 121) | public static function VALUE(): string
method NAME (line 133) | public static function NAME(): string
method DIV0 (line 143) | public static function DIV0(): string
method CALC (line 153) | public static function CALC(): string
method SPILL (line 163) | public static function SPILL(): string
FILE: src/PhpSpreadsheet/Calculation/Information/Info.php
class Info (line 8) | class Info
method getInfo (line 26) | public static function getInfo(mixed $typeText = '', ?Cell $cell = nul...
FILE: src/PhpSpreadsheet/Calculation/Information/Value.php
class Value (line 15) | class Value
method isBlank (line 28) | public static function isBlank(mixed $value = null): array|bool
method isRef (line 42) | public static function isRef(mixed $value, ?Cell $cell = null): bool
method isEven (line 79) | public static function isEven(mixed $value = null): array|string|bool
method isOdd (line 104) | public static function isOdd(mixed $value = null): array|string|bool
method isNumber (line 129) | public static function isNumber(mixed $value = null): array|bool
method isLogical (line 151) | public static function isLogical(mixed $value = null): array|bool
method isText (line 169) | public static function isText(mixed $value = null): array|bool
method isNonText (line 187) | public static function isNonText(mixed $value = null): array|bool
method isFormula (line 204) | public static function isFormula(mixed $cellReference = '', ?Cell $cel...
method asNumber (line 259) | public static function asNumber($value = null)
method type (line 292) | public static function type($value = null): int
FILE: src/PhpSpreadsheet/Calculation/Internal/ExcelArrayPseudoFunctions.php
class ExcelArrayPseudoFunctions (line 12) | class ExcelArrayPseudoFunctions
method single (line 14) | public static function single(string $cellReference, Cell $cell): mixed
method anchorArray (line 43) | public static function anchorArray(string $cellReference, Cell $cell):...
FILE: src/PhpSpreadsheet/Calculation/Internal/MakeMatrix.php
class MakeMatrix (line 5) | class MakeMatrix
method make (line 12) | public static function make(...$args): array
FILE: src/PhpSpreadsheet/Calculation/Internal/WildcardMatch.php
class WildcardMatch (line 5) | class WildcardMatch
method wildcard (line 25) | public static function wildcard(string $wildcard): string
method compare (line 31) | public static function compare(?string $value, string $wildcard): bool
FILE: src/PhpSpreadsheet/Calculation/Logical/Boolean.php
class Boolean (line 5) | class Boolean
method true (line 17) | public static function true(): bool
method false (line 32) | public static function false(): bool
FILE: src/PhpSpreadsheet/Calculation/Logical/Conditional.php
class Conditional (line 12) | class Conditional
method statementIf (line 49) | public static function statementIf(mixed $condition = true, mixed $ret...
method statementSwitch (line 89) | public static function statementSwitch(mixed ...$arguments): mixed
method IFERROR (line 135) | public static function IFERROR(mixed $testValue = '', mixed $errorpart...
method IFNA (line 162) | public static function IFNA(mixed $testValue = '', mixed $napart = '')...
method IFS (line 190) | public static function IFS(mixed ...$arguments)
FILE: src/PhpSpreadsheet/Calculation/Logical/Operations.php
class Operations (line 10) | class Operations
method logicalAnd (line 34) | public static function logicalAnd(mixed ...$args)
method logicalOr (line 59) | public static function logicalOr(mixed ...$args)
method logicalXor (line 86) | public static function logicalXor(mixed ...$args)
method NOT (line 113) | public static function NOT(mixed $logical = false): array|bool|string
method countTrueValues (line 137) | private static function countTrueValues(array $args, callable $func): ...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Address.php
class Address (line 11) | class Address
method cell (line 51) | public static function cell(mixed $row, mixed $column, mixed $relativi...
method sheetName (line 88) | private static function sheetName(string $sheetName): string
method formatAsA1 (line 100) | private static function formatAsA1(int $row, int $column, int $relativ...
method formatAsR1C1 (line 114) | private static function formatAsR1C1(int $row, int $column, int $relat...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/ChooseRowsEtc.php
class ChooseRowsEtc (line 8) | class ChooseRowsEtc
method transpose (line 19) | public static function transpose(array $array): array
method arrayValues (line 25) | private static function arrayValues(mixed $array): array
method chooseCols (line 37) | public static function chooseCols(mixed $input, mixed ...$args): array...
method chooseRows (line 54) | public static function chooseRows(mixed $input, mixed ...$args): array...
method dropRows (line 88) | private static function dropRows(array $array, mixed $offset): array|s...
method drop (line 120) | public static function drop(mixed $input, mixed $rows = null, mixed $c...
method takeRows (line 147) | private static function takeRows(array $array, mixed $offset): array|s...
method take (line 178) | public static function take(mixed $input, mixed $rows, mixed $columns ...
method expand (line 210) | public static function expand(mixed $input, mixed $rows, mixed $column...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/ExcelMatch.php
class ExcelMatch (line 12) | class ExcelMatch
method MATCH (line 35) | public static function MATCH(mixed $lookupValue, mixed $lookupArray, m...
method matchFirstValue (line 81) | private static function matchFirstValue(array $lookupArray, mixed $loo...
method matchLargestValue (line 121) | private static function matchLargestValue(array $lookupArray, mixed $l...
method matchSmallestValue (line 156) | private static function matchSmallestValue(array $lookupArray, mixed $...
method validateLookupValue (line 197) | private static function validateLookupValue(mixed $lookupValue): void
method validateMatchType (line 205) | private static function validateMatchType(mixed $matchType): int
method validateLookupArray (line 225) | private static function validateLookupArray(array $lookupArray): void
method prepareLookupArray (line 239) | private static function prepareLookupArray(array $lookupArray, mixed $...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Filter.php
class Filter (line 7) | class Filter
method filter (line 9) | public static function filter(mixed $lookupArray, mixed $matchArray, m...
method enumerateArrayKeys (line 39) | private static function enumerateArrayKeys(array $sortArray): array
method filterByRow (line 59) | private static function filterByRow(array $lookupArray, array $matchAr...
method filterByColumn (line 76) | private static function filterByColumn(array $lookupArray, array $matc...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Formula.php
class Formula (line 10) | class Formula
method text (line 18) | public static function text(mixed $cellReference = '', ?Cell $cell = n...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/HLookup.php
class HLookup (line 11) | class HLookup extends LookupBase
method lookup (line 28) | public static function lookup(mixed $lookupValue, $lookupArray, $index...
method hLookupSearch (line 69) | private static function hLookupSearch(mixed $lookupValue, array $looku...
method convertLiteralArray (line 108) | private static function convertLiteralArray(array $lookupArray): array
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Helpers.php
class Helpers (line 10) | class Helpers
method convertR1C1 (line 16) | private static function convertR1C1(string &$cellAddress1, ?string &$c...
method adjustSheetTitle (line 28) | private static function adjustSheetTitle(string &$sheetTitle, ?string ...
method extractCellAddresses (line 39) | public static function extractCellAddresses(string $cellAddress, bool ...
method extractWorksheet (line 62) | public static function extractWorksheet(string $cellAddress, Cell $cel...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Hstack.php
class Hstack (line 8) | class Hstack
method hstack (line 15) | public static function hstack(mixed ...$inputData): array|string
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Hyperlink.php
class Hyperlink (line 10) | class Hyperlink
method set (line 24) | public static function set(mixed $linkURL = '', mixed $displayName = n...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Indirect.php
class Indirect (line 14) | class Indirect
method a1Format (line 22) | private static function a1Format(mixed $a1fmt): bool
method validateAddress (line 40) | private static function validateAddress(array|string|null $cellAddress...
method INDIRECT (line 66) | public static function INDIRECT($cellAddress, mixed $a1fmt, Cell $cell...
method extractRequiredCells (line 107) | private static function extractRequiredCells(?Worksheet $worksheet, st...
method handleRowColumnRanges (line 113) | private static function handleRowColumnRanges(?Worksheet $worksheet, s...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Lookup.php
class Lookup (line 8) | class Lookup
method lookup (line 22) | public static function lookup(mixed $lookupValue, mixed $lookupVector,...
method verifyLookupValues (line 65) | private static function verifyLookupValues(array $lookupVector, array ...
method verifyResultVector (line 96) | private static function verifyResultVector(array $resultVector): array
method rowCount (line 110) | private static function rowCount(array $dataArray): int
method columnCount (line 116) | private static function columnCount(array $dataArray): int
FILE: src/PhpSpreadsheet/Calculation/LookupRef/LookupBase.php
class LookupBase (line 8) | abstract class LookupBase
method validateLookupArray (line 10) | protected static function validateLookupArray(mixed $lookupArray): void
method validateIndexLookup (line 21) | protected static function validateIndexLookup(array $lookupArray, $ind...
method checkMatch (line 44) | protected static function checkMatch(
FILE: src/PhpSpreadsheet/Calculation/LookupRef/LookupRefValidations.php
class LookupRefValidations (line 9) | class LookupRefValidations
method validateInt (line 11) | public static function validateInt(mixed $value): int
method validatePositiveInt (line 24) | public static function validatePositiveInt(mixed $value, bool $allowZe...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Matrix.php
class Matrix (line 9) | class Matrix
method isColumnVector (line 18) | public static function isColumnVector(array $values): bool
method isRowVector (line 28) | public static function isRowVector(array $values): bool
method transpose (line 41) | public static function transpose($matrixData): array
method index (line 87) | public static function index(mixed $matrix, mixed $rowNum = 0, mixed $...
method extractRowValue (line 155) | private static function extractRowValue(array $matrix, array $rowKeys,...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Offset.php
class Offset (line 13) | class Offset
method OFFSET (line 45) | public static function OFFSET(?string $cellAddress = null, $rows = 0, ...
method extractRequiredCells (line 103) | private static function extractRequiredCells(?Worksheet $worksheet, st...
method extractWorksheet (line 110) | private static function extractWorksheet(?string $cellAddress, Cell $c...
method assessCellAddress (line 126) | private static function assessCellAddress(string $cellAddress, Cell $c...
method adjustEndCellColumnForWidth (line 139) | private static function adjustEndCellColumnForWidth(string $endCellCol...
method adjustEndCellRowForHeight (line 155) | private static function adjustEndCellRowForHeight($height, int $startC...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/RowColumnInformation.php
class RowColumnInformation (line 14) | class RowColumnInformation
method cellAddressNullOrWhitespace (line 21) | private static function cellAddressNullOrWhitespace($cellAddress): bool
method cellColumn (line 26) | private static function cellColumn(?Cell $cell): int
method COLUMN (line 48) | public static function COLUMN($cellAddress = null, ?Cell $cell = null)...
method COLUMNS (line 105) | public static function COLUMNS($cellAddress = null)
method cellRow (line 128) | private static function cellRow(?Cell $cell): int|string
method convert0ToName (line 133) | private static function convert0ToName(int|string $result): int|string
method ROW (line 159) | public static function ROW($cellAddress = null, ?Cell $cell = null): i...
method ROWS (line 210) | public static function ROWS($cellAddress = null)
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Selection.php
class Selection (line 9) | class Selection
method choose (line 27) | public static function choose(mixed $chosenEntry, mixed ...$chooseArgs...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Sort.php
class Sort (line 11) | class Sort extends LookupRefValidations
method sort (line 37) | public static function sort(mixed $sortArray, mixed $sortIndex = 1, mi...
method sortBy (line 103) | public static function sortBy(mixed $sortArray, mixed ...$args): mixed
method enumerateArrayKeys (line 150) | private static function enumerateArrayKeys(array $sortArray): array
method validateScalarArgumentsForSort (line 164) | private static function validateScalarArgumentsForSort(mixed &$sortInd...
method validateSortVector (line 180) | private static function validateSortVector(array $sortVector, int $sor...
method validateSortOrder (line 191) | private static function validateSortOrder(mixed $sortOrder): int
method validateArrayArgumentsForSort (line 202) | private static function validateArrayArgumentsForSort(array &$sortInde...
method prepareSortVectorValues (line 233) | private static function prepareSortVectorValues(array $sortVector): array
method processSortBy (line 264) | private static function processSortBy(array $sortArray, array $sortInd...
method sortByRow (line 288) | private static function sortByRow(array $sortArray, array $sortIndex, ...
method sortByColumn (line 302) | private static function sortByColumn(array $sortArray, array $sortInde...
method buildVectorForSort (line 317) | private static function buildVectorForSort(array $sortArray, array $so...
method executeVectorSortQuery (line 339) | private static function executeVectorSortQuery(array $sortData, array ...
method sortLookupArrayFromVector (line 369) | private static function sortLookupArrayFromVector(array $sortArray, ar...
FILE: src/PhpSpreadsheet/Calculation/LookupRef/TorowTocol.php
class TorowTocol (line 9) | class TorowTocol
method tocol (line 16) | public static function tocol(mixed $array, mixed $ignore = 0, mixed $b...
method torow (line 31) | public static function torow(mixed $array, mixed $ignore = 0, mixed $b...
method byRow (line 70) | private static function byRow(array $array, int $ignore): array
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Unique.php
class Unique (line 9) | class Unique
method unique (line 21) | public static function unique(mixed $lookupVector, mixed $byColumn = f...
method uniqueByRow (line 37) | private static function uniqueByRow(array $lookupVector, bool $exactly...
method uniqueByColumn (line 92) | private static function uniqueByColumn(array $lookupVector, bool $exac...
method countValuesCaseInsensitive (line 125) | private static function countValuesCaseInsensitive(array $caseSensitiv...
method exactlyOnceFilter (line 157) | private static function exactlyOnceFilter(array $values): array
FILE: src/PhpSpreadsheet/Calculation/LookupRef/VLookup.php
class VLookup (line 10) | class VLookup extends LookupBase
method lookup (line 27) | public static function lookup(mixed $lookupValue, $lookupArray, mixed ...
method vlookupSort (line 72) | private static function vlookupSort(array $a, array $b): int
method vLookupSearch (line 91) | private static function vLookupSearch(mixed $lookupValue, array $looku...
method numeric (line 124) | private static function numeric(mixed $value): bool
FILE: src/PhpSpreadsheet/Calculation/LookupRef/Vstack.php
class Vstack (line 7) | class Vstack
method vstack (line 14) | public static function vstack(mixed ...$inputData): array|string
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Absolute.php
class Absolute (line 8) | class Absolute
method evaluate (line 23) | public static function evaluate(mixed $number): array|string|int|float
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Angle.php
class Angle (line 8) | class Angle
method toDegrees (line 23) | public static function toDegrees(mixed $number): array|string|float
method toRadians (line 49) | public static function toRadians(mixed $number): array|string|float
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Arabic.php
class Arabic (line 9) | class Arabic
method calculateArabic (line 28) | private static function calculateArabic(array $roman, int &$sum = 0, i...
method evaluate (line 64) | public static function evaluate(mixed $roman): array|int|string
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Base.php
class Base (line 9) | class Base
method evaluate (line 32) | public static function evaluate(mixed $number, mixed $radix, mixed $mi...
method calculate (line 48) | private static function calculate(float $number, int $radix, mixed $mi...
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Ceiling.php
class Ceiling (line 10) | class Ceiling
method ceiling (line 34) | public static function ceiling($number, $significance = null)
method math (line 73) | public static function math(mixed $number, mixed $significance = null,...
method precise (line 119) | public static function precise(mixed $number, $significance = 1): arra...
method mathOds (line 152) | public static function mathOds(mixed $number, mixed $significance = nu...
method ceilingMathTest (line 160) | private static function ceilingMathTest(float $significance, float $nu...
method argumentsOk (line 168) | private static function argumentsOk(float $number, float $significance...
method floorCheck1Arg (line 185) | private static function floorCheck1Arg(): void
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Combinations.php
class Combinations (line 8) | class Combinations
method withoutRepetition (line 28) | public static function withoutRepetition(mixed $numObjs, mixed $numInS...
method withRepetition (line 69) | public static function withRepetition(mixed $numObjs, mixed $numInSet)...
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Exp.php
class Exp (line 8) | class Exp
method evaluate (line 23) | public static function evaluate(mixed $number): array|string|float
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Factorial.php
class Factorial (line 11) | class Factorial
method fact (line 30) | public static function fact($factVal): array|string|float|int
method factDouble (line 72) | public static function factDouble($factVal): array|string|float|int
method multinomial (line 104) | public static function multinomial(...$args): string|int|float
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Floor.php
class Floor (line 10) | class Floor
method floorCheck1Arg (line 14) | private static function floorCheck1Arg(): void
method floor (line 39) | public static function floor(mixed $number, mixed $significance = null)
method math (line 78) | public static function math(mixed $number, mixed $significance = null,...
method mathOds (line 118) | public static function mathOds(mixed $number, mixed $significance = nu...
method precise (line 140) | public static function precise($number, $significance = 1)
method argumentsOkPrecise (line 162) | private static function argumentsOkPrecise(float $number, float $signi...
method argsOk (line 179) | private static function argsOk(float $number, float $significance, int...
method floorMathTest (line 197) | private static function floorMathTest(float $number, float $significan...
method argumentsOk (line 205) | private static function argumentsOk(float $number, float $significance...
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Gcd.php
class Gcd (line 9) | class Gcd
method evaluateGCD (line 21) | private static function evaluateGCD(float|int $a, float|int $b): float...
method evaluate (line 40) | public static function evaluate(mixed ...$args)
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Helpers.php
class Helpers (line 9) | class Helpers
method verySmallDenominator (line 16) | public static function verySmallDenominator(float $numerator, float $d...
method validateNumericNullBool (line 24) | public static function validateNumericNullBool(mixed $number): int|float
method validateNumericNullSubstitution (line 43) | public static function validateNumericNullSubstitution(mixed $number, ...
method validateNotNegative (line 59) | public static function validateNotNegative(float|int $number, ?string ...
method validatePositive (line 71) | public static function validatePositive(float|int $number, ?string $ex...
method validateNotZero (line 83) | public static function validateNotZero(float|int $number): void
method returnSign (line 92) | public static function returnSign(float $number): int
method getEven (line 97) | public static function getEven(float $number): float
method numberOrNan (line 107) | public static function numberOrNan(float $result): float|string
FILE: src/PhpSpreadsheet/Calculation/MathTrig/IntClass.php
class IntClass (line 8) | class IntClass
method evaluate (line 26) | public static function evaluate($number): array|string|int
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Lcm.php
class Lcm (line 9) | class Lcm
method factors (line 16) | private static function factors(float $value): array
method evaluate (line 55) | public static function evaluate(mixed ...$args): int|string
method processPoweredFactors (line 100) | private static function processPoweredFactors(array &$allPoweredFactor...
method testNonNulls (line 113) | private static function testNonNulls(int $anyNonNulls): void
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Logarithms.php
class Logarithms (line 8) | class Logarithms
method withBase (line 29) | public static function withBase(mixed $number, mixed $base = 10): arra...
method base10 (line 59) | public static function base10(mixed $number): array|string|float
method natural (line 87) | public static function natural(mixed $number): array|string|float
FILE: src/PhpSpreadsheet/Calculation/MathTrig/MatrixFunctions.php
class MatrixFunctions (line 12) | class MatrixFunctions
method getMatrix (line 19) | private static function getMatrix(mixed $matrixValues): Matrix
method sequence (line 60) | public static function sequence(mixed $rows = 1, mixed $columns = 1, m...
method determinant (line 98) | public static function determinant(mixed $matrixValues)
method inverse (line 123) | public static function inverse(mixed $matrixValues): array|string
method multiply (line 146) | public static function multiply(mixed $matrixData1, mixed $matrixData2...
method identity (line 167) | public static function identity(mixed $dimension)
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Operations.php
class Operations (line 10) | class Operations
method mod (line 26) | public static function mod(mixed $dividend, mixed $divisor): array|str...
method power (line 62) | public static function power(null|array|bool|float|int|string $x, null...
method product (line 99) | public static function product(mixed ...$args): string|float
method quotient (line 139) | public static function quotient(mixed $numerator, mixed $denominator):...
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Random.php
class Random (line 9) | class Random
method rand (line 18) | public static function rand(): int|float
method randBetween (line 35) | public static function randBetween(mixed $min, mixed $max): array|stri...
method randArray (line 70) | public static function randArray(mixed $rows = 1, mixed $columns = 1, ...
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Roman.php
class Roman (line 9) | class Roman
method valueOk (line 783) | private static function valueOk(int $aValue, int $style): string
method styleOk (line 804) | private static function styleOk(int $aValue, int $style): string
method calculateRoman (line 809) | public static function calculateRoman(int $aValue, int $style): string
method evaluate (line 828) | public static function evaluate(mixed $aValue, mixed $style = 0): arra...
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Round.php
class Round (line 11) | class Round
method round (line 27) | public static function round(mixed $number, mixed $precision): array|s...
method up (line 55) | public static function up($number, $digits): array|string|float
method down (line 101) | public static function down($number, $digits): array|string|float
method multiple (line 147) | public static function multiple(mixed $number, mixed $multiple): array...
method even (line 190) | public static function even($number): array|string|float
method odd (line 216) | public static function odd($number): array|string|int|float
FILE: src/PhpSpreadsheet/Calculation/MathTrig/SeriesSum.php
class SeriesSum (line 9) | class SeriesSum
method evaluate (line 25) | public static function evaluate(mixed $x, mixed $n, mixed $m, ...$args...
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Sign.php
class Sign (line 8) | class Sign
method evaluate (line 24) | public static function evaluate($number): array|string|int
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Sqrt.php
class Sqrt (line 8) | class Sqrt
method sqrt (line 23) | public static function sqrt(mixed $number)
method pi (line 49) | public static function pi($number): array|string|float
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Subtotal.php
class Subtotal (line 11) | class Subtotal
method filterHiddenArgs (line 18) | protected static function filterHiddenArgs(Cell $cellReference, array ...
method filterFilteredArgs (line 40) | protected static function filterFilteredArgs(Cell $cellReference, arra...
method filterFormulaArgs (line 59) | protected static function filterFormulaArgs(Cell $cellReference, array...
method evaluate (line 116) | public static function evaluate(mixed $functionType, ...$args): float|...
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Sum.php
class Sum (line 9) | class Sum
method sumIgnoringStrings (line 21) | public static function sumIgnoringStrings(mixed ...$args): float|int|s...
method sumErroringStrings (line 51) | public static function sumErroringStrings(mixed ...$args): float|int|s...
method product (line 84) | public static function product(mixed ...$args): string|int|float
FILE: src/PhpSpreadsheet/Calculation/MathTrig/SumSquares.php
class SumSquares (line 9) | class SumSquares
method sumSquare (line 21) | public static function sumSquare(mixed ...$args): string|int|float
method getCount (line 42) | private static function getCount(array $array1, array $array2): int
method numericNotString (line 55) | private static function numericNotString(mixed $item): bool
method sumXSquaredMinusYSquared (line 66) | public static function sumXSquaredMinusYSquared(array $matrixData1, ar...
method sumXSquaredPlusYSquared (line 94) | public static function sumXSquaredPlusYSquared(array $matrixData1, arr...
method sumXMinusYSquared (line 122) | public static function sumXMinusYSquared(array $matrixData1, array $ma...
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Trig/Cosecant.php
class Cosecant (line 9) | class Cosecant
method csc (line 24) | public static function csc($angle)
method csch (line 50) | public static function csch($angle)
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Trig/Cosine.php
class Cosine (line 9) | class Cosine
method cos (line 24) | public static function cos(mixed $number): array|string|float
method cosh (line 50) | public static function cosh(mixed $number): array|string|float
method acos (line 76) | public static function acos($number)
method acosh (line 102) | public static function acosh($number)
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Trig/Cotangent.php
class Cotangent (line 9) | class Cotangent
method cot (line 24) | public static function cot($angle)
method coth (line 50) | public static function coth($angle)
method acot (line 76) | public static function acot($number): array|string|float
method acoth (line 102) | public static function acoth($number)
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Trig/Secant.php
class Secant (line 9) | class Secant
method sec (line 24) | public static function sec($angle)
method sech (line 50) | public static function sech($angle)
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Trig/Sine.php
class Sine (line 9) | class Sine
method sin (line 24) | public static function sin(mixed $angle): array|string|float
method sinh (line 50) | public static function sinh(mixed $angle): array|string|float
method asin (line 76) | public static function asin($number)
method asinh (line 102) | public static function asinh($number)
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Trig/Tangent.php
class Tangent (line 10) | class Tangent
method tan (line 25) | public static function tan(mixed $angle)
method tanh (line 51) | public static function tanh(mixed $angle): array|string|float
method atan (line 77) | public static function atan($number)
method atanh (line 103) | public static function atanh($number)
method atan2 (line 141) | public static function atan2(mixed $xCoordinate, mixed $yCoordinate): ...
FILE: src/PhpSpreadsheet/Calculation/MathTrig/Trunc.php
class Trunc (line 7) | class Trunc
method evaluate (line 28) | public static function evaluate(array|float|string|null $value = 0, ar...
FILE: src/PhpSpreadsheet/Calculation/Statistical/AggregateBase.php
class AggregateBase (line 7) | abstract class AggregateBase
method testAcceptedBoolean (line 14) | protected static function testAcceptedBoolean(mixed $arg, mixed $k): m...
method isAcceptedCountable (line 39) | protected static function isAcceptedCountable(mixed $arg, mixed $k, bo...
FILE: src/PhpSpreadsheet/Calculation/Statistical/Averages.php
class Averages (line 8) | class Averages extends AggregateBase
method averageDeviations (line 23) | public static function averageDeviations(mixed ...$args): string|float
method average (line 74) | public static function average(mixed ...$args): string|int|float
method averageA (line 114) | public static function averageA(mixed ...$args): string|int|float
method median (line 153) | public static function median(mixed ...$args): float|string
method mode (line 188) | public static function mode(mixed ...$args): float|string
method filterArguments (line 208) | protected static function filterArguments(array $args): array
method modeCalc (line 225) | private static function modeCalc(array $data): float|string
FILE: src/PhpSpreadsheet/Calculation/Statistical/Averages/Mean.php
class Mean (line 12) | class Mean
method geometric (line 26) | public static function geometric(mixed ...$args): float|int|string
method harmonic (line 52) | public static function harmonic(mixed ...$args): string|float|int
method trim (line 93) | public static function trim(mixed ...$args): float|string
FILE: src/PhpSpreadsheet/Calculation/Statistical/Conditional.php
class Conditional (line 14) | class Conditional
method AVERAGEIF (line 32) | public static function AVERAGEIF(mixed $range, null|array|string $cond...
method AVERAGEIFS (line 59) | public static function AVERAGEIFS(mixed ...$args): null|int|float|string
method COUNTIF (line 90) | public static function COUNTIF(mixed $range, null|array|string $condit...
method COUNTIFS (line 125) | public static function COUNTIFS(mixed ...$args): int|string
method MAXIFS (line 149) | public static function MAXIFS(mixed ...$args): null|float|string
method MINIFS (line 171) | public static function MINIFS(mixed ...$args): null|float|string
method SUMIF (line 194) | public static function SUMIF(mixed $range, mixed $condition, mixed $su...
method SUMIFS (line 226) | public static function SUMIFS(mixed ...$args): null|float|string
method buildConditionSet (line 245) | private static function buildConditionSet(...$args): array
method buildConditionSetForValueRange (line 257) | private static function buildConditionSetForValueRange(...$args): array
method buildConditions (line 276) | private static function buildConditions(int $startOffset, ...$args): a...
method buildDatabase (line 295) | private static function buildDatabase(...$args): array
method buildDatabaseWithValueRange (line 307) | private static function buildDatabaseWithValueRange(...$args): array
method buildDataSet (line 324) | private static function buildDataSet(int $startOffset, array $database...
method databaseFromRangeAndValue (line 345) | private static function databaseFromRangeAndValue(array $range, array ...
FILE: src/PhpSpreadsheet/Calculation/Statistical/Confidence.php
class Confidence (line 10) | class Confidence
method CONFIDENCE (line 29) | public static function CONFIDENCE(mixed $alpha, mixed $stdDev, mixed $...
FILE: src/PhpSpreadsheet/Calculation/Statistical/Counts.php
class Counts (line 8) | class Counts extends AggregateBase
method COUNT (line 20) | public static function COUNT(mixed ...$args): int
method COUNTA (line 49) | public static function COUNTA(mixed ...$args): int
method COUNTBLANK (line 75) | public static function COUNTBLANK(mixed $range): int
FILE: src/PhpSpreadsheet/Calculation/Statistical/Deviations.php
class Deviations (line 8) | class Deviations
method sumSquares (line 20) | public static function sumSquares(mixed ...$args): string|float
method kurtosis (line 60) | public static function kurtosis(...$args): string|int|float
method skew (line 105) | public static function skew(...$args): string|int|float
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/Beta.php
class Beta (line 10) | class Beta
method distribution (line 39) | public static function distribution(mixed $value, mixed $alpha, mixed ...
method inverse (line 92) | public static function inverse(mixed $probability, mixed $alpha, mixed...
method calculateInverse (line 123) | private static function calculateInverse(float $probability, float $al...
method incompleteBeta (line 163) | public static function incompleteBeta(float $x, float $p, float $q): f...
method logBeta (line 199) | private static function logBeta(float $p, float $q): float
method betaFraction (line 220) | private static function betaFraction(float $x, float $p, float $q): float
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/Binomial.php
class Binomial (line 11) | class Binomial
method distribution (line 36) | public static function distribution(mixed $value, mixed $trials, mixed...
method range (line 84) | public static function range(mixed $trials, mixed $probability, mixed ...
method negative (line 142) | public static function negative(mixed $failures, mixed $successes, mix...
method inverse (line 187) | public static function inverse(mixed $trials, mixed $probability, mixe...
method calculateCumulativeBinomial (line 219) | private static function calculateCumulativeBinomial(int $value, int $t...
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/ChiSquared.php
class ChiSquared (line 10) | class ChiSquared
method distributionRightTail (line 29) | public static function distributionRightTail(mixed $value, mixed $degr...
method distributionLeftTail (line 71) | public static function distributionLeftTail(mixed $value, mixed $degre...
method inverseRightTail (line 119) | public static function inverseRightTail(mixed $probability, mixed $deg...
method inverseLeftTail (line 157) | public static function inverseLeftTail(mixed $probability, mixed $degr...
method test (line 187) | public static function test($actual, $expected): float|string
method degrees (line 220) | protected static function degrees(int $rows, int $columns): int
method inverseLeftTailCalculation (line 231) | private static function inverseLeftTailCalculation(float $probability,...
method pchisq (line 259) | private static function pchisq(float $chi2, int $degrees): float
method gammp (line 264) | private static function gammp(int $n, float $x): float
method gser (line 277) | private static function gser(int $n, float $x): float
method gcf (line 301) | private static function gcf(int $n, float $x): float
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/DistributionValidations.php
class DistributionValidations (line 9) | class DistributionValidations extends StatisticalValidations
method validateProbability (line 11) | public static function validateProbability(mixed $probability): float
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/Exponential.php
class Exponential (line 9) | class Exponential
method distribution (line 30) | public static function distribution(mixed $value, mixed $lambda, mixed...
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/F.php
class F (line 9) | class F
method distribution (line 33) | public static function distribution(mixed $value, mixed $u, mixed $v, ...
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/Fisher.php
class Fisher (line 9) | class Fisher
method distribution (line 26) | public static function distribution(mixed $value): array|string|float
method inverse (line 58) | public static function inverse(mixed $probability): array|string|float
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/Gamma.php
class Gamma (line 9) | class Gamma extends GammaBase
method gamma (line 25) | public static function gamma(mixed $value): array|string|float
method distribution (line 61) | public static function distribution(mixed $value, mixed $a, mixed $b, ...
method inverse (line 98) | public static function inverse(mixed $probability, mixed $alpha, mixed...
method ln (line 130) | public static function ln(mixed $value): array|string|float
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/GammaBase.php
class GammaBase (line 8) | abstract class GammaBase
method calculateDistribution (line 20) | protected static function calculateDistribution(float $value, float $a...
method calculateInverse (line 30) | protected static function calculateInverse(float $probability, float $...
method incompleteGamma (line 79) | public static function incompleteGamma(float $a, float $x): float
method gammaValue (line 107) | public static function gammaValue(float $value): float
method logGamma (line 262) | public static function logGamma(float $x): float
method logGamma1 (line 297) | private static function logGamma1(float $y): float
method logGamma2 (line 330) | private static function logGamma2(float $y): float
method logGamma3 (line 346) | protected static function logGamma3(float $y): float
method logGamma4 (line 362) | protected static function logGamma4(float $y): float
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/HyperGeometric.php
class HyperGeometric (line 10) | class HyperGeometric
method distribution (line 32) | public static function distribution(mixed $sampleSuccesses, mixed $sam...
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/LogNormal.php
class LogNormal (line 9) | class LogNormal
method cumulative (line 30) | public static function cumulative(mixed $value, mixed $mean, mixed $st...
method distribution (line 70) | public static function distribution(mixed $value, mixed $mean, mixed $...
method inverse (line 117) | public static function inverse(mixed $probability, mixed $mean, mixed ...
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/NewtonRaphson.php
class NewtonRaphson (line 8) | class NewtonRaphson
method __construct (line 16) | public function __construct(callable $callback)
method execute (line 21) | public function execute(float $probability): string|int|float
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/Normal.php
class Normal (line 10) | class Normal
method distribution (line 36) | public static function distribution(mixed $value, mixed $mean, mixed $...
method inverse (line 78) | public static function inverse(mixed $probability, mixed $mean, mixed ...
method inverseNcdf (line 107) | private static function inverseNcdf(float $p): float
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/Poisson.php
class Poisson (line 10) | class Poisson
method distribution (line 32) | public static function distribution(mixed $value, mixed $mean, mixed $...
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/StandardNormal.php
class StandardNormal (line 11) | class StandardNormal
method cumulative (line 33) | public static function cumulative(mixed $value)
method distribution (line 58) | public static function distribution(mixed $value, mixed $cumulative)
method inverse (line 79) | public static function inverse(mixed $value)
method gauss (line 96) | public static function gauss(mixed $value): array|string|float
method zTest (line 130) | public static function zTest(mixed $dataSet, mixed $m0, mixed $sigma =...
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/StudentT.php
class StudentT (line 16) | class StudentT
method distribution (line 36) | public static function distribution(mixed $value, mixed $degrees, mixe...
method tDotDistDot2T (line 47) | public static function tDotDistDot2T(mixed $value, mixed $degrees)
method tDotDistDotRT (line 58) | public static function tDotDistDotRT(mixed $value, mixed $degrees)
method calcDistribution (line 66) | private static function calcDistribution(mixed $value, mixed $degrees,...
method subTProb (line 90) | private static function subTProb(float $x, int $n, int $tails): float
method tDotDist (line 127) | public static function tDotDist(mixed $value, mixed $degrees, mixed $c...
method tDotDistFalse (line 161) | private static function tDotDistFalse(float $value, int $degrees): flo...
method inverse (line 193) | public static function inverse(mixed $probability, mixed $degrees)
method calcInverse (line 201) | private static function calcInverse(mixed $probability, mixed $degrees...
method tDotInv (line 238) | public static function tDotInv(mixed $probability, mixed $degrees)
method subU (line 294) | private static function subU(float $p): float
FILE: src/PhpSpreadsheet/Calculation/Statistical/Distributions/Weibull.php
class Weibull (line 9) | class Weibull
method distribution (line 32) | public static function distribution(mixed $value, mixed $alpha, mixed ...
FILE: src/PhpSpreadsheet/Calculation/Statistical/MaxMinBase.php
class MaxMinBase (line 5) | abstract class MaxMinBase
method datatypeAdjustmentAllowStrings (line 7) | protected static function datatypeAdjustmentAllowStrings(int|float|str...
FILE: src/PhpSpreadsheet/Calculation/Statistical/Maximum.php
class Maximum (line 8) | class Maximum extends MaxMinBase
method max (line 21) | public static function max(mixed ...$args): float|int|string
method maxA (line 59) | public static function maxA(mixed ...$args): float|int|string
FILE: src/PhpSpreadsheet/Calculation/Statistical/Minimum.php
class Minimum (line 8) | class Minimum extends MaxMinBase
method min (line 21) | public static function min(mixed ...$args): float|int|string
method minA (line 59) | public static function minA(mixed ...$args): float|int|string
FILE: src/PhpSpreadsheet/Calculation/Statistical/Percentiles.php
class Percentiles (line 9) | class Percentiles
method PERCENTILE (line 27) | public static function PERCENTILE(mixed ...$args)
method PERCENTRANK (line 79) | public static function PERCENTRANK(mixed $valueSet, mixed $value, mixe...
method QUARTILE (line 131) | public static function QUARTILE(mixed ...$args)
method RANK (line 162) | public static function RANK(mixed $value, mixed $valueSet, mixed $orde...
method percentileFilterValues (line 195) | protected static function percentileFilterValues(array $dataSet): array
method rankFilterValues (line 208) | protected static function rankFilterValues(array $dataSet): array
FILE: src/PhpSpreadsheet/Calculation/Statistical/Permutations.php
class Permutations (line 11) | class Permutations
method PERMUT (line 33) | public static function PERMUT(mixed $numObjs, mixed $numInSet)
method PERMUTATIONA (line 79) | public static function PERMUTATIONA(mixed $numObjs, mixed $numInSet)
FILE: src/PhpSpreadsheet/Calculation/Statistical/Size.php
class Size (line 8) | class Size
method large (line 23) | public static function large(mixed ...$args)
method small (line 59) | public static function small(mixed ...$args)
method filter (line 88) | protected static function filter(array $args): array
FILE: src/PhpSpreadsheet/Calculation/Statistical/StandardDeviations.php
class StandardDeviations (line 5) | class StandardDeviations
method STDEV (line 20) | public static function STDEV(mixed ...$args)
method STDEVA (line 40) | public static function STDEVA(mixed ...$args): float|string
method STDEVP (line 60) | public static function STDEVP(mixed ...$args): float|string
method STDEVPA (line 80) | public static function STDEVPA(mixed ...$args): float|string
FILE: src/PhpSpreadsheet/Calculation/Statistical/Standardize.php
class Standardize (line 9) | class Standardize extends StatisticalValidations
method execute (line 29) | public static function execute($value, $mean, $stdDev): array|string|f...
FILE: src/PhpSpreadsheet/Calculation/Statistical/StatisticalValidations.php
class StatisticalValidations (line 8) | class StatisticalValidations
method validateFloat (line 10) | public static function validateFloat(mixed $value): float
method validateInt (line 19) | public static function validateInt(mixed $value): int
method validateBool (line 28) | public static function validateBool(mixed $value): bool
FILE: src/PhpSpreadsheet/Calculation/Statistical/Trends.php
class Trends (line 11) | class Trends
method filterTrendValues (line 19) | private static function filterTrendValues(array &$array1, array &$arra...
method checkTrendArrays (line 35) | private static function checkTrendArrays(mixed &$array1, mixed &$array...
method validateTrendArrays (line 59) | protected static function validateTrendArrays(array $yValues, array $x...
method CORREL (line 79) | public static function CORREL(mixed $yValues, $xValues = null): float|...
method COVAR (line 105) | public static function COVAR(array $yValues, array $xValues): float|st...
method FORECAST (line 133) | public static function FORECAST(mixed $xValue, array $yValues, array $...
method GROWTH (line 164) | public static function GROWTH(array $yValues, array $xValues = [], arr...
method INTERCEPT (line 193) | public static function INTERCEPT(array $yValues, array $xValues): floa...
method LINEST (line 220) | public static function LINEST(array $yValues, ?array $xValues = null, ...
method LOGEST (line 281) | public static function LOGEST(array $yValues, ?array $xValues = null, ...
method RSQ (line 346) | public static function RSQ(array $yValues, array $xValues)
method SLOPE (line 370) | public static function SLOPE(array $yValues, array $xValues)
method STEYX (line 392) | public static function STEYX(array $yValues, array $xValues): float|st...
method TREND (line 418) | public static function TREND(array $yValues, array $xValues = [], arra...
FILE: src/PhpSpreadsheet/Calculation/Statistical/VarianceBase.php
class VarianceBase (line 7) | abstract class VarianceBase
method datatypeAdjustmentAllowStrings (line 9) | protected static function datatypeAdjustmentAllowStrings(int|float|str...
method datatypeAdjustmentBooleans (line 20) | protected static function datatypeAdjustmentBooleans(mixed $value): mixed
FILE: src/PhpSpreadsheet/Calculation/Statistical/Variances.php
class Variances (line 8) | class Variances extends VarianceBase
method VAR (line 22) | public static function VAR(mixed ...$args): float|string
method VARA (line 64) | public static function VARA(mixed ...$args): string|float
method VARP (line 110) | public static function VARP(mixed ...$args): float|string
method VARPA (line 153) | public static function VARPA(mixed ...$args): string|float
FILE: src/PhpSpreadsheet/Calculation/TextData/CaseConvert.php
class CaseConvert (line 9) | class CaseConvert
method lower (line 24) | public static function lower(mixed $mixedCaseValue): array|string
method upper (line 50) | public static function upper(mixed $mixedCaseValue): array|string
method proper (line 76) | public static function proper(mixed $mixedCaseValue): array|string
FILE: src/PhpSpreadsheet/Calculation/TextData/CharacterConvert.php
class CharacterConvert (line 11) | class CharacterConvert
method character (line 27) | public static function character(mixed $character): array|string
method characterUnicode (line 37) | public static function characterUnicode(mixed $character): array|string
method characterBoth (line 46) | private static function characterBoth(mixed $character, bool $ansi = t...
method code (line 84) | public static function code(mixed $characters): array|string|int
method codeUnicode (line 97) | public static function codeUnicode(mixed $characters): array|string|int
method codeBoth (line 109) | private static function codeBoth(string $characters, bool $ansi = true...
method setWindowsCharacterSet (line 139) | public static function setWindowsCharacterSet(): void
method setMacCharacterSet (line 144) | public static function setMacCharacterSet(): void
FILE: src/PhpSpreadsheet/Calculation/TextData/Concatenate.php
class Concatenate (line 15) | class Concatenate
method CONCATENATE (line 24) | public static function CONCATENATE(...$args): string
method actualCONCATENATE (line 56) | public static function actualCONCATENATE(...$args): array|string
method concatenate2Args (line 94) | private static function concatenate2Args(array|string $operand1, null|...
method TEXTJOIN (line 145) | public static function TEXTJOIN($delimiter = '', $ignoreEmpty = true, ...
method evaluateTextJoinArray (line 172) | private static function evaluateTextJoinArray(bool $ignoreEmpty, array...
method builtinREPT (line 204) | public static function builtinREPT(mixed $stringValue, mixed $repeatCo...
FILE: src/PhpSpreadsheet/Calculation/TextData/Extract.php
class Extract (line 11) | class Extract
method left (line 27) | public static function left(mixed $value, mixed $chars = 1): array|string
method mid (line 57) | public static function mid(mixed $value, mixed $start, mixed $chars): ...
method right (line 86) | public static function right(mixed $value, mixed $chars = 1): array|st...
method before (line 129) | public static function before(mixed $text, $delimiter, mixed $instance...
method after (line 193) | public static function after(mixed $text, $delimiter, mixed $instance ...
method validateTextBeforeAfter (line 237) | private static function validateTextBeforeAfter(string $text, null|arr...
method buildDelimiter (line 268) | private static function buildDelimiter($delimiter): string
method matchFlags (line 286) | private static function matchFlags(int $matchMode): string
FILE: src/PhpSpreadsheet/Calculation/TextData/Format.php
class Format (line 20) | class Format
method DOLLAR (line 40) | public static function DOLLAR(mixed $value = 0, mixed $decimals = 2)
method FIXEDFORMAT (line 82) | public static function FIXEDFORMAT(mixed $value, mixed $decimals = 2, ...
method TEXTFORMAT (line 122) | public static function TEXTFORMAT(mixed $value, mixed $format): array|...
method convertValue (line 150) | private static function convertValue(mixed $value, bool $spacesMeanZer...
method VALUE (line 183) | public static function VALUE(mixed $value = '')
method valueToText (line 242) | public static function valueToText(mixed $value, mixed $format = false...
method getDecimalSeparator (line 263) | private static function getDecimalSeparator(mixed $decimalSeparator): ...
method getGroupSeparator (line 268) | private static function getGroupSeparator(mixed $groupSeparator): string
method NUMBERVALUE (line 285) | public static function NUMBERVALUE(mixed $value = '', mixed $decimalSe...
FILE: src/PhpSpreadsheet/Calculation/TextData/Helpers.php
class Helpers (line 12) | class Helpers
method convertBooleanValue (line 14) | public static function convertBooleanValue(bool $value): string
method extractString (line 26) | public static function extractString(mixed $value, bool $throwIfError ...
method extractInt (line 38) | public static function extractInt(mixed $value, int $minValue, int $gn...
method extractFloat (line 58) | public static function extractFloat(mixed $value): float
method validateInt (line 77) | public static function validateInt(mixed $value, bool $throwIfError = ...
FILE: src/PhpSpreadsheet/Calculation/TextData/Replace.php
class Replace (line 12) | class Replace
method replace (line 31) | public static function replace(mixed $oldText, mixed $start, mixed $ch...
method substitute (line 71) | public static function substitute(mixed $text = '', mixed $fromText = ...
method executeSubstitution (line 103) | private static function executeSubstitution(string $text, string $from...
FILE: src/PhpSpreadsheet/Calculation/TextData/Search.php
class Search (line 10) | class Search
method sensitive (line 28) | public static function sensitive(mixed $needle, mixed $haystack, mixed...
method insensitive (line 70) | public static function insensitive(mixed $needle, mixed $haystack, mix...
FILE: src/PhpSpreadsheet/Calculation/TextData/Text.php
class Text (line 13) | class Text
method length (line 26) | public static function length(mixed $value = ''): array|int|string
method exact (line 54) | public static function exact(mixed $value1, mixed $value2): array|bool...
method test (line 79) | public static function test(mixed $testValue = ''): array|string
method split (line 113) | public static function split(mixed $text, $columnDelimiter = null, $ro...
method applyPadding (line 170) | private static function applyPadding(array $rows, mixed $padding): array
method buildDelimiter (line 190) | private static function buildDelimiter($delimiter): string
method matchFlags (line 208) | private static function matchFlags(bool $matchMode): string
method fromArray (line 214) | public static function fromArray(array $array, int $format = 0): string
method formatValueMode0 (line 231) | private static function formatValueMode0(mixed $cellValue): string
method formatValueMode1 (line 240) | private static function formatValueMode1(mixed $cellValue): string
FILE: src/PhpSpreadsheet/Calculation/TextData/Thai.php
class Thai (line 8) | class Thai
method getBahtText (line 48) | public static function getBahtText(mixed $number): array|string
method convertLarge (line 88) | private static function convertLarge(string $digits): string
method convertBlock (line 105) | private static function convertBlock(string $block): string
FILE: src/PhpSpreadsheet/Calculation/TextData/Trim.php
class Trim (line 7) | class Trim
method nonPrintable (line 20) | public static function nonPrintable(mixed $stringValue = '')
method spaces (line 40) | public static function spaces(mixed $stringValue = ''): array|string
FILE: src/PhpSpreadsheet/Calculation/Token/Stack.php
class Stack (line 9) | class Stack
method __construct (line 25) | public function __construct(BranchPruner $branchPruner)
method count (line 33) | public function count(): int
method push (line 41) | public function push(string $type, mixed $value, ?string $reference = ...
method pushStackItem (line 55) | public function pushStackItem(array $stackItem): void
method getStackItem (line 61) | public function getStackItem(string $type, mixed $value, ?string $refe...
method pop (line 95) | public function pop(): ?array
method last (line 109) | public function last(int $n = 1): ?array
method clear (line 121) | public function clear(): void
FILE: src/PhpSpreadsheet/Calculation/Web/Service.php
class Service (line 10) | class Service
method webService (line 22) | public static function webService(mixed $url, ?Cell $cell = null): ?st...
method urlEncode (line 70) | public static function urlEncode(mixed $text): string
FILE: src/PhpSpreadsheet/Cell/AddressHelper.php
class AddressHelper (line 9) | class AddressHelper
method getRowAndColumnChars (line 14) | public static function getRowAndColumnChars(): array
method convertToA1 (line 32) | public static function convertToA1(
method convertSpreadsheetMLFormula (line 74) | protected static function convertSpreadsheetMLFormula(string $formula)...
method convertFormulaToA1 (line 94) | public static function convertFormulaToA1(
method convertToR1C1 (line 134) | public static function convertToR1C1(
FILE: src/PhpSpreadsheet/Cell/AddressRange.php
type AddressRange (line 8) | interface AddressRange
method from (line 22) | public function from(): mixed;
method to (line 27) | public function to(): mixed;
method __toString (line 29) | public function __toString(): string;
FILE: src/PhpSpreadsheet/Cell/AdvancedValueBinder.php
class AdvancedValueBinder (line 11) | class AdvancedValueBinder extends DefaultValueBinder implements IValueBi...
method bindValue (line 19) | public function bindValue(Cell $cell, mixed $value = null): bool
method setImproperFraction (line 114) | protected function setImproperFraction(array $matches, Cell $cell): bool
method setProperFraction (line 135) | protected function setProperFraction(array $matches, Cell $cell): bool
method setPercentage (line 155) | protected function setPercentage(string $value, Cell $cell): bool
method setCurrency (line 168) | protected function setCurrency(float $value, Cell $cell, string $curre...
method setTimeHoursMinutes (line 180) | protected function setTimeHoursMinutes(string $value, Cell $cell): bool
method setTimeHoursMinutesSeconds (line 196) | protected function setTimeHoursMinutesSeconds(string $value, Cell $cel...
FILE: src/PhpSpreadsheet/Cell/Cell.php
class Cell (line 23) | class Cell implements Stringable
method updateInCollection (line 76) | public function updateInCollection(): self
method detach (line 87) | public function detach(): void
method attach (line 92) | public function attach(Cells $parent): void
method __construct (line 102) | public function __construct(mixed $value, ?string $dataType, Worksheet...
method getColumn (line 130) | public function getColumn(): string
method getRow (line 145) | public function getRow(): int
method getCoordinate (line 160) | public function getCoordinate(): string
method getValue (line 178) | public function getValue(): mixed
method getValueString (line 183) | public function getValueString(): string
method getFormattedValue (line 191) | public function getFormattedValue(): string
method updateIfCellIsTableHeader (line 204) | protected static function updateIfCellIsTableHeader(?Worksheet $workSh...
method setValue (line 235) | public function setValue(mixed $value, ?IValueBinder $binder = null): ...
method setHadHyperlink (line 252) | public function setHadHyperlink(bool $hadHyperlink): void
method clearHyperlink (line 257) | private function clearHyperlink(): void
method setValueExplicit (line 282) | public function setValueExplicit(mixed $value, string $dataType = Data...
method getCalculateDateTimeType (line 385) | public static function getCalculateDateTimeType(): int
method setCalculateDateTimeType (line 391) | public static function setCalculateDateTimeType(int $calculateDateTime...
method convertDateTimeInt (line 402) | private function convertDateTimeInt(mixed $result): mixed
method getCalculatedValueString (line 422) | public function getCalculatedValueString(): string
method getCalculatedValue (line 439) | public function getCalculatedValue(bool $resetLog = true): mixed
method convertSpecialArray (line 632) | private static function convertSpecialArray(array $array): array
method setCalculatedValue (line 655) | public function setCalculatedValue(mixed $originalValue, bool $tryNume...
method getOldCalculatedValue (line 672) | public function getOldCalculatedValue(): mixed
method getDataType (line 680) | public function getDataType(): string
method setDataType (line 690) | public function setDataType(string $dataType): self
method isFormula (line 700) | public function isFormula(): bool
method hasDataValidation (line 710) | public function hasDataValidation(): bool
method getDataValidation (line 724) | public function getDataValidation(): DataValidation
method setDataValidation (line 738) | public function setDataValidation(?DataValidation $dataValidation = nu...
method hasValidValue (line 752) | public function hasValidValue(): bool
method hasHyperlink (line 764) | public function hasHyperlink(): bool
method getHyperlink (line 778) | public function getHyperlink(): Hyperlink
method setHyperlink (line 793) | public function setHyperlink(?Hyperlink $hyperlink = null): self
method getParent (line 808) | public function getParent(): ?Cells
method getWorksheet (line 818) | public function getWorksheet(): Worksheet
method getWorksheetOrNull (line 834) | public function getWorksheetOrNull(): ?Worksheet
method isInMergeRange (line 849) | public function isInMergeRange(): bool
method isMergeRangeValueCell (line 857) | public function isMergeRangeValueCell(): bool
method getMergeRange (line 874) | public function getMergeRange()
method getStyle (line 888) | public function getStyle(): Style
method getAppliedStyle (line 896) | public function getAppliedStyle(): Style
method rebindParent (line 914) | public function rebindParent(Worksheet $parent): self
method isInRange (line 926) | public function isInRange(string $range): bool
method compareCells (line 947) | public static function compareCells(self $a, self $b): int
method getValueBinder (line 963) | public static function getValueBinder(): IValueBinder
method setValueBinder (line 975) | public static function setValueBinder(IValueBinder $binder): void
method __clone (line 983) | public function __clone()
method getXfIndex (line 998) | public function getXfIndex(): int
method setXfIndex (line 1006) | public function setXfIndex(int $indexValue): self
method setFormulaAttributes (line 1018) | public function setFormulaAttributes(?array $attributes): self
method getFormulaAttributes (line 1030) | public function getFormulaAttributes(): mixed
method __toString (line 1038) | public function __toString(): string
method getIgnoredErrors (line 1045) | public function getIgnoredErrors(): IgnoredErrors
method isLocked (line 1050) | public function isLocked(): bool
method isHiddenOnFormulaBar (line 1061) | public function isHiddenOnFormulaBar(): bool
FILE: src/PhpSpreadsheet/Cell/CellAddress.php
class CellAddress (line 9) | class CellAddress implements Stringable
method __construct (line 21) | public function __construct(string $cellAddress, ?Worksheet $worksheet...
method __destruct (line 28) | public function __destruct()
method validateColumnAndRow (line 37) | private static function validateColumnAndRow(int|string $columnId, int...
method fromColumnAndRow (line 44) | public static function fromColumnAndRow(int|string $columnId, int|stri...
method fromColumnRowArray (line 52) | public static function fromColumnRowArray(array $array, ?Worksheet $wo...
method fromCellAddress (line 59) | public static function fromCellAddress(string $cellAddress, ?Worksheet...
method fullCellAddress (line 69) | public function fullCellAddress(): string
method worksheet (line 80) | public function worksheet(): ?Worksheet
method cellAddress (line 90) | public function cellAddress(): string
method rowId (line 95) | public function rowId(): int
method columnId (line 100) | public function columnId(): int
method columnName (line 105) | public function columnName(): string
method nextRow (line 110) | public function nextRow(int $offset = 1): self
method previousRow (line 120) | public function previousRow(int $offset = 1): self
method nextColumn (line 125) | public function nextColumn(int $offset = 1): self
method previousColumn (line 135) | public function previousColumn(int $offset = 1): self
method __toString (line 145) | public function __toString(): string
FILE: src/PhpSpreadsheet/Cell/CellRange.php
class CellRange (line 12) | class CellRange implements AddressRange, Stringable
method __construct (line 18) | public function __construct(CellAddress $from, CellAddress $to)
method validateFromTo (line 23) | private function validateFromTo(CellAddress $from, CellAddress $to): void
method validateWorksheets (line 39) | private function validateWorksheets(?Worksheet $fromWorksheet, ?Worksh...
method cellAddressWrapper (line 55) | private function cellAddressWrapper(int $column, int $row, ?Worksheet ...
method from (line 104) | public function from(): CellAddress
method to (line 112) | public function to(): CellAddress
method __toString (line 120) | public function __toString(): string
FILE: src/PhpSpreadsheet/Cell/ColumnRange.php
class ColumnRange (line 11) | class ColumnRange implements AddressRange, Stringable
method __construct (line 19) | public function __construct(string $from, ?string $to = null, ?Workshe...
method __destruct (line 28) | public function __destruct()
method fromColumnIndexes (line 33) | public static function fromColumnIndexes(int $from, int $to, ?Workshee...
method fromArray (line 41) | public static function fromArray(array $array, ?Worksheet $worksheet =...
method validateFromTo (line 56) | private function validateFromTo(int $from, int $to): void
method columnCount (line 63) | public function columnCount(): int
method shiftDown (line 68) | public function shiftDown(int $offset = 1): self
method shiftUp (line 79) | public function shiftUp(int $offset = 1): self
method from (line 84) | public function from(): string
method to (line 89) | public function to(): string
method fromIndex (line 94) | public function fromIndex(): int
method toIndex (line 99) | public function toIndex(): int
method toCellRange (line 104) | public function toCellRange(): CellRange
method __toString (line 112) | public function __toString(): string
FILE: src/PhpSpreadsheet/Cell/Coordinate.php
class Coordinate (line 16) | abstract class Coordinate
method coordinateFromString (line 35) | public static function coordinateFromString(string $cellAddress): array
method indexesFromString (line 59) | public static function indexesFromString(string $coordinates): array
method coordinateIsRange (line 78) | public static function coordinateIsRange(string $cellAddress): bool
method absoluteReference (line 91) | public static function absoluteReference(int|string $cellAddress): string
method absoluteCoordinate (line 122) | public static function absoluteCoordinate(string $cellAddress): string
method splitRange (line 152) | public static function splitRange(string $range): array
method allRanges (line 179) | public static function allRanges(string $range, bool $unionIsComma = t...
method buildRange (line 197) | public static function buildRange(array $range): string
method rangeBoundaries (line 224) | public static function rangeBoundaries(string $range): array
method rangeDimension (line 271) | public static function rangeDimension(string $range): array
method getRangeBoundaries (line 287) | public static function getRangeBoundaries(string $range): array
method validateReferenceAndGetData (line 305) | private static function validateReferenceAndGetData($reference): array
method coordinateIsInsideRange (line 341) | public static function coordinateIsInsideRange(string $range, string $...
method columnIndexFromString (line 395) | public static function columnIndexFromString(?string $columnAddress): int
method stringFromColumnIndex (line 459) | public static function stringFromColumnIndex(int|string $columnIndex, ...
method extractAllCellReferencesInRange (line 493) | public static function extractAllCellReferencesInRange(string $cellRan...
method processRangeSetOperators (line 541) | private static function processRangeSetOperators(array $operators, arr...
method sortCellReferenceArray (line 566) | private static function sortCellReferenceArray(array $cellList): array
method resolveUnionAndIntersection (line 592) | public static function resolveUnionAndIntersection(string $cellBlock, ...
method getReferencesForCellBlock (line 628) | private static function getReferencesForCellBlock(string $cellBlock): ...
method mergeRangesInCollection (line 694) | public static function mergeRangesInCollection(array $coordinateCollec...
method getCellBlocksFromRangeString (line 769) | private static function getCellBlocksFromRangeString(string $rangeStri...
method validateRange (line 788) | private static function validateRange(string $cellBlock, int $startCol...
FILE: src/PhpSpreadsheet/Cell/DataType.php
class DataType (line 8) | class DataType
method getErrorCodes (line 45) | public static function getErrorCodes(): array
method checkString (line 57) | public static function checkString(null|RichText|string $textValue, bo...
method checkErrorCode (line 82) | public static function checkErrorCode(mixed $value): string
FILE: src/PhpSpreadsheet/Cell/DataValidation.php
class DataValidation (line 5) | class DataValidation
method getFormula1 (line 101) | public function getFormula1(): string
method setFormula1 (line 111) | public function setFormula1(string $formula): static
method getFormula2 (line 121) | public function getFormula2(): string
method setFormula2 (line 131) | public function setFormula2(string $formula): static
method getType (line 141) | public function getType(): string
method setType (line 151) | public function setType(string $type): static
method getErrorStyle (line 161) | public function getErrorStyle(): string
method setErrorStyle (line 173) | public function setErrorStyle(string $errorStyle): static
method getOperator (line 183) | public function getOperator(): string
method setOperator (line 193) | public function setOperator(string $operator): static
method getAllowBlank (line 203) | public function getAllowBlank(): bool
method setAllowBlank (line 213) | public function setAllowBlank(bool $allowBlank): static
method getShowDropDown (line 223) | public function getShowDropDown(): bool
method setShowDropDown (line 233) | public function setShowDropDown(bool $showDropDown): static
method getShowInputMessage (line 243) | public function getShowInputMessage(): bool
method setShowInputMessage (line 253) | public function setShowInputMessage(bool $showInputMessage): static
method getShowErrorMessage (line 263) | public function getShowErrorMessage(): bool
method setShowErrorMessage (line 273) | public function setShowErrorMessage(bool $showErrorMessage): static
method getErrorTitle (line 283) | public function getErrorTitle(): string
method setErrorTitle (line 293) | public function setErrorTitle(string $errorTitle): static
method getError (line 303) | public function getError(): string
method setError (line 313) | public function setError(string $error): static
method getPromptTitle (line 323) | public function getPromptTitle(): string
method setPromptTitle (line 333) | public function setPromptTitle(string $promptTitle): static
method getPrompt (line 343) | public function getPrompt(): string
method setPrompt (line 353) | public function setPrompt(string $prompt): static
method getHashCode (line 365) | public function getHashCode(): string
method getSqref (line 388) | public function getSqref(): ?string
method setSqref (line 393) | public function setSqref(?string $str): self
FILE: src/PhpSpreadsheet/Cell/DataValidator.php
class DataValidator (line 13) | class DataValidator
method isValid (line 20) | public function isValid(Cell $cell): bool
method evaluateNumericFormula (line 58) | private static function evaluateNumericFormula(mixed $formula, Cell $c...
method numericOperator (line 79) | private function numericOperator(DataValidation $dataValidation, int|f...
method isValueInList (line 113) | private function isValueInList(Cell $cell): bool
FILE: src/PhpSpreadsheet/Cell/DefaultValueBinder.php
class DefaultValueBinder (line 15) | class DefaultValueBinder implements IValueBinder
method bindValue (line 26) | public function bindValue(Cell $cell, mixed $value): bool
method dataTypeForValue (line 56) | public static function dataTypeForValue(mixed $value): string
method getPreserveCr (line 134) | public function getPreserveCr(): bool
method setPreserveCr (line 139) | public function setPreserveCr(bool $preserveCr): self
FILE: src/PhpSpreadsheet/Cell/Hyperlink.php
class Hyperlink (line 5) | class Hyperlink
method __construct (line 25) | public function __construct(string $url = '', string $tooltip = '')
method getUrl (line 35) | public function getUrl(): string
method setUrl (line 45) | public function setUrl(string $url): static
method getTooltip (line 55) | public function getTooltip(): string
method setTooltip (line 65) | public function setTooltip(string $tooltip): static
method isInternal (line 75) | public function isInternal(): bool
method getTypeHyperlink (line 80) | public function getTypeHyperlink(): string
method getDisplay (line 85) | public function getDisplay(): string
method setDisplay (line 95) | public function setDisplay(string $display): self
method getHashCode (line 107) | public function getHashCode(): string
FILE: src/PhpSpreadsheet/Cell/IValueBinder.php
type IValueBinder (line 5) | interface IValueBinder
method bindValue (line 13) | public function bindValue(Cell $cell, mixed $value): bool;
FILE: src/PhpSpreadsheet/Cell/IgnoredErrors.php
class IgnoredErrors (line 5) | class IgnoredErrors
method setNumberStoredAsText (line 17) | public function setNumberStoredAsText(bool $value): self
method getNumberStoredAsText (line 24) | public function getNumberStoredAsText(): bool
method setFormula (line 29) | public function setFormula(bool $value): self
method getFormula (line 36) | public function getFormula(): bool
method setFormulaRange (line 41) | public function setFormulaRange(bool $value): self
method getFormulaRange (line 48) | public function getFormulaRange(): bool
method setTwoDigitTextYear (line 53) | public function setTwoDigitTextYear(bool $value): self
method getTwoDigitTextYear (line 60) | public function getTwoDigitTextYear(): bool
method setEvalError (line 65) | public function setEvalError(bool $value): self
method getEvalError (line 72) | public function getEvalError(): bool
FILE: src/PhpSpreadsheet/Cell/RowRange.php
class RowRange (line 11) | class RowRange implements AddressRange, Stringable
method __construct (line 19) | public function __construct(int $from, ?int $to = null, ?Worksheet $wo...
method __destruct (line 25) | public function __destruct()
method fromArray (line 31) | public static function fromArray(array $array, ?Worksheet $worksheet =...
method validateFromTo (line 38) | private function validateFromTo(int $from, int $to): void
method from (line 45) | public function from(): int
method to (line 50) | public function to(): int
method rowCount (line 55) | public function rowCount(): int
method shiftRight (line 60) | public function shiftRight(int $offset = 1): self
method shiftLeft (line 71) | public function shiftLeft(int $offset = 1): self
method toCellRange (line 76) | public function toCellRange(): CellRange
method __toString (line 84) | public function __toString(): string
FILE: src/PhpSpreadsheet/Cell/StringValueBinder.php
class StringValueBinder (line 11) | class StringValueBinder extends DefaultValueBinder implements IValueBinder
method setSetIgnoredErrors (line 23) | public function setSetIgnoredErrors(bool $setIgnoredErrors = false): self
method setNullConversion (line 30) | public function setNullConversion(bool $suppressConversion = false): self
method setBooleanConversion (line 37) | public function setBooleanConversion(bool $suppressConversion = false)...
method getBooleanConversion (line 44) | public function getBooleanConversion(): bool
method setNumericConversion (line 49) | public function setNumericConversion(bool $suppressConversion = false)...
method setFormulaConversion (line 56) | public function setFormulaConversion(bool $suppressConversion = false)...
method setConversionForAllValueTypes (line 63) | public function setConversionForAllValueTypes(bool $suppressConversion...
method bindValue (line 79) | public function bindValue(Cell $cell, mixed $value): bool
method bindObjectValue (line 113) | protected function bindObjectValue(Cell $cell, object $value): bool
FILE: src/PhpSpreadsheet/CellReferenceHelper.php
class CellReferenceHelper (line 8) | class CellReferenceHelper
method __construct (line 26) | public function __construct(string $beforeCellAddress = 'A1', int $num...
method beforeCellAddress (line 41) | public function beforeCellAddress(): string
method refreshRequired (line 46) | public function refreshRequired(string $beforeCellAddress, int $number...
method updateCellReference (line 53) | public function updateCellReference(string $cellReference = 'A1', bool...
method computeNewColumnIndex (line 97) | public function computeNewColumnIndex(int $newColumnIndex, ?bool $topL...
method computeNewRowIndex (line 120) | public function computeNewRowIndex(int $newRowIndex, ?bool $topLeft): int
method cellAddressInDeleteRange (line 142) | public function cellAddressInDeleteRange(string $cellAddress): bool
method updateColumnReference (line 164) | protected function updateColumnReference(int $newColumnIndex, string $...
method updateRowReference (line 171) | protected function updateRowReference(int $newRowIndex, string $absolu...
FILE: src/PhpSpreadsheet/Chart/Axis.php
class Axis (line 11) | class Axis extends Properties
method __construct (line 21) | public function __construct()
method setAxisNumberProperties (line 116) | public function setAxisNumberProperties(string $format_code, ?bool $nu...
method getAxisNumberFormat (line 131) | public function getAxisNumberFormat(): string
method getAxisNumberSourceLinked (line 139) | public function getAxisNumberSourceLinked(): string
method getAxisIsNumericFormat (line 144) | public function getAxisIsNumericFormat(): bool
method setAxisOption (line 149) | public function setAxisOption(string $key, null|float|int|string $valu...
method setAxisOptionsProperties (line 159) | public function setAxisOptionsProperties(
method getAxisOptionsProperty (line 200) | public function getAxisOptionsProperty(string $property): ?string
method setAxisOrientation (line 216) | public function setAxisOrientation(string $orientation): void
method getAxisType (line 221) | public function getAxisType(): string
method setAxisType (line 226) | public function setAxisType(string $type): self
method setFillParameters (line 240) | public function setFillParameters(?string $color, ?int $alpha = null, ...
method getFillProperty (line 248) | public function getFillProperty(string $property): string
method getFillColorObject (line 253) | public function getFillColorObject(): ChartColor
method setCrossBetween (line 260) | public function setCrossBetween(string $crossBetween): self
method getCrossBetween (line 267) | public function getCrossBetween(): string
method getMajorGridlines (line 272) | public function getMajorGridlines(): ?GridLines
method getMinorGridlines (line 277) | public function getMinorGridlines(): ?GridLines
method setMajorGridlines (line 282) | public function setMajorGridlines(?GridLines $gridlines): self
method setMinorGridlines (line 289) | public function setMinorGridlines(?GridLines $gridlines): self
method getAxisText (line 296) | public function getAxisText(): ?AxisText
method setAxisText (line 301) | public function setAxisText(?AxisText $axisText): self
method setNoFill (line 308) | public function setNoFill(bool $noFill): self
method getNoFill (line 315) | public function getNoFill(): bool
method setDispUnitsTitle (line 320) | public function setDispUnitsTitle(?Title $dispUnitsTitle): self
method getDispUnitsTitle (line 327) | public function getDispUnitsTitle(): ?Title
method __clone (line 335) | public function __clone()
FILE: src/PhpSpreadsheet/Chart/AxisText.php
class AxisText (line 7) | class AxisText extends Properties
method __construct (line 13) | public function __construct()
method setRotation (line 20) | public function setRotation(?int $rotation): self
method getRotation (line 27) | public function getRotation(): ?int
method getFillColorObject (line 32) | public function getFillColorObject(): ChartColor
method getFont (line 43) | public function getFont(): Font
method setFont (line 48) | public function setFont(Font $font): self
method __clone (line 58) | public function __clone()
FILE: src/PhpSpreadsheet/Chart/Chart.php
class Chart (line 8) | class Chart
method __construct (line 131) | public function __construct(string $name, ?Title $title = null, ?Legen...
method __destruct (line 153) | public function __destruct()
method getName (line 161) | public function getName(): string
method setName (line 166) | public function setName(string $name): self
method getWorksheet (line 176) | public function getWorksheet(): ?Worksheet
method setWorksheet (line 186) | public function setWorksheet(?Worksheet $worksheet = null): static
method getTitle (line 193) | public function getTitle(): ?Title
method setTitle (line 203) | public function setTitle(Title $title): static
method getLegend (line 210) | public function getLegend(): ?Legend
method setLegend (line 220) | public function setLegend(Legend $legend): static
method getXAxisLabel (line 227) | public function getXAxisLabel(): ?Title
method setXAxisLabel (line 237) | public function setXAxisLabel(Title $label): static
method getYAxisLabel (line 244) | public function getYAxisLabel(): ?Title
method setYAxisLabel (line 254) | public function setYAxisLabel(Title $label): static
method getPlotArea (line 261) | public function getPlotArea(): ?PlotArea
method getPlotAreaOrThrow (line 266) | public function getPlotAreaOrThrow(): PlotArea
method setPlotArea (line 279) | public function setPlotArea(PlotArea $plotArea): self
method getPlotVisibleOnly (line 289) | public function getPlotVisibleOnly(): bool
method setPlotVisibleOnly (line 299) | public function setPlotVisibleOnly(bool $plotVisibleOnly): static
method getDisplayBlanksAs (line 309) | public function getDisplayBlanksAs(): string
method setDisplayBlanksAs (line 319) | public function setDisplayBlanksAs(string $displayBlanksAs): static
method getChartAxisY (line 327) | public function getChartAxisY(): Axis
method setChartAxisY (line 335) | public function setChartAxisY(?Axis $axis): self
method getChartAxisX (line 342) | public function getChartAxisX(): Axis
method setChartAxisX (line 350) | public function setChartAxisX(?Axis $axis): self
method setTopLeftPosition (line 362) | public function setTopLeftPosition(string $cellAddress, ?int $xOffset ...
method getTopLeftPosition (line 382) | public function getTopLeftPosition(): array
method getTopLeftCell (line 394) | public function getTopLeftCell(): string
method setTopLeftCell (line 404) | public function setTopLeftCell(string $cellAddress): static
method setTopLeftOffset (line 416) | public function setTopLeftOffset(?int $xOffset, ?int $yOffset): static
method getTopLeftOffset (line 434) | public function getTopLeftOffset(): array
method setTopLeftXOffset (line 445) | public function setTopLeftXOffset(int $xOffset): static
method getTopLeftXOffset (line 452) | public function getTopLeftXOffset(): int
method setTopLeftYOffset (line 460) | public function setTopLeftYOffset(int $yOffset): static
method getTopLeftYOffset (line 467) | public function getTopLeftYOffset(): int
method setBottomRightPosition (line 477) | public function setBottomRightPosition(string $cellAddress = '', ?int ...
method getBottomRightPosition (line 495) | public function getBottomRightPosition(): array
method setBottomRightCell (line 509) | public function setBottomRightCell(string $cellAddress = ''): static
method getBottomRightCell (line 519) | public function getBottomRightCell(): string
method setBottomRightOffset (line 529) | public function setBottomRightOffset(?int $xOffset, ?int $yOffset): st...
method getBottomRightOffset (line 547) | public function getBottomRightOffset(): array
method setBottomRightXOffset (line 558) | public function setBottomRightXOffset(int $xOffset): static
method getBottomRightXOffset (line 565) | public function getBottomRightXOffset(): int
method setBottomRightYOffset (line 573) | public function setBottomRightYOffset(int $yOffset): static
method getBottomRightYOffset (line 580) | public function getBottomRightYOffset(): int
method refresh (line 585) | public function refresh(): void
method render (line 599) | public function render(?string $outputDestination = null): bool
method getRotX (line 618) | public function getRotX(): ?int
method setRotX (line 623) | public function setRotX(?int $rotX): self
method getRotY (line 630) | public function getRotY(): ?int
method setRotY (line 635) | public function setRotY(?int $rotY): self
method getRAngAx (line 642) | public function getRAngAx(): ?int
method setRAngAx (line 647) | public function setRAngAx(?int $rAngAx): self
method getPerspective (line 654) | public function getPerspective(): ?int
method setPerspective (line 659) | public function setPerspective(?int $perspective): self
method getOneCellAnchor (line 666) | public function getOneCellAnchor(): bool
method setOneCellAnchor (line 671) | public function setOneCellAnchor(bool $oneCellAnchor): self
method getAutoTitleDeleted (line 678) | public function getAutoTitleDeleted(): bool
method setAutoTitleDeleted (line 683) | public function setAutoTitleDeleted(bool $autoTitleDeleted): self
method getNoFill (line 690) | public function getNoFill(): bool
method setNoFill (line 695) | public function setNoFill(bool $noFill): self
method getNoBorder (line 702) | public function getNoBorder(): bool
method setNoBorder (line 707) | public function setNoBorder(bool $noBorder): self
method getRoundedCorners (line 714) | public function getRoundedCorners(): bool
method setRoundedCorners (line 719) | public function setRoundedCorners(?bool $roundedCorners): self
method getBorderLines (line 728) | public function getBorderLines(): GridLines
method setBorderLines (line 733) | public function setBorderLines(GridLines $borderLines): self
method getFillColor (line 740) | public function getFillColor(): ChartColor
method setRenderedWidth (line 745) | public function setRenderedWidth(?float $width): self
method getRenderedWidth (line 752) | public function getRenderedWidth(): ?float
method setRenderedHeight (line 757) | public function setRenderedHeight(?float $height): self
method getRenderedHeight (line 764) | public function getRenderedHeight(): ?float
method __clone (line 772) | public function __clone()
FILE: src/PhpSpreadsheet/Chart/ChartColor.php
class ChartColor (line 5) | class ChartColor
method __construct (line 27) | public function __construct($value = '', ?int $alpha = null, ?string $...
method getValue (line 36) | public function getValue(): string
method setValue (line 41) | public function setValue(string $value): self
method getType (line 48) | public function getType(): string
method setType (line 53) | public function setType(string $type): self
method getAlpha (line 60) | public function getAlpha(): ?int
method setAlpha (line 65) | public function setAlpha(?int $alpha): self
method getBrightness (line 72) | public function getBrightness(): ?int
method setBrightness (line 77) | public function setBrightness(?int $brightness): self
method setColorProperties (line 84) | public function setColorProperties(?string $color, null|float|int|stri...
method setColorPropertiesArray (line 118) | public function setColorPropertiesArray(array $color): self
method isUsable (line 128) | public function isUsable(): bool
method getColorProperty (line 136) | public function getColorProperty(string $propertyName): null|int|string
method alphaToXml (line 152) | public static function alphaToXml(int $alpha): string
method alphaFromXml (line 157) | public static function alphaFromXml(float|int|string $alpha): int
FILE: src/PhpSpreadsheet/Chart/DataSeries.php
class DataSeries (line 7) | class DataSeries
method __construct (line 117) | public function __construct(
method getPlotType (line 155) | public function getPlotType(): ?string
method setPlotType (line 165) | public function setPlotType(string $plotType): static
method getPlotGrouping (line 175) | public function getPlotGrouping(): ?string
method setPlotGrouping (line 185) | public function setPlotGrouping(string $groupingType): static
method getPlotDirection (line 195) | public function getPlotDirection(): string
method setPlotDirection (line 205) | public function setPlotDirection(string $plotDirection): static
method getPlotOrder (line 217) | public function getPlotOrder(): array
method getPlotLabels (line 227) | public function getPlotLabels(): array
method getPlotLabelByIndex (line 237) | public function getPlotLabelByIndex(int $index): bool|DataSeriesValues
method getPlotCategories (line 252) | public function getPlotCategories(): array
method getPlotCategoryByIndex (line 262) | public function getPlotCategoryByIndex(int $index): bool|DataSeriesValues
method getPlotStyle (line 277) | public function getPlotStyle(): ?string
method setPlotStyle (line 287) | public function setPlotStyle(?string $plotStyle): static
method getPlotValues (line 299) | public function getPlotValues(): array
method getPlotValuesByIndex (line 309) | public function getPlotValuesByIndex(int $index): bool|DataSeriesValues
method getPlotBubbleSizes (line 324) | public function getPlotBubbleSizes(): array
method setPlotBubbleSizes (line 334) | public function setPlotBubbleSizes(array $plotBubbleSizes): self
method getPlotSeriesCount (line 344) | public function getPlotSeriesCount(): int
method getSmoothLine (line 352) | public function getSmoothLine(): bool
method setSmoothLine (line 362) | public function setSmoothLine(bool $smoothLine): static
method refresh (line 369) | public function refresh(Worksheet $worksheet): void
method __clone (line 385) | public function __clone()
FILE: src/PhpSpreadsheet/Chart/DataSeriesValues.php
class DataSeriesValues (line 10) | class DataSeriesValues extends Properties
method __construct (line 83) | public function __construct(
method getDataType (line 113) | public function getDataType(): string
method setDataType (line 130) | public function setDataType(string $dataType): static
method getDataSource (line 143) | public function getDataSource(): ?string
method setDataSource (line 153) | public function setDataSource(?string $dataSource): static
method getPointMarker (line 163) | public function getPointMarker(): ?string
method setPointMarker (line 173) | public function setPointMarker(string $marker): static
method getMarkerFillColor (line 180) | public function getMarkerFillColor(): ChartColor
method getMarkerBorderColor (line 185) | public function getMarkerBorderColor(): ChartColor
method getPointSize (line 193) | public function getPointSize(): int
method setPointSize (line 203) | public function setPointSize(int $size = 3): static
method getFormatCode (line 213) | public function getFormatCode(): ?string
method setFormatCode (line 223) | public function setFormatCode(string $formatCode): static
method getPointCount (line 233) | public function getPointCount(): int
method getFillColorObject (line 243) | public function getFillColorObject()
method stringToChartColor (line 248) | private function stringToChartColor(string $fillString): ChartColor
method chartColorToString (line 266) | private function chartColorToString(ChartColor $chartColor): string
method getFillColor (line 288) | public function getFillColor(): string|array
method setFillColor (line 312) | public function setFillColor($color): static
method validateColor (line 337) | private function validateColor(string $color): void
method getLineWidth (line 347) | public function getLineWidth(): null|float|int
method setLineWidth (line 360) | public function setLineWidth(null|float|int $width): static
method isMultiLevelSeries (line 370) | public function isMultiLevelSeries(): ?bool
method multiLevelCount (line 382) | public function multiLevelCount(): int
method getDataValues (line 398) | public function getDataValues(): ?array
method getDataValue (line 406) | public function getDataValue(): mixed
method setDataValues (line 428) | public function setDataValues(array $dataValues): static
method refresh (line 436) | public function refresh(Worksheet $worksheet, bool $flatten = true): void
method getScatterLines (line 482) | public function getScatterLines(): bool
method setScatterLines (line 487) | public function setScatterLines(bool $scatterLines): self
method getBubble3D (line 494) | public function getBubble3D(): bool
method setBubble3D (line 499) | public function setBubble3D(bool $bubble3D): self
method getSmoothLine (line 514) | public function getSmoothLine(): bool
method setSmoothLine (line 524) | public function setSmoothLine(bool $smoothLine): static
method getLabelLayout (line 531) | public function getLabelLayout(): ?Layout
method setLabelLayout (line 536) | public function setLabelLayout(?Layout $labelLayout): self
method setTrendLines (line 544) | public function setTrendLines(array $trendLines): self
method getTrendLines (line 552) | public function getTrendLines(): array
method __clone (line 560) | public function __clone()
FILE: src/PhpSpreadsheet/Chart/Exception.php
class Exception (line 7) | class Exception extends PhpSpreadsheetException
FILE: src/PhpSpreadsheet/Chart/GridLines.php
class GridLines (line 11) | class GridLines extends Properties
FILE: src/PhpSpreadsheet/Chart/Layout.php
class Layout (line 7) | class Layout
method __construct (line 107) | public function __construct(array $layout = [])
method initBoolean (line 162) | private function initBoolean(array $layout, string $name): void
method initColor (line 170) | private function initColor(array $layout, string $name): void
method getLayoutTarget (line 180) | public function getLayoutTarget(): ?string
method setLayoutTarget (line 190) | public function setLayoutTarget(?string $target): static
method getXMode (line 200) | public function getXMode(): ?string
method setXMode (line 210) | public function setXMode(?string $mode): static
method getYMode (line 220) | public function getYMode(): ?string
method setYMode (line 230) | public function setYMode(?string $mode): static
method getXPosition (line 240) | public function getXPosition(): null|float|int
method setXPosition (line 250) | public function setXPosition(float $position): static
method getYPosition (line 260) | public function getYPosition(): ?float
method setYPosition (line 270) | public function setYPosition(float $position): static
method getWidth (line 280) | public function getWidth(): ?float
method setWidth (line 290) | public function setWidth(?float $width): static
method getHeight (line 300) | public function getHeight(): ?float
method setHeight (line 310) | public function setHeight(?float $height): static
method getShowLegendKey (line 317) | public function getShowLegendKey(): ?bool
method setShowLegendKey (line 326) | public function setShowLegendKey(?bool $showLegendKey): self
method getShowVal (line 333) | public function getShowVal(): ?bool
method setShowVal (line 342) | public function setShowVal(?bool $showDataLabelValues): self
method getShowCatName (line 349) | public function getShowCatName(): ?bool
method setShowCatName (line 358) | public function setShowCatName(?bool $showCategoryName): self
method getShowSerName (line 365) | public function getShowSerName(): ?bool
method setShowSerName (line 374) | public function setShowSerName(?bool $showSeriesName): self
method getShowPercent (line 381) | public function getShowPercent(): ?bool
method setShowPercent (line 390) | public function setShowPercent(?bool $showPercentage): self
method getShowBubbleSize (line 397) | public function getShowBubbleSize(): ?bool
method setShowBubbleSize (line 406) | public function setShowBubbleSize(?bool $showBubbleSize): self
method getShowLeaderLines (line 413) | public function getShowLeaderLines(): ?bool
method setShowLeaderLines (line 422) | public function setShowLeaderLines(?bool $showLeaderLines): self
method getLabelFillColor (line 429) | public function getLabelFillColor(): ?ChartColor
method setLabelFillColor (line 434) | public function setLabelFillColor(?ChartColor $chartColor): self
method getLabelBorderColor (line 441) | public function getLabelBorderColor(): ?ChartColor
method setLabelBorderColor (line 446) | public function setLabelBorderColor(?ChartColor $chartColor): self
method getLabelFont (line 453) | public function getLabelFont(): ?Font
method setLabelFont (line 458) | public function setLabelFont(?Font $labelFont): self
method getLabelEffects (line 465) | public function getLabelEffects(): ?Properties
method getLabelFontColor (line 470) | public function getLabelFontColor(): ?ChartColor
method setLabelFontColor (line 479) | public function setLabelFontColor(?ChartColor $chartColor): self
method getDLblPos (line 490) | public function getDLblPos(): string
method setDLblPos (line 495) | public function setDLblPos(string $dLblPos): self
method getNumFmtCode (line 502) | public function getNumFmtCode(): string
method setNumFmtCode (line 507) | public function setNumFmtCode(string $numFmtCode): self
method getNumFmtLinked (line 514) | public function getNumFmtLinked(): bool
method setNumFmtLinked (line 519) | public function setNumFmtLinked(bool $numFmtLinked): self
method __clone (line 529) | public function __clone()
FILE: src/PhpSpreadsheet/Chart/Legend.php
class Legend (line 5) | class Legend
method __construct (line 54) | public function __construct(string $position = self::POSITION_RIGHT, ?...
method getFillColor (line 63) | public function getFillColor(): ChartColor
method getPosition (line 71) | public function getPosition(): string
method setPosition (line 81) | public function setPosition(string $position): bool
method getPositionXL (line 95) | public function getPositionXL(): false|int
method setPositionXL (line 105) | public function setPositionXL(int $positionXL): bool
method getOverlay (line 119) | public function getOverlay(): bool
method setOverlay (line 127) | public function setOverlay(bool $overlay): void
method getLayout (line 135) | public function getLayout(): ?Layout
method getLegendText (line 140) | public function getLegendText(): ?AxisText
method setLegendText (line 145) | public function setLegendText(?AxisText $legendText): self
method getBorderLines (line 152) | public function getBorderLines(): GridLines
method setBorderLines (line 157) | public function setBorderLines(GridLines $borderLines): self
method __clone (line 167) | public function __clone()
FILE: src/PhpSpreadsheet/Chart/PlotArea.php
class PlotArea (line 7) | class PlotArea
method __construct (line 46) | public function __construct(?Layout $layout = null, array $plotSeries ...
method getLayout (line 52) | public function getLayout(): ?Layout
method getPlotGroupCount (line 60) | public function getPlotGroupCount(): int
method getPlotSeriesCount (line 68) | public function getPlotSeriesCount(): int|float
method getPlotGroup (line 83) | public function getPlotGroup(): array
method getPlotGroupByIndex (line 91) | public function getPlotGroupByIndex(int $index): DataSeries
method setPlotSeries (line 103) | public function setPlotSeries(array $plotSeries): static
method refresh (line 110) | public function refresh(Worksheet $worksheet): void
method setNoFill (line 117) | public function setNoFill(bool $noFill): self
method getNoFill (line 124) | public function getNoFill(): bool
method setGradientFillProperties (line 130) | public function setGradientFillProperties(array $gradientFillStops, ?f...
method getGradientFillAngle (line 141) | public function getGradientFillAngle(): ?float
method getGradientFillStops (line 151) | public function getGradientFillStops(): array
method getGapWidth (line 162) | public function getGapWidth(): ?int
method setGapWidth (line 167) | public function setGapWidth(?int $gapWidth): self
method getUseUpBars (line 174) | public function getUseUpBars(): bool
method setUseUpBars (line 179) | public function setUseUpBars(bool $useUpBars): self
method getUseDownBars (line 186) | public function getUseDownBars(): bool
method setUseDownBars (line 191) | public function setUseDownBars(bool $useDownBars): self
method __clone (line 201) | public function __clone()
FILE: src/PhpSpreadsheet/Chart/Properties.php
class Properties (line 11) | abstract class Properties
method __construct (line 124) | public function __construct()
method getObjectState (line 137) | public function getObjectState(): bool
method activateObject (line 147) | public function activateObject()
method pointsToXml (line 154) | public static function pointsToXml(float $width): string
method xmlToPoints (line 159) | public static function xmlToPoints(string $width): float
method angleToXml (line 164) | public static function angleToXml(float $angle): string
method xmlToAngle (line 169) | public static function xmlToAngle(string $angle): float
method tenthOfPercentToXml (line 174) | public static function tenthOfPercentToXml(float $value): string
method xmlToTenthOfPercent (line 179) | public static function xmlToTenthOfPercent(string $value): float
method setColorProperties (line 185) | protected function setColorProperties(?string $color, null|float|int|s...
method getShadowPresetsMap (line 403) | protected function getShadowPresetsMap(int $presetsOption): array
method getArrayElementsValue (line 414) | protected function getArrayElementsValue(array $properties, array|int|...
method setGlowProperties (line 431) | public function setGlowProperties(float $size, ?string $colorValue = n...
method getGlowProperty (line 452) | public function getGlowProperty(array|string $property): null|array|fl...
method getGlowColor (line 475) | public function getGlowColor(string $propertyName): null|int|string
method getGlowColorObject (line 480) | public function getGlowColorObject(): ChartColor
method getGlowSize (line 488) | public function getGlowSize(): ?float
method setGlowSize (line 498) | protected function setGlowSize(?float $size)
method setSoftEdges (line 508) | public function setSoftEdges(?float $size): void
method getSoftEdgesSize (line 519) | public function getSoftEdgesSize(): ?float
method setShadowProperty (line 525) | public function setShadowProperty(string $propertyName, mixed $value):...
method setShadowProperties (line 542) | public function setShadowProperties(int $presets, ?string $colorValue ...
method setShadowPresetsProperties (line 570) | protected function setShadowPresetsProperties(int $presets)
method setShadowPropertiesMapValues (line 588) | protected function setShadowPropertiesMapValues(array $propertiesMap, ...
method setShadowBlur (line 619) | protected function setShadowBlur(?float $blur)
method setShadowAngle (line 633) | protected function setShadowAngle(null|float|int|string $angle)
method setShadowDistance (line 647) | protected function setShadowDistance(?float $distance)
method getShadowColorObject (line 656) | public function getShadowColorObject(): ChartColor
method getShadowProperty (line 668) | public function getShadowProperty($elements): array|string|null
method getShadowArray (line 690) | public function getShadowArray(): array
method copyLineStyles (line 725) | public function copyLineStyles(self $otherProperties): void
method getLineColor (line 735) | public function getLineColor(): ChartColor
method setLineColorProperties (line 743) | public function setLineColorProperties(?string $value, ?int $alpha = n...
method getLineColorProperty (line 758) | public function getLineColorProperty(string $propertyName): null|int|s...
method setLineStyleProperties (line 766) | public function setLineStyleProperties(
method getLineStyleArray (line 828) | public function getLineStyleArray(): array
method setLineStyleArray (line 834) | public function setLineStyleArray(array $lineStyleProperties = []): self
method setLineStyleProperty (line 855) | public function setLineStyleProperty(string $propertyName, mixed $valu...
method getLineStyleProperty (line 868) | public function getLineStyleProperty(array|string $elements): ?string
method getLineStyleArrowSize (line 897) | protected function getLineStyleArrowSize(int $arraySelector, string $a...
method getLineStyleArrowParameters (line 905) | public function getLineStyleArrowParameters(string $arrowSelector, str...
method getLineStyleArrowWidth (line 913) | public function getLineStyleArrowWidth(string $arrow): ?string
method getLineStyleArrowLength (line 921) | public function getLineStyleArrowLength(string $arrow): ?string
method __clone (line 929) | public function __clone()
FILE: src/PhpSpreadsheet/Chart/Renderer/IRenderer.php
type IRenderer (line 7) | interface IRenderer
method __construct (line 12) | public function __construct(Chart $chart);
method render (line 21) | public function render(?string $filename): bool;
FILE: src/PhpSpreadsheet/Chart/Renderer/JpGraph.php
class JpGraph (line 16) | class JpGraph extends JpGraphRendererBase
method init (line 18) | protected static function init(): void
FILE: src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php
class JpGraphRendererBase (line 27) | abstract class JpGraphRendererBase implements IRenderer
method __construct (line 54) | public function __construct(Chart $chart)
method getGraphWidth (line 73) | private function getGraphWidth(): float
method getGraphHeight (line 78) | private function getGraphHeight(): float
method init (line 86) | abstract protected static function init(): void;
method formatPointMarker (line 88) | private function formatPointMarker($seriesPlot, $markerID)
method formatDataSetLabels (line 115) | private function formatDataSetLabels(int $groupID, array $datasetLabel...
method percentageSumCalculation (line 142) | private function percentageSumCalculation(int $groupID, $seriesCount)
method percentageAdjustValues (line 164) | private function percentageAdjustValues(array $dataValues, array $sumV...
method getCaption (line 173) | private function getCaption($captionElement)
method renderTitle (line 189) | private function renderTitle(): void
method renderLegend (line 197) | private function renderLegend(): void
method renderCartesianPlotArea (line 232) | private function renderCartesianPlotArea(string $type = 'textlin'): void
method renderPiePlotArea (line 269) | private function renderPiePlotArea(): void
method renderRadarPlotArea (line 276) | private function renderRadarPlotArea(): void
method getDataLabel (line 284) | private function getDataLabel(int $groupId, int $index): mixed
method renderPlotLine (line 294) | private function renderPlotLine(int $groupID, bool $filled = false, bo...
method renderPlotBar (line 361) | private function renderPlotBar(int $groupID, ?string $dimensions = '2d...
method renderPlotScatter (line 445) | private function renderPlotScatter(int $groupID, bool $bubble): void
method renderPlotRadar (line 507) | private function renderPlotRadar(int $groupID): void
method renderPlotContour (line 543) | private function renderPlotContour(int $groupID): void
method renderPlotStock (line 559) | private function renderPlotStock(int $groupID): void
method renderAreaChart (line 603) | private function renderAreaChart($groupCount): void
method renderLineChart (line 612) | private function renderLineChart($groupCount): void
method renderBarChart (line 621) | private function renderBarChart($groupCount, ?string $dimensions = '2d...
method renderScatterChart (line 630) | private function renderScatterChart($groupCount): void
method renderBubbleChart (line 639) | private function renderBubbleChart($groupCount): void
method renderPieChart (line 648) | private function renderPieChart($groupCount, ?string $dimensions = '2d...
method renderRadarChart (line 718) | private function renderRadarChart($groupCount): void
method renderStockChart (line 727) | private function renderStockChart($groupCount): void
method renderContourChart (line 736) | private function renderContourChart($groupCount): void
method renderCombinationChart (line 745) | private function renderCombinationChart($groupCount, $outputDestinatio...
method render (line 792) | public function render(?string $outputDestination): bool
FILE: src/PhpSpreadsheet/Chart/Renderer/MtJpGraphRenderer.php
class MtJpGraphRenderer (line 15) | class MtJpGraphRenderer extends JpGraphRendererBase
method init (line 17) | protected static function init(): void
FILE: src/PhpSpreadsheet/Chart/Title.php
class Title (line 9) | class Title
method __construct (line 42) | public function __construct(array|RichText|string $caption = '', ?Layo...
method getCaption (line 54) | public function getCaption(): array|RichText|string
method getCaptionText (line 59) | public function getCaptionText(?Spreadsheet $spreadsheet = null): string
method setCaption (line 95) | public function setCaption(array|RichText|string $caption): static
method getOverlay (line 105) | public function getOverlay(): bool
method setOverlay (line 113) | public function setOverlay(bool $overlay): self
method getLayout (line 120) | public function getLayout(): ?Layout
method setCellReference (line 125) | public function setCellReference(string $cellReference): self
method getCellReference (line 132) | public function getCellReference(): string
method getCalculatedTitle (line 137) | public function getCalculatedTitle(?Spreadsheet $spreadsheet): ?string
method getFont (line 148) | public function getFont(): ?Font
method setFont (line 153) | public function setFont(?Font $font): self
method __clone (line 163) | public function __clone()
FILE: src/PhpSpreadsheet/Chart/TrendLine.php
class TrendLine (line 5) | class TrendLine extends Properties
method __construct (line 43) | public function __construct(
method getTrendLineType (line 68) | public function getTrendLineType(): string
method setTrendLineType (line 73) | public function setTrendLineType(string $trendLineType): self
method getOrder (line 80) | public function getOrder(): int
method setOrder (line 85) | public function setOrder(int $order): self
method getPeriod (line 92) | public function getPeriod(): int
method setPeriod (line 97) | public function setPeriod(int $period): self
method getDispRSqr (line 104) | public function getDispRSqr(): bool
method setDispRSqr (line 109) | public function setDispRSqr(bool $dispRSqr): self
method getDispEq (line 116) | public function getDispEq(): bool
method setDispEq (line 121) | public function setDispEq(bool $dispEq): self
method getName (line 128) | public function getName(): string
method setName (line 133) | public function setName(string $name): self
method getBackward (line 140) | public function getBackward(): float
method setBackward (line 145) | public function setBackward(float $backward): self
method getForward (line 152) | public function getForward(): float
method setForward (line 157) | public function setForward(float $forward): self
method getIntercept (line 164) | public function getIntercept(): float
method setIntercept (line 169) | public function setIntercept(float $intercept): self
method setTrendLineProperties (line 176) | public function setTrendLineProperties(
FILE: src/PhpSpreadsheet/Collection/Cells.php
class Cells (line 13) | class Cells
method __construct (line 77) | public function __construct(Worksheet $parent, CacheInterface $cache)
method getParent (line 90) | public function getParent(): ?Worksheet
method has (line 100) | public function has(string $cellCoordinate): bool
method has2 (line 105) | public function has2(string $cellCoordinate): bool
method update (line 115) | public function update(Cell $cell): Cell
method delete (line 125) | public function delete(string $cellCoordinate): void
method getCoordinates (line 149) | public function getCoordinates(): array
method getSortedCoordinates (line 164) | public function getSortedCoordinates(): array
method getSortedCoordinatesInt (line 188) | public function getSortedCoordinatesInt(): array
method getCurrentCoordinate (line 208) | public function getCurrentCoordinate(): ?string
method getCurrentColumn (line 216) | public function getCurrentColumn(): string
method getCurrentRow (line 228) | public function getCurrentRow(): int
method getHighestRowAndColumn (line 242) | public function getHighestRowAndColumn(): array
method getHighestColumn (line 267) | public function getHighestColumn($row = null): string
method getHighestRow (line 300) | public function getHighestRow(?string $column = null): int
method getUniqueID (line 324) | private function getUniqueID(): string
method cloneCellCollection (line 336) | public function cloneCellCollection(Worksheet $worksheet): static
method removeRow (line 368) | public function removeRow($row): void
method removeColumn (line 392) | public function removeColumn(string $column): void
method storeCurrentCell (line 410) | private function storeCurrentCell(): void
method destructIfNeeded (line 426) | private function destructIfNeeded(self $cells, string $message): void
method add (line 439) | public function add(string $cellCoordinate, Cell $cell): Cell
method get (line 469) | public function get(string $cellCoordinate): ?Cell
method unsetWorksheetCells (line 496) | public function unsetWorksheetCells(): void
method __destruct (line 521) | public function __destruct()
method getAllCacheKeys (line 532) | private function getAllCacheKeys(): iterable
method getCache (line 539) | private function getCache(string $cellCoordinate): Cell
FILE: src/PhpSpreadsheet/Collection/CellsFactory.php
class CellsFactory (line 8) | abstract class CellsFactory
method getInstance (line 16) | public static function getInstance(Worksheet $worksheet): Cells
FILE: src/PhpSpreadsheet/Collection/Memory/SimpleCache1.php
class SimpleCache1 (line 18) | class SimpleCache1 implements CacheInterface
method clear (line 25) | public function clear(): bool
method delete (line 32) | public function delete($key): bool
method deleteMultiple (line 39) | public function deleteMultiple($keys): bool
method get (line 48) | public function get($key, $default = null): mixed
method getMultiple (line 57) | public function getMultiple($keys, $default = null): iterable
method has (line 67) | public function has($key): bool
method set (line 72) | public function set($key, $value, $ttl = null): bool
method setMultiple (line 79) | public function setMultiple($values, $ttl = null): bool
FILE: src/PhpSpreadsheet/Collection/Memory/SimpleCache3.php
class SimpleCache3 (line 14) | class SimpleCache3 implements CacheInterface
method clear (line 18) | public function clear(): bool
method delete (line 25) | public function delete(string $key): bool
method deleteMultiple (line 32) | public function deleteMultiple(iterable $keys): bool
method get (line 41) | public function get(string $key, mixed $default = null): mixed
method getMultiple (line 50) | public function getMultiple(iterable $keys, mixed $default = null): it...
method has (line 60) | public function has(string $key): bool
method set (line 65) | public function set(string $key, mixed $value, null|int|DateInterval $...
method setMultiple (line 72) | public function setMultiple(iterable $values, null|int|DateInterval $t...
FILE: src/PhpSpreadsheet/Comment.php
class Comment (line 14) | class Comment implements IComparable, Stringable
method __construct (line 77) | public function __construct()
method getAuthor (line 90) | public function getAuthor(): string
method setAuthor (line 98) | public function setAuthor(string $author): self
method getText (line 108) | public function getText(): RichText
method setText (line 116) | public function setText(RichText $text): self
method getWidth (line 126) | public function getWidth(): string
method setWidth (line 134) | public function setWidth(string $width): self
method getHeight (line 147) | public function getHeight(): string
method setHeight (line 155) | public function setHeight(string $height): self
method getMarginLeft (line 168) | public function getMarginLeft(): string
method setMarginLeft (line 176) | public function setMarginLeft(string $margin): self
method getMarginTop (line 189) | public function getMarginTop(): string
method setMarginTop (line 197) | public function setMarginTop(string $margin): self
method getVisible (line 210) | public function getVisible(): bool
method setVisible (line 218) | public function setVisible(bool $visibility): self
method setFillColor (line 228) | public function setFillColor(Color $color): self
method getFillColor (line 238) | public function getFillColor(): Color
method setAlignment (line 243) | public function setAlignment(string $alignment): self
method getAlignment (line 250) | public function getAlignment(): string
method setTextboxDirection (line 255) | public function setTextboxDirection(string $textboxDirection): self
method getTextboxDirection (line 262) | public function getTextboxDirection(): string
method getHashCode (line 270) | public function getHashCode(): string
method __clone (line 291) | public function __clone()
method __toString (line 306) | public function __toString(): string
method hasBackgroundImage (line 314) | public function hasBackgroundImage(): bool
method getBackgroundImage (line 328) | public function getBackgroundImage(): Drawing
method setBackgroundImage (line 336) | public function setBackgroundImage(Drawing $objDrawing): self
method setSizeAsBackgroundImage (line 349) | public function setSizeAsBackgroundImage(): self
FILE: src/PhpSpreadsheet/DefinedName.php
class DefinedName (line 7) | abstract class DefinedName
method __construct (line 44) | public function __construct(
method __destruct (line 69) | public function __destruct()
method createInstance (line 78) | public static function createInstance(
method testIfFormula (line 94) | public static function testIfFormula(string $value): bool
method getName (line 122) | public function getName(): string
method setName (line 130) | public function setName(string $name): self
method getWorksheet (line 159) | public function getWorksheet(): ?Worksheet
method setWorksheet (line 167) | public function setWorksheet(?Worksheet $worksheet): self
method getValue (line 177) | public function getValue(): string
method setValue (line 185) | public function setValue(string $value): self
method getLocalOnly (line 195) | public function getLocalOnly(): bool
method setLocalOnly (line 203) | public function setLocalOnly(bool $localScope): self
method getScope (line 214) | public function getScope(): ?Worksheet
method setScope (line 222) | public function setScope(?Worksheet $worksheet): self
method isFormula (line 233) | public function isFormula(): bool
method resolveName (line 241) | public static function resolveName(string $definedName, Worksheet $wor...
method __clone (line 258) | public function __clone()
FILE: src/PhpSpreadsheet/Document/Properties.php
class Properties (line 8) | class Properties
method __construct (line 95) | public function __construct()
method getCreator (line 106) | public function getCreator(): string
method setCreator (line 116) | public function setCreator(string $creator): self
method getLastModifiedBy (line 126) | public function getLastModifiedBy(): string
method setLastModifiedBy (line 136) | public function setLastModifiedBy(string $modifiedBy): self
method intOrFloatTimestamp (line 143) | private static function intOrFloatTimestamp(null|bool|float|int|string...
method getCreated (line 164) | public function getCreated(): float|int
method setCreated (line 174) | public function setCreated(null|float|int|string $timestamp): self
method getModified (line 184) | public function getModified(): float|int
method setModified (line 194) | public function setModified(null|float|int|string $timestamp): self
method getTitle (line 204) | public function getTitle(): string
method setTitle (line 214) | public function setTitle(string $title): self
method getDescription (line 224) | public function getDescription(): string
method setDescription (line 234) | public function setDescription(string $description): self
method getSubject (line 244) | public function getSubject(): string
method setSubject (line 254) | public function setSubject(string $subject): self
method getKeywords (line 264) | public function getKeywords(): string
method setKeywords (line 274) | public function setKeywords(string $keywords): self
method getCategory (line 284) | public function getCategory(): string
method setCategory (line 294) | public function setCategory(string $category): self
method getCompany (line 304) | public function getCompany(): string
method setCompany (line 314) | public function setCompany(string $company): self
method getManager (line 324) | public function getManager(): string
method setManager (line 334) | public function setManager(string $manager): self
method getCustomProperties (line 346) | public function getCustomProperties(): array
method isCustomPropertySet (line 354) | public function isCustomPropertySet(string $propertyName): bool
method getCustomPropertyValue (line 362) | public function getCustomPropertyValue(string $propertyName): bool|int...
method getCustomPropertyType (line 374) | public function getCustomPropertyType(string $propertyName): ?string
method identifyPropertyType (line 379) | private function identifyPropertyType(bool|int|float|string|null $prop...
method setCustomProperty (line 401) | public function setCustomProperty(string $propertyName, bool|int|float...
method convertProperty (line 452) | public static function convertProperty(bool|int|float|string|null $pro...
method convertProperty2 (line 460) | private static function convertProperty2(bool|int|float|string|null $p...
method convertPropertyType (line 479) | public static function convertPropertyType(string $propertyType): string
method getHyperlinkBase (line 484) | public function getHyperlinkBase(): string
method setHyperlinkBase (line 489) | public function setHyperlinkBase(string $hyperlinkBase): self
method getViewport (line 496) | public function getViewport(): string
method setViewport (line 503) | public function setViewport(string $viewport): self
FILE: src/PhpSpreadsheet/Document/Security.php
class Security (line 7) | class Security
method isSecurityEnabled (line 53) | public function isSecurityEnabled(): bool
method getLockRevision (line 60) | public function getLockRevision(): bool
method setLockRevision (line 65) | public function setLockRevision(?bool $locked): self
method getLockStructure (line 74) | public function getLockStructure(): bool
method setLockStructure (line 79) | public function setLockStructure(?bool $locked): self
method getLockWindows (line 88) | public function getLockWindows(): bool
method setLockWindows (line 93) | public function setLockWindows(?bool $locked): self
method getRevisionsPassword (line 102) | public function getRevisionsPassword(): string
method setRevisionsPassword (line 114) | public function setRevisionsPassword(?string $password, bool $alreadyH...
method getWorkbookPassword (line 134) | public function getWorkbookPassword(): string
method set
Copy disabled (too large)
Download .json
Condensed preview — 3117 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (13,874K chars).
[
{
"path": ".editorconfig",
"chars": 220,
"preview": "root = true\n\n[*]\ncharset = utf-8\nindent_size = 4\nindent_style = space\nend_of_line = lf\ninsert_final_newline = true\ntrim_"
},
{
"path": ".gitattributes",
"chars": 556,
"preview": "*.min.js binary\n/.editorconfig export-ignore\n/.gitattributes export-ignore\n/.github export-ignore\n/.gitignore export-ign"
},
{
"path": ".github/ISSUE_TEMPLATE.md",
"chars": 1300,
"preview": "This is:\n\n```\n- [ ] a bug report\n- [ ] a feature request\n- [ ] **not** a usage question (ask them on https://stackoverfl"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 829,
"preview": "This is:\n\n- [ ] a bugfix\n- [ ] a new feature\n- [ ] refactoring\n- [ ] additional unit tests\n\nChecklist:\n\n- [ ] Changes ar"
},
{
"path": ".github/dependabot.yml",
"chars": 150,
"preview": "version: 2\nupdates:\n- package-ecosystem: composer\n directory: \"/\"\n schedule:\n interval: monthly\n time: \"11:00\"\n "
},
{
"path": ".github/stale.yml",
"chars": 793,
"preview": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 60\n# Number of days of inactivity before a "
},
{
"path": ".github/support.yml",
"chars": 585,
"preview": "# Label used to mark issues as support requests\nsupportLabel: question\n# Comment to post on issues marked as support req"
},
{
"path": ".github/workflows/github-pages.yml",
"chars": 902,
"preview": "name: GithHub Pages\non:\n push:\n tags:\n - '*'\n\npermissions: {}\njobs:\n github-pages:\n permissions:\n cont"
},
{
"path": ".github/workflows/main.yml",
"chars": 9957,
"preview": "name: main\non: [ push, pull_request, merge_group ]\npermissions:\n contents: read # to fetch code (actions/checkout)\njobs"
},
{
"path": ".gitignore",
"chars": 154,
"preview": "/tests/codeCoverage\n/analysis\n/vendor/\n/phpunit.xml\n.phpunit.result.cache\n\n## IDE support\n*.buildpath\n*.project\n/.settin"
},
{
"path": ".php-cs-fixer.dist.php",
"chars": 12517,
"preview": "<?php\n\n$finder = PhpCsFixer\\Finder::create()\n ->exclude(['vendor', 'docs', '.git', '.github'])\n ->notPath('src/Php"
},
{
"path": ".phpcs.xml.dist",
"chars": 662,
"preview": "<?xml version=\"1.0\"?>\n<ruleset xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" name=\"PHP_CodeSniffer\"\n xsi"
},
{
"path": ".readthedocs.yaml",
"chars": 230,
"preview": "# Read the Docs configuration file for MkDocs projects\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html\n\n"
},
{
"path": "CHANGELOG.PHPExcel.md",
"chars": 155397,
"preview": "# Changelog for PHPExcel\n\nThis is the historic changelog of the project when it was still called PHPExcel.\nIt exists onl"
},
{
"path": "CHANGELOG.md",
"chars": 177854,
"preview": "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Change"
},
{
"path": "CONTRIBUTING.md",
"chars": 3714,
"preview": "# Want to contribute?\n\nIf you would like to contribute, here are some notes and guidelines:\n\n - All new development shou"
},
{
"path": "LICENSE",
"chars": 1084,
"preview": "MIT License\n\nCopyright (c) 2019-2026 PhpSpreadsheet Authors\n\nPermission is hereby granted, free of charge, to any person"
},
{
"path": "README.md",
"chars": 4065,
"preview": "# PhpSpreadsheet\n\n[](https://github"
},
{
"path": "bin/check-phpdoc-types.php",
"chars": 1143,
"preview": "#!/usr/bin/env php\n<?php\n\n/**\n * This will check that the \"current patch\" does not add or modify lines that contain type"
},
{
"path": "bin/generate-document.php",
"chars": 832,
"preview": "#!/usr/bin/env php\n<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation;\nuse PhpOffice\\PhpSpreadsheetInfra\\Docume"
},
{
"path": "bin/generate-locales.php",
"chars": 449,
"preview": "#!/usr/bin/env php\n<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation;\nuse PhpOffice\\PhpSpreadsheetInfra\\Locale"
},
{
"path": "bin/pre-commit",
"chars": 889,
"preview": "#!/bin/bash\n\npass=true\n\nfiles=$(git diff --cached --name-only --diff-filter=ACMR | grep -E '\\.(php|phtml)$')\nif [ \"$file"
},
{
"path": "composer.json",
"chars": 4149,
"preview": "{\n \"name\": \"phpoffice/phpspreadsheet\",\n \"description\": \"PHPSpreadsheet - Read, Create and Write Spreadsheet docume"
},
{
"path": "docs/extra/extra.css",
"chars": 624,
"preview": "/* Make the huge table always visible */\ntable.features-cross-reference {\n overflow: visible !important;\n}\n.rst-conte"
},
{
"path": "docs/extra/extrajs.js",
"chars": 168,
"preview": "document.addEventListener(\"DOMContentLoaded\", function() {\n document.querySelectorAll(\"table\").forEach(function(table) "
},
{
"path": "docs/faq.md",
"chars": 2506,
"preview": "# Frequently asked questions\n\n## There seems to be a problem with character encoding...\n\nIt is necessary to use UTF-8 en"
},
{
"path": "docs/index.md",
"chars": 6321,
"preview": "# Welcome to PhpSpreadsheet's documentation\n\n\n\nPhpSpreadsheet is a library written in pure PHP"
},
{
"path": "docs/references/features-cross-reference.md",
"chars": 86633,
"preview": "# Features cross reference\n\n- <span style=\"text-align: center; color: green;\">✔</span> Supported\n- <span style=\"text-ali"
},
{
"path": "docs/references/function-list-by-category.md",
"chars": 49336,
"preview": "# Function list by category\n\n## CATEGORY_CUBE\n\nExcel Function | PhpSpreadsheet Function\n----------------------"
},
{
"path": "docs/references/function-list-by-name-compact.md",
"chars": 48010,
"preview": "# Function list by name compact\n\nCategory should be prefixed by `CATEGORY_` to match the values in \\PhpOffice\\PhpSpreads"
},
{
"path": "docs/references/function-list-by-name.md",
"chars": 69661,
"preview": "# Function list by name\n\nA more compact list can be found [here](./function-list-by-name-compact.md)\n\n\n## A\n\nExcel Funct"
},
{
"path": "docs/topics/Behind the Mask.md",
"chars": 49151,
"preview": "# Behind the Mask\n\nWhen we look at a spreadsheet in MS Excel, we normally see it neatly formatted so that it is easy for"
},
{
"path": "docs/topics/Excel Anomalies.md",
"chars": 4835,
"preview": "# Excel Anomalies\n\nThis is documentation for some behavior in Excel itself which we\njust do not understand, or which may"
},
{
"path": "docs/topics/Looping the Loop.md",
"chars": 25602,
"preview": "# Looping the Loop\n\nPhpSpreadsheet uses a lot of memory to maintain the Spreadsheet model; but I regularly see developer"
},
{
"path": "docs/topics/The Dating Game.md",
"chars": 19275,
"preview": "# The Dating Game\n\nDate and Time values are stored in different ways in spreadsheet files, depending on the file format;"
},
{
"path": "docs/topics/accessing-cells.md",
"chars": 24191,
"preview": "# Accessing cells\n\nAccessing cells in a Spreadsheet should be pretty straightforward. This\ntopic lists some of the optio"
},
{
"path": "docs/topics/architecture.md",
"chars": 3149,
"preview": "# Architecture\n\n## Schematical\n\n\n\n## AutoLo"
},
{
"path": "docs/topics/autofilters.md",
"chars": 20249,
"preview": "# AutoFilter Reference\n\n## Introduction\n\nEach worksheet in an Excel Workbook can contain a single autoFilter\nrange. Filt"
},
{
"path": "docs/topics/calculation-engine.md",
"chars": 65626,
"preview": "# Calculation Engine\n\n## Using the PhpSpreadsheet calculation engine\n\n### Performing formula calculations\n\nAs PhpSpreads"
},
{
"path": "docs/topics/conditional-formatting.md",
"chars": 43206,
"preview": "# Conditional Formatting\n\n## Introduction\n\nIn addition to standard cell formatting options, most spreadsheet software pr"
},
{
"path": "docs/topics/creating-spreadsheet.md",
"chars": 2064,
"preview": "# Creating a spreadsheet\n\n## The `Spreadsheet` class\n\nThe `Spreadsheet` class is the core of PhpSpreadsheet. It contains"
},
{
"path": "docs/topics/defined-names.md",
"chars": 28693,
"preview": "# Defined Names\n\nThere are two types of Defined Names in MS Excel and other Spreadsheet formats: Named Ranges and Named "
},
{
"path": "docs/topics/file-formats.md",
"chars": 6058,
"preview": "# File Formats\n\nPhpSpreadsheet can read a number of different spreadsheet and file\nformats, although not all features ar"
},
{
"path": "docs/topics/memory_saving.md",
"chars": 3525,
"preview": "# Memory saving\n\nPhpSpreadsheet uses an average of about 1k per cell (1.6k on 64-bit PHP) in your worksheets, so\nlarge w"
},
{
"path": "docs/topics/migration-from-PHPExcel.md",
"chars": 12679,
"preview": "# Migration from PHPExcel\n\nPhpSpreadsheet introduced many breaking changes by introducing\nnamespaces and renaming some c"
},
{
"path": "docs/topics/reading-and-writing-to-file.md",
"chars": 41004,
"preview": "# Reading and writing to file\n\nAs you already know from the [architecture](./architecture.md#readers-and-writers),\nreadi"
},
{
"path": "docs/topics/reading-files.md",
"chars": 36680,
"preview": "# Reading Files\n\n## Security\n\nXML-based formats such as OfficeOpen XML, Excel2003 XML, OASIS and\nGnumeric are susceptibl"
},
{
"path": "docs/topics/recipes.md",
"chars": 97576,
"preview": "# Recipes\n\nThe following pages offer you some widely-used PhpSpreadsheet recipes.\nPlease note that these do NOT offer co"
},
{
"path": "docs/topics/settings.md",
"chars": 2809,
"preview": "# Configuration Settings\n\nOnce you have included the PhpSpreadsheet files in your script, but\nbefore instantiating a `Sp"
},
{
"path": "docs/topics/tables.md",
"chars": 410,
"preview": "# Tables\n\n## Introduction\n\nTo make managing and analyzing a group of related data easier, you can turn a range of cells "
},
{
"path": "docs/topics/worksheets.md",
"chars": 5523,
"preview": "# Worksheets\n\nA worksheet is a collection of cells, formulae, images, graphs, etc. It\nholds all data necessary to repres"
},
{
"path": "infra/DocumentGenerator.php",
"chars": 5542,
"preview": "<?php\n\nnamespace PhpOffice\\PhpSpreadsheetInfra;\n\nuse PhpOffice\\PhpSpreadsheet\\Calculation\\Category;\nuse PhpOffice\\PhpSpr"
},
{
"path": "infra/LocaleGenerator.php",
"chars": 16564,
"preview": "<?php\n\nnamespace PhpOffice\\PhpSpreadsheetInfra;\n\nuse Exception;\nuse PhpOffice\\PhpSpreadsheet\\Cell\\Cell;\nuse PhpOffice\\Ph"
},
{
"path": "mkdocs.yml",
"chars": 254,
"preview": "site_name: PhpSpreadsheet Documentation\nrepo_url: https://github.com/PHPOffice/phpspreadsheet\nedit_uri: edit/master/docs"
},
{
"path": "phpstan-baseline.neon",
"chars": 575,
"preview": "parameters:\n\tignoreErrors:\n\t\t-\n\t\t\tmessage: '#^Parameter \\#1 \\$array of function array_multisort expects array, mixed giv"
},
{
"path": "phpstan.neon.dist",
"chars": 1597,
"preview": "includes:\n - phpstan-baseline.neon\n - vendor/phpstan/phpstan-phpunit/extension.neon\n - vendor/phpstan/phpstan-p"
},
{
"path": "phpunit.xml.dist",
"chars": 665,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<phpunit xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSch"
},
{
"path": "samples/Autofilter/10_Autofilter.php",
"chars": 3679,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Autofilter/10_Autofilter_dynamic_dates.php",
"chars": 4436,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Helper\\Sample;\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadshee"
},
{
"path": "samples/Autofilter/10_Autofilter_selection_1.php",
"chars": 6771,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Shared\\Date;\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Autofilter/10_Autofilter_selection_2.php",
"chars": 6162,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Shared\\Date;\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Autofilter/10_Autofilter_selection_display.php",
"chars": 6827,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Shared\\Date;\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic/01_Simple.php",
"chars": 1870,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic/01_Simple_download_ods.php",
"chars": 2097,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Helper\\Sample;\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic/01_Simple_download_pdf.php",
"chars": 1731,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Helper\\Sample;\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic/01_Simple_download_xls.php",
"chars": 2075,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Helper\\Sample;\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic/01_Simple_download_xlsx.php",
"chars": 2118,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Helper\\Sample;\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic/02_Types.php",
"chars": 5400,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Cell\\DataType;\nuse PhpOffice\\PhpSpreadsheet\\RichText\\RichText;\nuse PhpOffice\\PhpSpre"
},
{
"path": "samples/Basic/03_Formulas.php",
"chars": 3423,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic/04_Printing.php",
"chars": 2340,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\Worksheet\\HeaderFooter;\nuse PhpOffice\\PhpS"
},
{
"path": "samples/Basic/05_Feature_demo.php",
"chars": 272,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Spreadsheet */\n$spreadsheet = require __DIR"
},
{
"path": "samples/Basic/05_UnexpectedCharacters.php",
"chars": 273,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Spreadsheet */\n$spreadsheet = require __DIR"
},
{
"path": "samples/Basic/06_Largescale.php",
"chars": 271,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Spreadsheet */\n$spreadsheet = require __DIR"
},
{
"path": "samples/Basic/07_Reader.php",
"chars": 666,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx;\n\nrequire __DIR__ . '/../Header."
},
{
"path": "samples/Basic/08_Conditional_formatting.php",
"chars": 5038,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\Style\\Color;\nuse PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic/08_Conditional_formatting_2.php",
"chars": 2600,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\Style\\Color;\nuse PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic/09_Pagebreaks.php",
"chars": 2316,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\Worksheet\\Worksheet;\n\nrequire __DIR__ . '/"
},
{
"path": "samples/Basic1/11_Documentsecurity.php",
"chars": 2032,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic1/12_CellProtection.php",
"chars": 1562,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\Style\\Protection;\n\nrequire __DIR__ . '/../"
},
{
"path": "samples/Basic1/13_Calculation.php",
"chars": 6924,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation;\nuse PhpOffice\\PhpSpreadsheet\\Shared\\StringHelper;\nuse PhpOf"
},
{
"path": "samples/Basic1/13_CalculationCyclicFormulae.php",
"chars": 1256,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation;\nuse PhpOffice\\PhpSpreadsheet\\Shared\\StringHelper;\nuse PhpOf"
},
{
"path": "samples/Basic1/14_Xls.php",
"chars": 488,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Sp"
},
{
"path": "samples/Basic1/15_Datavalidation.php",
"chars": 3423,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Cell\\DataValidation;\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/"
},
{
"path": "samples/Basic1/16_Csv.php",
"chars": 1365,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Reader\\Csv as CsvReader;\nuse PhpOffice\\PhpSpreadsheet\\Writer\\Csv as CsvWriter;\n\nrequ"
},
{
"path": "samples/Basic1/17_Html.php",
"chars": 338,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Spreadsheet */\n$spreadsheet = require __DIR"
},
{
"path": "samples/Basic1/17a_Html.php",
"chars": 484,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Writer\\Html;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic1/17b_Html.php",
"chars": 623,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Writer\\Html;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic1/18_Extendedcalculation.php",
"chars": 3012,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation;\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ "
},
{
"path": "samples/Basic1/19_Namedrange.php",
"chars": 2815,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\NamedRange;\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header"
},
{
"path": "samples/Basic2/20_Read_Excel2003XML.php",
"chars": 374,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\He"
},
{
"path": "samples/Basic2/20_Read_Gnumeric.php",
"chars": 387,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\He"
},
{
"path": "samples/Basic2/20_Read_Ods.php",
"chars": 399,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\He"
},
{
"path": "samples/Basic2/20_Read_Sylk.php",
"chars": 373,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\He"
},
{
"path": "samples/Basic2/20_Read_Xls.php",
"chars": 725,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Sp"
},
{
"path": "samples/Basic2/22_Heavily_formatted.php",
"chars": 1462,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\Style\\Border;\nuse PhpOffice\\PhpSpreadsheet"
},
{
"path": "samples/Basic2/23_Sharedstyles.php",
"chars": 1799,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\Style\\Border;\nuse PhpOffice\\PhpSpreadsheet"
},
{
"path": "samples/Basic2/24_Readfilter.php",
"chars": 1294,
"preview": "<?php\n\nnamespace PhpOffice\\PhpSpreadsheet;\n\nuse PhpOffice\\PhpSpreadsheet\\Reader\\IReadFilter;\nuse PhpOffice\\PhpSpreadshee"
},
{
"path": "samples/Basic2/25_In_memory_image.php",
"chars": 2690,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\Worksheet\\MemoryDrawing;\nuse PhpOffice\\Php"
},
{
"path": "samples/Basic2/26_Utf8.php",
"chars": 1776,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Writer\\Csv;\nuse PhpOffice\\PhpSpreadsheet\\Wri"
},
{
"path": "samples/Basic2/27_Images_Html_Pdf.php",
"chars": 1376,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx as XlsxReader;\nuse PhpOffice\\Php"
},
{
"path": "samples/Basic2/27_Images_Xls.php",
"chars": 380,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\He"
},
{
"path": "samples/Basic2/27_Images_Xlsx.php",
"chars": 924,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Worksheet\\Drawing;\n\nrequire __DIR__ . '/../H"
},
{
"path": "samples/Basic2/28_Iterator.php",
"chars": 1326,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx as XlsxReader;\nuse PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx as XlsxWriter;\n\n"
},
{
"path": "samples/Basic2/29_Advanced_value_binder.php",
"chars": 4727,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Cell\\AdvancedValueBinder;\nuse PhpOffice\\PhpSpreadsheet\\Cell\\Cell;\nuse PhpOffice\\PhpS"
},
{
"path": "samples/Basic3/30_Template.php",
"chars": 1288,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Shared\\Date;\n\nrequire __DIR__ . '/../Header."
},
{
"path": "samples/Basic3/30_Templatebiff5.php",
"chars": 1293,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Shared\\Date;\n\nrequire __DIR__ . '/../Header."
},
{
"path": "samples/Basic3/31_Document_properties_write.php",
"chars": 3203,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Document\\Properties;\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/.."
},
{
"path": "samples/Basic3/31_Document_properties_write_xls.php",
"chars": 3192,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Document\\Properties;\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/.."
},
{
"path": "samples/Basic3/37_Page_layout_view.php",
"chars": 1080,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\Worksheet\\SheetView;\n\nrequire __DIR__ . '/"
},
{
"path": "samples/Basic3/38_Clone_worksheet.php",
"chars": 1879,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Basic3/39_Dropdown.php",
"chars": 4379,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Cell\\DataValidation;\nuse PhpOffice\\PhpSpreadsheet\\NamedRange;\nuse PhpOffice\\PhpSprea"
},
{
"path": "samples/Basic3/data/continents/Africa.txt",
"chars": 511,
"preview": "Algeria\nAngola\nBenin\nBotswana\nBurkina\nBurundi\nCameroon\nCape Verde\nCentral African Republic\nChad\nComoros\nCongo\nCongo, Dem"
},
{
"path": "samples/Basic3/data/continents/Asia.txt",
"chars": 410,
"preview": "Afghanistan\nBahrain\nBangladesh\nBhutan\nBrunei\nBurma (Myanmar)\nCambodia\nChina\nEast Timor\nIndia\nIndonesia\nIran\nIraq\nIsrael\n"
},
{
"path": "samples/Basic3/data/continents/Europe.txt",
"chars": 429,
"preview": "Albania\nAndorra\nArmenia\nAustria\nAzerbaijan\nBelarus\nBelgium\nBosnia and Herzegovina\nBulgaria\nCroatia\nCyprus\nCzech Republic"
},
{
"path": "samples/Basic3/data/continents/North America.txt",
"chars": 273,
"preview": "Antigua and Barbuda\nBahamas\nBarbados\nBelize\nCanada\nCosta Rica\nCuba\nDominica\nDominican Republic\nEl Salvador\nGrenada\nGuate"
},
{
"path": "samples/Basic3/data/continents/Oceania.txt",
"chars": 136,
"preview": "Australia\nFiji\nKiribati\nMarshall Islands\nMicronesia\nNauru\nNew Zealand\nPalau\nPapua New Guinea\nSamoa\nSolomon Islands\nTonga"
},
{
"path": "samples/Basic3/data/continents/South America.txt",
"chars": 96,
"preview": "Argentina\nBolivia\nBrazil\nChile\nColombia\nEcuador\nGuyana\nParaguay\nPeru\nSuriname\nUruguay\nVenezuela\n"
},
{
"path": "samples/Basic4/40_Duplicate_style.php",
"chars": 1062,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Cell\\Coordinate;\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsh"
},
{
"path": "samples/Basic4/41_Password.php",
"chars": 482,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Spreadsheet */\n$spreadsheet = require __DIR"
},
{
"path": "samples/Basic4/42_RichText.php",
"chars": 2769,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Helper\\Html as HtmlHelper;\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR_"
},
{
"path": "samples/Basic4/42b_RichText.php",
"chars": 635,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\RichText\\RichText;\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/.."
},
{
"path": "samples/Basic4/43_Merge_workbooks.php",
"chars": 939,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\He"
},
{
"path": "samples/Basic4/44_Worksheet_info.php",
"chars": 899,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx as Reader;\nuse PhpOffice\\PhpSpre"
},
{
"path": "samples/Basic4/45_Quadratic_equation_solver.php",
"chars": 2837,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation;\nuse PhpOffice\\PhpSpreadsheet\\Helper\\Sample;\nuse PhpOffice\\P"
},
{
"path": "samples/Basic4/46_ReadHtml.php",
"chars": 463,
"preview": "<?php\n\n// Turn off error reporting\nerror_reporting(0);\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/../"
},
{
"path": "samples/Basic4/47_xlsfill.php",
"chars": 368,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Helper\\Sample $helper */\n\nuse PhpOffice\\Php"
},
{
"path": "samples/Basic4/47_xlsxfill.php",
"chars": 373,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Helper\\Sample $helper */\n\nuse PhpOffice\\Php"
},
{
"path": "samples/Basic4/48_Image_move_size_with_cells.php",
"chars": 3535,
"preview": "<?php\n\n// Create new Spreadsheet object\nuse PhpOffice\\PhpSpreadsheet\\Helper\\Dimension;\nuse PhpOffice\\PhpSpreadsheet\\Spre"
},
{
"path": "samples/Basic4/49_alignment.php",
"chars": 2934,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\nuse PhpOffice\\PhpSpreadsheet\\Style\\Alignment;\n\nrequire __DIR__ . '/../H"
},
{
"path": "samples/Basic5/50_xlsverticalbreak.php",
"chars": 377,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Helper\\Sample $helper */\n\nuse PhpOffice\\Php"
},
{
"path": "samples/Basic5/51_ProtectedSort.php",
"chars": 3641,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Helper\\Sample $helper */\n\nuse PhpOffice\\Php"
},
{
"path": "samples/Basic5/52_Currency.php",
"chars": 16965,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Helper\\Sample $helper */\n\nuse PhpOffice\\Php"
},
{
"path": "samples/Basic5/53_ImageOpacity.php",
"chars": 2034,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Helper\\Sample $helper */\n\nuse PhpOffice\\Php"
},
{
"path": "samples/Basic5/54_ImagesInAndOut.php",
"chars": 1153,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Helper\\Sample $helper */\n\nuse PhpOffice\\Php"
},
{
"path": "samples/Basic5/55_DefinedStyles.php",
"chars": 6773,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Helper\\Sample $helper */\n\nuse PhpOffice\\Php"
},
{
"path": "samples/Basic5/56_OdsToISO8601.php",
"chars": 2920,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n\nuse PhpOffice\\PhpSpreadsheet\\Helper\\Sample;\n\nfunction datesToIso8601(string "
},
{
"path": "samples/Bitwise/BITAND.php",
"chars": 1642,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Bitwise/BITLSHIFT.php",
"chars": 2471,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Bitwise/BITOR.php",
"chars": 1638,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Bitwise/BITRSHIFT.php",
"chars": 2457,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Bitwise/BITXOR.php",
"chars": 1642,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/Bootstrap.php",
"chars": 553,
"preview": "<?php\n\n/**\n * Bootstrap for PhpSpreadsheet classes.\n */\n\n// This sucks, but we have to try to find the composer autoload"
},
{
"path": "samples/Chart/32_Chart_read_write.php",
"chars": 3585,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\He"
},
{
"path": "samples/Chart/32_Chart_read_write_HTML.php",
"chars": 3436,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Settings;\n\nrequire __DIR__ . '/../Header.php"
},
{
"path": "samples/Chart/32_Chart_read_write_PDF.php",
"chars": 3622,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Settings;\n\nrequire __DIR__ . '/../Header.php"
},
{
"path": "samples/Chart/34_Chart_update.php",
"chars": 1095,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx as XlsxReader;\nuse PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx as XlsxWriter;\n\n"
},
{
"path": "samples/Chart/35_Chart_render.php",
"chars": 3682,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Settings;\n\nrequire __DIR__ . '/../Header.php"
},
{
"path": "samples/Chart/35_Chart_render33.php",
"chars": 3461,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Settings;\n\nrequire __DIR__ . '/../Header.php"
},
{
"path": "samples/Chart/37_Chart_dynamic_title.php",
"chars": 3568,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\IOFactory;\nuse PhpOffice\\PhpSpreadsheet\\Settings;\n\nrequire __DIR__ . '/../Header.php"
},
{
"path": "samples/Chart33a/33_Chart_create_area.php",
"chars": 3279,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33a/33_Chart_create_area_2.php",
"chars": 3455,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33a/33_Chart_create_bar.php",
"chars": 303,
"preview": "<?php\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\Spreadsheet */\n$spreadsheet = require __DIR"
},
{
"path": "samples/Chart33a/33_Chart_create_bar_custom_colors.php",
"chars": 5400,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33a/33_Chart_create_bar_labels_lines.php",
"chars": 6435,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\ChartColor;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33a/33_Chart_create_bar_stacked.php",
"chars": 3381,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33a/33_Chart_create_bubble.php",
"chars": 3707,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33a/33_Chart_create_column.php",
"chars": 3389,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33a/33_Chart_create_column_2.php",
"chars": 3791,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33a/33_Chart_create_composite.alternate.php",
"chars": 4822,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33a/33_Chart_create_composite.php",
"chars": 4819,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33a/33_Chart_create_line.php",
"chars": 3447,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33a/33_Chart_create_line_dateaxis.php",
"chars": 14233,
"preview": "<?php\n\nnamespace PhpOffice\\PhpSpreadsheet\\Chart;\n\nuse DateTime;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Legend as ChartLegend"
},
{
"path": "samples/Chart33b/33_Chart_create_multiple_charts.php",
"chars": 5910,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33b/33_Chart_create_pie.php",
"chars": 5143,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33b/33_Chart_create_pie_custom_colors.php",
"chars": 5400,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33b/33_Chart_create_radar.php",
"chars": 3594,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33b/33_Chart_create_scatter.php",
"chars": 3203,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33b/33_Chart_create_scatter2.php",
"chars": 7665,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Axis as ChartAxis;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\AxisText;\nuse PhpOffice\\"
},
{
"path": "samples/Chart33b/33_Chart_create_scatter3.php",
"chars": 7430,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Axis as ChartAxis;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\Php"
},
{
"path": "samples/Chart33b/33_Chart_create_scatter4.php",
"chars": 4151,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\ChartColor;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33b/33_Chart_create_scatter5_trendlines.php",
"chars": 11437,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Axis as ChartAxis;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\Php"
},
{
"path": "samples/Chart33b/33_Chart_create_scatter6_value_xaxis.php",
"chars": 3813,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Axis as ChartAxis;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\Php"
},
{
"path": "samples/Chart33b/33_Chart_create_scatter7_blanks.php",
"chars": 4478,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries;\nuse PhpOffice\\PhpSpreads"
},
{
"path": "samples/Chart33b/33_Chart_create_stock.php",
"chars": 4269,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\AxisText;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadshe"
},
{
"path": "samples/Chart33b/33_Chart_create_stock2.php",
"chars": 4429,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Chart\\AxisText;\nuse PhpOffice\\PhpSpreadsheet\\Chart\\Chart;\nuse PhpOffice\\PhpSpreadshe"
},
{
"path": "samples/ComplexNumbers1/COMPLEX.php",
"chars": 1070,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers1/IMABS.php",
"chars": 1195,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers1/IMAGINARY.php",
"chars": 1205,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers1/IMARGUMENT.php",
"chars": 1195,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers1/IMCONJUGATE.php",
"chars": 1201,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers1/IMREAL.php",
"chars": 1189,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers2/IMCOS.php",
"chars": 1169,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers2/IMCOSH.php",
"chars": 1193,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers2/IMCOT.php",
"chars": 1175,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers2/IMCSC.php",
"chars": 1173,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers2/IMCSCH.php",
"chars": 1197,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers2/IMDIV.php",
"chars": 1192,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers2/IMEXP.php",
"chars": 1179,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers2/IMLN.php",
"chars": 1189,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers2/IMLOG10.php",
"chars": 1195,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers2/IMLOG2.php",
"chars": 1191,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers3/IMPOWER.php",
"chars": 1313,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers3/IMPRODUCT.php",
"chars": 1206,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers3/IMSEC.php",
"chars": 1169,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers3/IMSECH.php",
"chars": 1194,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers3/IMSIN.php",
"chars": 1165,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers3/IMSINH.php",
"chars": 1189,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers3/IMSQRT.php",
"chars": 1181,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers3/IMSUB.php",
"chars": 1201,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
},
{
"path": "samples/ComplexNumbers3/IMSUM.php",
"chars": 1190,
"preview": "<?php\n\nuse PhpOffice\\PhpSpreadsheet\\Spreadsheet;\n\nrequire __DIR__ . '/../Header.php';\n/** @var PhpOffice\\PhpSpreadsheet\\"
}
]
// ... and 2917 more files (download for full content)
About this extraction
This page contains the full source code of the PHPOffice/PhpSpreadsheet GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3117 files (12.5 MB), approximately 3.4M tokens, and a symbol index with 11852 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.