diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8f2e317c..1a1f8773 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- Fix to getCell() method when cell reference includes a worksheet reference - @MarkBaker
- Ignore inlineStr type if formula element exists - @ncrypthic [#570](https://github.com/PHPOffice/PHPExcel/issues/570)
- Excel 2007 Reader freezes because of conditional formatting - @rentalhost [#575](https://github.com/PHPOffice/PHPExcel/issues/575)
+- Readers will now parse files containing worksheet titles over 31 characters [#176](https://github.com/PHPOffice/PhpSpreadsheet/pull/176)
### General
diff --git a/docs/Examples/Calculations/Database/DAVERAGE.php b/docs/Examples/Calculations/Database/DAVERAGE.php
index c2d31a6a..be87d3ef 100644
--- a/docs/Examples/Calculations/Database/DAVERAGE.php
+++ b/docs/Examples/Calculations/Database/DAVERAGE.php
@@ -6,76 +6,73 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DAVERAGE
-Returns the average of selected database entries.
-DAVERAGE
+ Returns the average of selected database entries.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
+ ['Apple', 18, 20, 14, 105.00],
+ ['Pear', 12, 12, 10, 96.00],
+ ['Cherry', 13, 14, 9, 105.00],
+ ['Apple', 14, 15, 10, 75.00],
+ ['Pear', 9, 8, 8, 76.80],
+ ['Apple', 8, 9, 6, 45.00],
+ ];
+ $criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
+ ['="=Apple"', '>10', null, null, null, '<16'],
+ ['="=Pear"', null, null, null, null, null],
+ ];
-// Add some data
-$database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
- ['Apple', 18, 20, 14, 105.00],
- ['Pear', 12, 12, 10, 96.00],
- ['Cherry', 13, 14, 9, 105.00],
- ['Apple', 14, 15, 10, 75.00],
- ['Pear', 9, 8, 8, 76.80],
- ['Apple', 8, 9, 6, 45.00],
- ];
-$criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
- ['="=Apple"', '>10', null, null, null, '<16'],
- ['="=Pear"', null, null, null, null, null],
- ];
+ $worksheet->fromArray($criteria, null, 'A1');
+ $worksheet->fromArray($database, null, 'A4');
-$worksheet->fromArray($criteria, null, 'A1');
-$worksheet->fromArray($database, null, 'A4');
+ $worksheet->setCellValue('A12', 'The Average yield of Apple trees over 10\' in height');
+ $worksheet->setCellValue('B12', '=DAVERAGE(A4:E10,"Yield",A1:B2)');
-$worksheet->setCellValue('A12', 'The Average yield of Apple trees over 10\' in height');
-$worksheet->setCellValue('B12', '=DAVERAGE(A4:E10,"Yield",A1:B2)');
+ $worksheet->setCellValue('A13', 'The Average age of all Apple and Pear trees in the orchard');
+ $worksheet->setCellValue('B13', '=DAVERAGE(A4:E10,3,A1:A3)');
-$worksheet->setCellValue('A13', 'The Average age of all Apple and Pear trees in the orchard');
-$worksheet->setCellValue('B13', '=DAVERAGE(A4:E10,3,A1:A3)');
+ echo '
';
-echo '
';
+ echo 'Database
';
-echo 'Database
';
+ $databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
+ var_dump($databaseData);
-$databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
-var_dump($databaseData);
+ echo '
';
-echo '
';
+ // Test the formulae
+ echo 'Criteria
';
-// Test the formulae
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:B2', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:B2', null, true, true, true);
-var_dump($criteriaData);
+ echo $worksheet->getCell('A12')->getValue() . '
';
+ echo 'DAVERAGE() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
-echo $worksheet->getCell('A12')->getValue() . '
';
-echo 'DAVERAGE() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
+ echo 'Criteria
';
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
-var_dump($criteriaData);
-
-echo $worksheet->getCell('A13')->getValue() . '
';
-echo 'DAVERAGE() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
-
-?>
-
+ echo $worksheet->getCell('A13')->getValue() . '
';
+ echo 'DAVERAGE() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/Database/DCOUNT.php b/docs/Examples/Calculations/Database/DCOUNT.php
index d7bf2045..4387d8fa 100644
--- a/docs/Examples/Calculations/Database/DCOUNT.php
+++ b/docs/Examples/Calculations/Database/DCOUNT.php
@@ -6,76 +6,73 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DCOUNT
-Counts the cells that contain numbers in a database.
-DCOUNT
+ Counts the cells that contain numbers in a database.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
+ ['Apple', 18, 20, 14, 105.00],
+ ['Pear', 12, 12, 10, 96.00],
+ ['Cherry', 13, 14, 9, 105.00],
+ ['Apple', 14, 15, 10, 75.00],
+ ['Pear', 9, 8, 8, 76.80],
+ ['Apple', 8, 9, 6, 45.00],
+ ];
+ $criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
+ ['="=Apple"', '>10', null, null, null, '<16'],
+ ['="=Pear"', null, null, null, null, null],
+ ];
-// Add some data
-$database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
- ['Apple', 18, 20, 14, 105.00],
- ['Pear', 12, 12, 10, 96.00],
- ['Cherry', 13, 14, 9, 105.00],
- ['Apple', 14, 15, 10, 75.00],
- ['Pear', 9, 8, 8, 76.80],
- ['Apple', 8, 9, 6, 45.00],
- ];
-$criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
- ['="=Apple"', '>10', null, null, null, '<16'],
- ['="=Pear"', null, null, null, null, null],
- ];
+ $worksheet->fromArray($criteria, null, 'A1');
+ $worksheet->fromArray($database, null, 'A4');
-$worksheet->fromArray($criteria, null, 'A1');
-$worksheet->fromArray($database, null, 'A4');
+ $worksheet->setCellValue('A12', 'The Number of Apple trees over 10\' in height');
+ $worksheet->setCellValue('B12', '=DCOUNT(A4:E10,"Yield",A1:B2)');
-$worksheet->setCellValue('A12', 'The Number of Apple trees over 10\' in height');
-$worksheet->setCellValue('B12', '=DCOUNT(A4:E10,"Yield",A1:B2)');
+ $worksheet->setCellValue('A13', 'The Number of Apple and Pear trees in the orchard');
+ $worksheet->setCellValue('B13', '=DCOUNT(A4:E10,3,A1:A3)');
-$worksheet->setCellValue('A13', 'The Number of Apple and Pear trees in the orchard');
-$worksheet->setCellValue('B13', '=DCOUNT(A4:E10,3,A1:A3)');
+ echo '
';
-echo '
';
+ echo 'Database
';
-echo 'Database
';
+ $databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
+ var_dump($databaseData);
-$databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
-var_dump($databaseData);
+ echo '
';
-echo '
';
+ // Test the formulae
+ echo 'Criteria
';
-// Test the formulae
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:B2', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:B2', null, true, true, true);
-var_dump($criteriaData);
+ echo $worksheet->getCell('A12')->getValue() . '
';
+ echo 'DCOUNT() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
-echo $worksheet->getCell('A12')->getValue() . '
';
-echo 'DCOUNT() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
+ echo 'Criteria
';
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
-var_dump($criteriaData);
-
-echo $worksheet->getCell('A13')->getValue() . '
';
-echo 'DCOUNT() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
-
-?>
-
+ echo $worksheet->getCell('A13')->getValue() . '
';
+ echo 'DCOUNT() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/Database/DGET.php b/docs/Examples/Calculations/Database/DGET.php
index 819120cb..59dd9529 100644
--- a/docs/Examples/Calculations/Database/DGET.php
+++ b/docs/Examples/Calculations/Database/DGET.php
@@ -6,72 +6,69 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DGET
-Extracts a single value from a column of a list or database that matches conditions that you specify.
-DGET
+ Extracts a single value from a column of a list or database that matches conditions that you specify.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
+ ['Apple', 18, 20, 14, 105.00],
+ ['Pear', 12, 12, 10, 96.00],
+ ['Cherry', 13, 14, 9, 105.00],
+ ['Apple', 14, 15, 10, 75.00],
+ ['Pear', 9, 8, 8, 76.80],
+ ['Apple', 8, 9, 6, 45.00],
+ ];
+ $criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
+ ['="=Apple"', '>10', null, null, null, '<16'],
+ ['="=Pear"', null, null, null, null, null],
+ ];
-// Add some data
-$database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
- ['Apple', 18, 20, 14, 105.00],
- ['Pear', 12, 12, 10, 96.00],
- ['Cherry', 13, 14, 9, 105.00],
- ['Apple', 14, 15, 10, 75.00],
- ['Pear', 9, 8, 8, 76.80],
- ['Apple', 8, 9, 6, 45.00],
- ];
-$criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
- ['="=Apple"', '>10', null, null, null, '<16'],
- ['="=Pear"', null, null, null, null, null],
- ];
+ $worksheet->fromArray($criteria, null, 'A1');
+ $worksheet->fromArray($database, null, 'A4');
-$worksheet->fromArray($criteria, null, 'A1');
-$worksheet->fromArray($database, null, 'A4');
+ $worksheet->setCellValue('A12', 'The height of the Apple tree between 10\' and 16\' tall');
+ $worksheet->setCellValue('B12', '=DGET(A4:E10,"Height",A1:F2)');
-$worksheet->setCellValue('A12', 'The height of the Apple tree between 10\' and 16\' tall');
-$worksheet->setCellValue('B12', '=DGET(A4:E10,"Height",A1:F2)');
+ echo '
';
-echo '
';
+ echo 'Database
';
-echo 'Database
';
+ $databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
+ var_dump($databaseData);
-$databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
-var_dump($databaseData);
+ echo '
';
-echo '
';
+ // Test the formulae
+ echo 'Criteria
';
-// Test the formulae
-echo 'Criteria
';
+ echo 'ALL' . '
';
-echo 'ALL' . '
';
+ echo $worksheet->getCell('A12')->getValue() . '
';
+ echo 'DMAX() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
-echo $worksheet->getCell('A12')->getValue() . '
';
-echo 'DMAX() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
+ echo 'Criteria
';
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A2', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A2', null, true, true, true);
-var_dump($criteriaData);
-
-echo $worksheet->getCell('A13')->getValue() . '
';
-echo 'DMAX() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
-
-?>
-
+ echo $worksheet->getCell('A13')->getValue() . '
';
+ echo 'DMAX() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/Database/DMAX.php b/docs/Examples/Calculations/Database/DMAX.php
index 4fe13da6..bc0af306 100644
--- a/docs/Examples/Calculations/Database/DMAX.php
+++ b/docs/Examples/Calculations/Database/DMAX.php
@@ -6,75 +6,72 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DMAX
-Returns the maximum value from selected database entries.
-DMAX
+ Returns the maximum value from selected database entries.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
+ ['Apple', 18, 20, 14, 105.00],
+ ['Pear', 12, 12, 10, 96.00],
+ ['Cherry', 13, 14, 9, 105.00],
+ ['Apple', 14, 15, 10, 75.00],
+ ['Pear', 9, 8, 8, 76.80],
+ ['Apple', 8, 9, 6, 45.00],
+ ];
+ $criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
+ ['="=Apple"', '>10', null, null, null, '<16'],
+ ['="=Pear"', null, null, null, null, null],
+ ];
-// Add some data
-$database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
- ['Apple', 18, 20, 14, 105.00],
- ['Pear', 12, 12, 10, 96.00],
- ['Cherry', 13, 14, 9, 105.00],
- ['Apple', 14, 15, 10, 75.00],
- ['Pear', 9, 8, 8, 76.80],
- ['Apple', 8, 9, 6, 45.00],
- ];
-$criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
- ['="=Apple"', '>10', null, null, null, '<16'],
- ['="=Pear"', null, null, null, null, null],
- ];
+ $worksheet->fromArray($criteria, null, 'A1');
+ $worksheet->fromArray($database, null, 'A4');
-$worksheet->fromArray($criteria, null, 'A1');
-$worksheet->fromArray($database, null, 'A4');
+ $worksheet->setCellValue('A12', 'The tallest tree in the orchard');
+ $worksheet->setCellValue('B12', '=DMAX(A4:E10,"Height",A4:E10)');
-$worksheet->setCellValue('A12', 'The tallest tree in the orchard');
-$worksheet->setCellValue('B12', '=DMAX(A4:E10,"Height",A4:E10)');
+ $worksheet->setCellValue('A13', 'The Oldest apple tree in the orchard');
+ $worksheet->setCellValue('B13', '=DMAX(A4:E10,3,A1:A2)');
-$worksheet->setCellValue('A13', 'The Oldest apple tree in the orchard');
-$worksheet->setCellValue('B13', '=DMAX(A4:E10,3,A1:A2)');
+ echo '
';
-echo '
';
+ echo 'Database
';
-echo 'Database
';
+ $databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
+ var_dump($databaseData);
-$databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
-var_dump($databaseData);
+ echo '
';
-echo '
';
+ // Test the formulae
+ echo 'Criteria
';
-// Test the formulae
-echo 'Criteria
';
+ echo 'ALL' . '
';
-echo 'ALL' . '
';
+ echo $worksheet->getCell('A12')->getValue() . '
';
+ echo 'DMAX() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
-echo $worksheet->getCell('A12')->getValue() . '
';
-echo 'DMAX() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
+ echo 'Criteria
';
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A2', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A2', null, true, true, true);
-var_dump($criteriaData);
-
-echo $worksheet->getCell('A13')->getValue() . '
';
-echo 'DMAX() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
-
-?>
-
+ echo $worksheet->getCell('A13')->getValue() . '
';
+ echo 'DMAX() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/Database/DMIN.php b/docs/Examples/Calculations/Database/DMIN.php
index b765c061..9f36786a 100644
--- a/docs/Examples/Calculations/Database/DMIN.php
+++ b/docs/Examples/Calculations/Database/DMIN.php
@@ -6,75 +6,72 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DMIN
-Returns the minimum value from selected database entries.
-DMIN
+ Returns the minimum value from selected database entries.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
+ ['Apple', 18, 20, 14, 105.00],
+ ['Pear', 12, 12, 10, 96.00],
+ ['Cherry', 13, 14, 9, 105.00],
+ ['Apple', 14, 15, 10, 75.00],
+ ['Pear', 9, 8, 8, 76.80],
+ ['Apple', 8, 9, 6, 45.00],
+ ];
+ $criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
+ ['="=Apple"', '>10', null, null, null, '<16'],
+ ['="=Pear"', null, null, null, null, null],
+ ];
-// Add some data
-$database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
- ['Apple', 18, 20, 14, 105.00],
- ['Pear', 12, 12, 10, 96.00],
- ['Cherry', 13, 14, 9, 105.00],
- ['Apple', 14, 15, 10, 75.00],
- ['Pear', 9, 8, 8, 76.80],
- ['Apple', 8, 9, 6, 45.00],
- ];
-$criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
- ['="=Apple"', '>10', null, null, null, '<16'],
- ['="=Pear"', null, null, null, null, null],
- ];
+ $worksheet->fromArray($criteria, null, 'A1');
+ $worksheet->fromArray($database, null, 'A4');
-$worksheet->fromArray($criteria, null, 'A1');
-$worksheet->fromArray($database, null, 'A4');
+ $worksheet->setCellValue('A12', 'The shortest tree in the orchard');
+ $worksheet->setCellValue('B12', '=DMIN(A4:E10,"Height",A4:E10)');
-$worksheet->setCellValue('A12', 'The shortest tree in the orchard');
-$worksheet->setCellValue('B12', '=DMIN(A4:E10,"Height",A4:E10)');
+ $worksheet->setCellValue('A13', 'The Youngest apple tree in the orchard');
+ $worksheet->setCellValue('B13', '=DMIN(A4:E10,3,A1:A2)');
-$worksheet->setCellValue('A13', 'The Youngest apple tree in the orchard');
-$worksheet->setCellValue('B13', '=DMIN(A4:E10,3,A1:A2)');
+ echo '
';
-echo '
';
+ echo 'Database
';
-echo 'Database
';
+ $databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
+ var_dump($databaseData);
-$databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
-var_dump($databaseData);
+ echo '
';
-echo '
';
+ // Test the formulae
+ echo 'Criteria
';
-// Test the formulae
-echo 'Criteria
';
+ echo 'ALL' . '
';
-echo 'ALL' . '
';
+ echo $worksheet->getCell('A12')->getValue() . '
';
+ echo 'DMIN() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
-echo $worksheet->getCell('A12')->getValue() . '
';
-echo 'DMIN() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
+ echo 'Criteria
';
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A2', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A2', null, true, true, true);
-var_dump($criteriaData);
-
-echo $worksheet->getCell('A13')->getValue() . '
';
-echo 'DMIN() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
-
-?>
-
+ echo $worksheet->getCell('A13')->getValue() . '
';
+ echo 'DMIN() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/Database/DPRODUCT.php b/docs/Examples/Calculations/Database/DPRODUCT.php
index 4cf234d3..92efcf08 100644
--- a/docs/Examples/Calculations/Database/DPRODUCT.php
+++ b/docs/Examples/Calculations/Database/DPRODUCT.php
@@ -6,72 +6,69 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DPRODUCT
-Multiplies the values in a column of a list or database that match conditions that you specify.
-DPRODUCT
+ Multiplies the values in a column of a list or database that match conditions that you specify.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
+ ['Apple', 18, 20, 14, 105.00],
+ ['Pear', 12, 12, 10, 96.00],
+ ['Cherry', 13, 14, 9, 105.00],
+ ['Apple', 14, 15, 10, 75.00],
+ ['Pear', 9, 8, 8, 76.80],
+ ['Apple', 8, 9, 6, 45.00],
+ ];
+ $criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
+ ['="=Apple"', '>10', null, null, null, '<16'],
+ ['="=Pear"', null, null, null, null, null],
+ ];
-// Add some data
-$database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
- ['Apple', 18, 20, 14, 105.00],
- ['Pear', 12, 12, 10, 96.00],
- ['Cherry', 13, 14, 9, 105.00],
- ['Apple', 14, 15, 10, 75.00],
- ['Pear', 9, 8, 8, 76.80],
- ['Apple', 8, 9, 6, 45.00],
- ];
-$criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
- ['="=Apple"', '>10', null, null, null, '<16'],
- ['="=Pear"', null, null, null, null, null],
- ];
+ $worksheet->fromArray($criteria, null, 'A1');
+ $worksheet->fromArray($database, null, 'A4');
-$worksheet->fromArray($criteria, null, 'A1');
-$worksheet->fromArray($database, null, 'A4');
+ $worksheet->setCellValue('A12', 'The product of the yields of all Apple trees over 10\' in the orchard');
+ $worksheet->setCellValue('B12', '=DPRODUCT(A4:E10,"Yield",A1:B2)');
-$worksheet->setCellValue('A12', 'The product of the yields of all Apple trees over 10\' in the orchard');
-$worksheet->setCellValue('B12', '=DPRODUCT(A4:E10,"Yield",A1:B2)');
+ echo '
';
-echo '
';
+ echo 'Database
';
-echo 'Database
';
+ $databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
+ var_dump($databaseData);
-$databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
-var_dump($databaseData);
+ echo '
';
-echo '
';
+ // Test the formulae
+ echo 'Criteria
';
-// Test the formulae
-echo 'Criteria
';
+ echo 'ALL' . '
';
-echo 'ALL' . '
';
+ echo $worksheet->getCell('A12')->getValue() . '
';
+ echo 'DMAX() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
-echo $worksheet->getCell('A12')->getValue() . '
';
-echo 'DMAX() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
+ echo 'Criteria
';
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A2', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A2', null, true, true, true);
-var_dump($criteriaData);
-
-echo $worksheet->getCell('A13')->getValue() . '
';
-echo 'DMAX() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
-
-?>
-
+ echo $worksheet->getCell('A13')->getValue() . '
';
+ echo 'DMAX() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/Database/DSTDEV.php b/docs/Examples/Calculations/Database/DSTDEV.php
index 8aeaf2d8..8eaf133e 100644
--- a/docs/Examples/Calculations/Database/DSTDEV.php
+++ b/docs/Examples/Calculations/Database/DSTDEV.php
@@ -6,76 +6,73 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DSTDEV
-Estimates the standard deviation based on a sample of selected database entries.
-DSTDEV
+ Estimates the standard deviation based on a sample of selected database entries.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
+ ['Apple', 18, 20, 14, 105.00],
+ ['Pear', 12, 12, 10, 96.00],
+ ['Cherry', 13, 14, 9, 105.00],
+ ['Apple', 14, 15, 10, 75.00],
+ ['Pear', 9, 8, 8, 76.80],
+ ['Apple', 8, 9, 6, 45.00],
+ ];
+ $criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
+ ['="=Apple"', '>10', null, null, null, '<16'],
+ ['="=Pear"', null, null, null, null, null],
+ ];
-// Add some data
-$database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
- ['Apple', 18, 20, 14, 105.00],
- ['Pear', 12, 12, 10, 96.00],
- ['Cherry', 13, 14, 9, 105.00],
- ['Apple', 14, 15, 10, 75.00],
- ['Pear', 9, 8, 8, 76.80],
- ['Apple', 8, 9, 6, 45.00],
- ];
-$criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
- ['="=Apple"', '>10', null, null, null, '<16'],
- ['="=Pear"', null, null, null, null, null],
- ];
+ $worksheet->fromArray($criteria, null, 'A1');
+ $worksheet->fromArray($database, null, 'A4');
-$worksheet->fromArray($criteria, null, 'A1');
-$worksheet->fromArray($database, null, 'A4');
+ $worksheet->setCellValue('A12', 'The estimated standard deviation in the yield of Apple and Pear trees');
+ $worksheet->setCellValue('B12', '=DSTDEV(A4:E10,"Yield",A1:A3)');
-$worksheet->setCellValue('A12', 'The estimated standard deviation in the yield of Apple and Pear trees');
-$worksheet->setCellValue('B12', '=DSTDEV(A4:E10,"Yield",A1:A3)');
+ $worksheet->setCellValue('A13', 'The estimated standard deviation in height of Apple and Pear trees');
+ $worksheet->setCellValue('B13', '=DSTDEV(A4:E10,2,A1:A3)');
-$worksheet->setCellValue('A13', 'The estimated standard deviation in height of Apple and Pear trees');
-$worksheet->setCellValue('B13', '=DSTDEV(A4:E10,2,A1:A3)');
+ echo '
';
-echo '
';
+ echo 'Database
';
-echo 'Database
';
+ $databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
+ var_dump($databaseData);
-$databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
-var_dump($databaseData);
+ echo '
';
-echo '
';
+ // Test the formulae
+ echo 'Criteria
';
-// Test the formulae
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
-var_dump($criteriaData);
+ echo $worksheet->getCell('A12')->getValue() . '
';
+ echo 'DSTDEV() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
-echo $worksheet->getCell('A12')->getValue() . '
';
-echo 'DSTDEV() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
+ echo 'Criteria
';
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
-var_dump($criteriaData);
-
-echo $worksheet->getCell('A13')->getValue() . '
';
-echo 'DSTDEV() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
-
-?>
-
+ echo $worksheet->getCell('A13')->getValue() . '
';
+ echo 'DSTDEV() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/Database/DSTDEVP.php b/docs/Examples/Calculations/Database/DSTDEVP.php
index 0a562c65..ea9a5345 100644
--- a/docs/Examples/Calculations/Database/DSTDEVP.php
+++ b/docs/Examples/Calculations/Database/DSTDEVP.php
@@ -6,76 +6,73 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DSTDEVP
-Calculates the standard deviation based on the entire population of selected database entries.
-DSTDEVP
+ Calculates the standard deviation based on the entire population of selected database entries.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
+ ['Apple', 18, 20, 14, 105.00],
+ ['Pear', 12, 12, 10, 96.00],
+ ['Cherry', 13, 14, 9, 105.00],
+ ['Apple', 14, 15, 10, 75.00],
+ ['Pear', 9, 8, 8, 76.80],
+ ['Apple', 8, 9, 6, 45.00],
+ ];
+ $criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
+ ['="=Apple"', '>10', null, null, null, '<16'],
+ ['="=Pear"', null, null, null, null, null],
+ ];
-// Add some data
-$database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
- ['Apple', 18, 20, 14, 105.00],
- ['Pear', 12, 12, 10, 96.00],
- ['Cherry', 13, 14, 9, 105.00],
- ['Apple', 14, 15, 10, 75.00],
- ['Pear', 9, 8, 8, 76.80],
- ['Apple', 8, 9, 6, 45.00],
- ];
-$criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
- ['="=Apple"', '>10', null, null, null, '<16'],
- ['="=Pear"', null, null, null, null, null],
- ];
+ $worksheet->fromArray($criteria, null, 'A1');
+ $worksheet->fromArray($database, null, 'A4');
-$worksheet->fromArray($criteria, null, 'A1');
-$worksheet->fromArray($database, null, 'A4');
+ $worksheet->setCellValue('A12', 'The standard deviation in the yield of Apple and Pear trees');
+ $worksheet->setCellValue('B12', '=DSTDEVP(A4:E10,"Yield",A1:A3)');
-$worksheet->setCellValue('A12', 'The standard deviation in the yield of Apple and Pear trees');
-$worksheet->setCellValue('B12', '=DSTDEVP(A4:E10,"Yield",A1:A3)');
+ $worksheet->setCellValue('A13', 'The standard deviation in height of Apple and Pear trees');
+ $worksheet->setCellValue('B13', '=DSTDEVP(A4:E10,2,A1:A3)');
-$worksheet->setCellValue('A13', 'The standard deviation in height of Apple and Pear trees');
-$worksheet->setCellValue('B13', '=DSTDEVP(A4:E10,2,A1:A3)');
+ echo '
';
-echo '
';
+ echo 'Database
';
-echo 'Database
';
+ $databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
+ var_dump($databaseData);
-$databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
-var_dump($databaseData);
+ echo '
';
-echo '
';
+ // Test the formulae
+ echo 'Criteria
';
-// Test the formulae
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
-var_dump($criteriaData);
+ echo $worksheet->getCell('A12')->getValue() . '
';
+ echo 'DSTDEVP() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
-echo $worksheet->getCell('A12')->getValue() . '
';
-echo 'DSTDEVP() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
+ echo 'Criteria
';
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
-var_dump($criteriaData);
-
-echo $worksheet->getCell('A13')->getValue() . '
';
-echo 'DSTDEVP() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
-
-?>
-
+ echo $worksheet->getCell('A13')->getValue() . '
';
+ echo 'DSTDEVP() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/Database/DVAR.php b/docs/Examples/Calculations/Database/DVAR.php
index b49020bf..2349845e 100644
--- a/docs/Examples/Calculations/Database/DVAR.php
+++ b/docs/Examples/Calculations/Database/DVAR.php
@@ -6,76 +6,73 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DVAR
-Estimates variance based on a sample from selected database entries.
-DVAR
+ Estimates variance based on a sample from selected database entries.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
+ ['Apple', 18, 20, 14, 105.00],
+ ['Pear', 12, 12, 10, 96.00],
+ ['Cherry', 13, 14, 9, 105.00],
+ ['Apple', 14, 15, 10, 75.00],
+ ['Pear', 9, 8, 8, 76.80],
+ ['Apple', 8, 9, 6, 45.00],
+ ];
+ $criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
+ ['="=Apple"', '>10', null, null, null, '<16'],
+ ['="=Pear"', null, null, null, null, null],
+ ];
-// Add some data
-$database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
- ['Apple', 18, 20, 14, 105.00],
- ['Pear', 12, 12, 10, 96.00],
- ['Cherry', 13, 14, 9, 105.00],
- ['Apple', 14, 15, 10, 75.00],
- ['Pear', 9, 8, 8, 76.80],
- ['Apple', 8, 9, 6, 45.00],
- ];
-$criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
- ['="=Apple"', '>10', null, null, null, '<16'],
- ['="=Pear"', null, null, null, null, null],
- ];
+ $worksheet->fromArray($criteria, null, 'A1');
+ $worksheet->fromArray($database, null, 'A4');
-$worksheet->fromArray($criteria, null, 'A1');
-$worksheet->fromArray($database, null, 'A4');
+ $worksheet->setCellValue('A12', 'The estimated variance in the yield of Apple and Pear trees');
+ $worksheet->setCellValue('B12', '=DVAR(A4:E10,"Yield",A1:A3)');
-$worksheet->setCellValue('A12', 'The estimated variance in the yield of Apple and Pear trees');
-$worksheet->setCellValue('B12', '=DVAR(A4:E10,"Yield",A1:A3)');
+ $worksheet->setCellValue('A13', 'The estimated variance in height of Apple and Pear trees');
+ $worksheet->setCellValue('B13', '=DVAR(A4:E10,2,A1:A3)');
-$worksheet->setCellValue('A13', 'The estimated variance in height of Apple and Pear trees');
-$worksheet->setCellValue('B13', '=DVAR(A4:E10,2,A1:A3)');
+ echo '
';
-echo '
';
+ echo 'Database
';
-echo 'Database
';
+ $databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
+ var_dump($databaseData);
-$databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
-var_dump($databaseData);
+ echo '
';
-echo '
';
+ // Test the formulae
+ echo 'Criteria
';
-// Test the formulae
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
-var_dump($criteriaData);
+ echo $worksheet->getCell('A12')->getValue() . '
';
+ echo 'DVAR() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
-echo $worksheet->getCell('A12')->getValue() . '
';
-echo 'DVAR() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
+ echo 'Criteria
';
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
-var_dump($criteriaData);
-
-echo $worksheet->getCell('A13')->getValue() . '
';
-echo 'DVAR() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
-
-?>
-
+ echo $worksheet->getCell('A13')->getValue() . '
';
+ echo 'DVAR() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/Database/DVARP.php b/docs/Examples/Calculations/Database/DVARP.php
index 83d06fba..a9b053a5 100644
--- a/docs/Examples/Calculations/Database/DVARP.php
+++ b/docs/Examples/Calculations/Database/DVARP.php
@@ -6,76 +6,73 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DVARP
-Calculates variance based on the entire population of selected database entries,
-DVARP
+ Calculates variance based on the entire population of selected database entries,
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
+ ['Apple', 18, 20, 14, 105.00],
+ ['Pear', 12, 12, 10, 96.00],
+ ['Cherry', 13, 14, 9, 105.00],
+ ['Apple', 14, 15, 10, 75.00],
+ ['Pear', 9, 8, 8, 76.80],
+ ['Apple', 8, 9, 6, 45.00],
+ ];
+ $criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
+ ['="=Apple"', '>10', null, null, null, '<16'],
+ ['="=Pear"', null, null, null, null, null],
+ ];
-// Add some data
-$database = [['Tree', 'Height', 'Age', 'Yield', 'Profit'],
- ['Apple', 18, 20, 14, 105.00],
- ['Pear', 12, 12, 10, 96.00],
- ['Cherry', 13, 14, 9, 105.00],
- ['Apple', 14, 15, 10, 75.00],
- ['Pear', 9, 8, 8, 76.80],
- ['Apple', 8, 9, 6, 45.00],
- ];
-$criteria = [['Tree', 'Height', 'Age', 'Yield', 'Profit', 'Height'],
- ['="=Apple"', '>10', null, null, null, '<16'],
- ['="=Pear"', null, null, null, null, null],
- ];
+ $worksheet->fromArray($criteria, null, 'A1');
+ $worksheet->fromArray($database, null, 'A4');
-$worksheet->fromArray($criteria, null, 'A1');
-$worksheet->fromArray($database, null, 'A4');
+ $worksheet->setCellValue('A12', 'The variance in the yield of Apple and Pear trees');
+ $worksheet->setCellValue('B12', '=DVARP(A4:E10,"Yield",A1:A3)');
-$worksheet->setCellValue('A12', 'The variance in the yield of Apple and Pear trees');
-$worksheet->setCellValue('B12', '=DVARP(A4:E10,"Yield",A1:A3)');
+ $worksheet->setCellValue('A13', 'The variance in height of Apple and Pear trees');
+ $worksheet->setCellValue('B13', '=DVARP(A4:E10,2,A1:A3)');
-$worksheet->setCellValue('A13', 'The variance in height of Apple and Pear trees');
-$worksheet->setCellValue('B13', '=DVARP(A4:E10,2,A1:A3)');
+ echo '
';
-echo '
';
+ echo 'Database
';
-echo 'Database
';
+ $databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
+ var_dump($databaseData);
-$databaseData = $worksheet->rangeToArray('A4:E10', null, true, true, true);
-var_dump($databaseData);
+ echo '
';
-echo '
';
+ // Test the formulae
+ echo 'Criteria
';
-// Test the formulae
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
-var_dump($criteriaData);
+ echo $worksheet->getCell('A12')->getValue() . '
';
+ echo 'DVARP() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
-echo $worksheet->getCell('A12')->getValue() . '
';
-echo 'DVARP() Result is ' . $worksheet->getCell('B12')->getCalculatedValue() . '
';
+ echo 'Criteria
';
-echo 'Criteria
';
+ $criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
+ var_dump($criteriaData);
-$criteriaData = $worksheet->rangeToArray('A1:A3', null, true, true, true);
-var_dump($criteriaData);
-
-echo $worksheet->getCell('A13')->getValue() . '
';
-echo 'DVARP() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
-
-?>
-
+ echo $worksheet->getCell('A13')->getValue() . '
';
+ echo 'DVARP() Result is ' . $worksheet->getCell('B13')->getCalculatedValue();
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/DateTime/DATE.php b/docs/Examples/Calculations/DateTime/DATE.php
index 5b0a8717..33330c97 100644
--- a/docs/Examples/Calculations/DateTime/DATE.php
+++ b/docs/Examples/Calculations/DateTime/DATE.php
@@ -6,74 +6,72 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DATE
-Returns the serial number of a particular date.
-DATE
+ Returns the serial number of a particular date.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $testDates = [[2012, 3, 26], [2012, 2, 29], [2012, 4, 1], [2012, 12, 25],
+ [2012, 10, 31], [2012, 11, 5], [2012, 1, 1], [2012, 3, 17],
+ [2011, 2, 29], [7, 5, 3], [2012, 13, 1], [2012, 11, 45],
+ [2012, 0, 0], [2012, 1, 0], [2012, 0, 1],
+ [2012, -2, 2], [2012, 2, -2], [2012, -2, -2],
+ ];
+ $testDateCount = count($testDates);
-// Add some data
-$testDates = [[2012, 3, 26], [2012, 2, 29], [2012, 4, 1], [2012, 12, 25],
- [2012, 10, 31], [2012, 11, 5], [2012, 1, 1], [2012, 3, 17],
- [2011, 2, 29], [7, 5, 3], [2012, 13, 1], [2012, 11, 45],
- [2012, 0, 0], [2012, 1, 0], [2012, 0, 1],
- [2012, -2, 2], [2012, 2, -2], [2012, -2, -2],
- ];
-$testDateCount = count($testDates);
+ $worksheet->fromArray($testDates, null, 'A1', true);
-$worksheet->fromArray($testDates, null, 'A1', true);
+ for ($row = 1; $row <= $testDateCount; ++$row) {
+ $worksheet->setCellValue('D' . $row, '=DATE(A' . $row . ',B' . $row . ',C' . $row . ')');
+ $worksheet->setCellValue('E' . $row, '=D' . $row);
+ }
+ $worksheet->getStyle('E1:E' . $testDateCount)
+ ->getNumberFormat()
+ ->setFormatCode('yyyy-mmm-dd');
-for ($row = 1; $row <= $testDateCount; ++$row) {
- $worksheet->setCellValue('D' . $row, '=DATE(A' . $row . ',B' . $row . ',C' . $row . ')');
- $worksheet->setCellValue('E' . $row, '=D' . $row);
-}
-$worksheet->getStyle('E1:E' . $testDateCount)
- ->getNumberFormat()
- ->setFormatCode('yyyy-mmm-dd');
+ echo '
';
-echo '
';
-
-// Test the formulae
-?>
-
-
- Date Value |
- Formula |
- Excel DateStamp |
- Formatted DateStamp |
-
-
- Year |
- Month |
- Day |
-
- ';
- echo '', $worksheet->getCell('A' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('B' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('C' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('D' . $row)->getValue(), ' | ';
- echo '', $worksheet->getCell('D' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('E' . $row)->getFormattedValue(), ' | ';
- echo '
';
- }
- ?>
-
-
+ // Test the formulae
+ ?>
+
+
+ Date Value |
+ Formula |
+ Excel DateStamp |
+ Formatted DateStamp |
+
+
+ Year |
+ Month |
+ Day |
+
+ ';
+ echo '', $worksheet->getCell('A' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('B' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('C' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('D' . $row)->getValue(), ' | ';
+ echo '', $worksheet->getCell('D' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('E' . $row)->getFormattedValue(), ' | ';
+ echo '
';
+ }
+ ?>
+
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/DateTime/DATEVALUE.php b/docs/Examples/Calculations/DateTime/DATEVALUE.php
index 437b6aa8..535fdcce 100644
--- a/docs/Examples/Calculations/DateTime/DATEVALUE.php
+++ b/docs/Examples/Calculations/DateTime/DATEVALUE.php
@@ -6,67 +6,65 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-DATEVALUE
-Converts a date in the form of text to a serial number.
-DATEVALUE
+ Converts a date in the form of text to a serial number.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $testDates = ['26 March 2012', '29 Feb 2012', 'April 1, 2012', '25/12/2012',
+ '2012-Oct-31', '5th November', 'January 1st', 'April 2012',
+ '17-03', '03-2012', '29 Feb 2011', '03-05-07',
+ '03-MAY-07', '03-13-07',
+ ];
+ $testDateCount = count($testDates);
-// Add some data
-$testDates = ['26 March 2012', '29 Feb 2012', 'April 1, 2012', '25/12/2012',
- '2012-Oct-31', '5th November', 'January 1st', 'April 2012',
- '17-03', '03-2012', '29 Feb 2011', '03-05-07',
- '03-MAY-07', '03-13-07',
- ];
-$testDateCount = count($testDates);
+ for ($row = 1; $row <= $testDateCount; ++$row) {
+ $worksheet->setCellValue('A' . $row, $testDates[$row - 1]);
+ $worksheet->setCellValue('B' . $row, '=DATEVALUE(A' . $row . ')');
+ $worksheet->setCellValue('C' . $row, '=B' . $row);
+ }
-for ($row = 1; $row <= $testDateCount; ++$row) {
- $worksheet->setCellValue('A' . $row, $testDates[$row - 1]);
- $worksheet->setCellValue('B' . $row, '=DATEVALUE(A' . $row . ')');
- $worksheet->setCellValue('C' . $row, '=B' . $row);
-}
+ $worksheet->getStyle('C1:C' . $testDateCount)
+ ->getNumberFormat()
+ ->setFormatCode('yyyy-mmm-dd');
-$worksheet->getStyle('C1:C' . $testDateCount)
- ->getNumberFormat()
- ->setFormatCode('yyyy-mmm-dd');
+ echo '
';
-echo '
';
-
-// Test the formulae
-?>
-Warning: The PhpSpreadsheet DATEVALUE() function accepts a wider range of date formats than MS Excel's DATEFORMAT() function.
-
-
- Date String |
- Formula |
- Excel DateStamp |
- Formatted DateStamp |
-
- ';
- echo '', $worksheet->getCell('A' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('B' . $row)->getValue(), ' | ';
- echo '', $worksheet->getCell('B' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('C' . $row)->getFormattedValue(), ' | ';
- echo '';
- }
- ?>
-
-
+ // Test the formulae
+ ?>
+ Warning: The PhpSpreadsheet DATEVALUE() function accepts a wider range of date formats than MS Excel's DATEFORMAT() function.
+
+
+ Date String |
+ Formula |
+ Excel DateStamp |
+ Formatted DateStamp |
+
+ ';
+ echo '', $worksheet->getCell('A' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('B' . $row)->getValue(), ' | ';
+ echo '', $worksheet->getCell('B' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('C' . $row)->getFormattedValue(), ' | ';
+ echo '';
+ }
+ ?>
+
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/DateTime/TIME.php b/docs/Examples/Calculations/DateTime/TIME.php
index 588eadf9..09641074 100644
--- a/docs/Examples/Calculations/DateTime/TIME.php
+++ b/docs/Examples/Calculations/DateTime/TIME.php
@@ -6,72 +6,70 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-TIME
-Returns the serial number of a particular time.
-TIME
+ Returns the serial number of a particular time.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $testDates = [[3, 15], [13, 15], [15, 15, 15], [3, 15, 30],
+ [15, 15, 15], [5], [9, 15, 0], [9, 15, -1],
+ [13, -14, -15], [0, 0, -1],
+ ];
+ $testDateCount = count($testDates);
-// Add some data
-$testDates = [[3, 15], [13, 15], [15, 15, 15], [3, 15, 30],
- [15, 15, 15], [5], [9, 15, 0], [9, 15, -1],
- [13, -14, -15], [0, 0, -1],
- ];
-$testDateCount = count($testDates);
+ $worksheet->fromArray($testDates, null, 'A1', true);
-$worksheet->fromArray($testDates, null, 'A1', true);
+ for ($row = 1; $row <= $testDateCount; ++$row) {
+ $worksheet->setCellValue('D' . $row, '=TIME(A' . $row . ',B' . $row . ',C' . $row . ')');
+ $worksheet->setCellValue('E' . $row, '=D' . $row);
+ }
+ $worksheet->getStyle('E1:E' . $testDateCount)
+ ->getNumberFormat()
+ ->setFormatCode('hh:mm:ss');
-for ($row = 1; $row <= $testDateCount; ++$row) {
- $worksheet->setCellValue('D' . $row, '=TIME(A' . $row . ',B' . $row . ',C' . $row . ')');
- $worksheet->setCellValue('E' . $row, '=D' . $row);
-}
-$worksheet->getStyle('E1:E' . $testDateCount)
- ->getNumberFormat()
- ->setFormatCode('hh:mm:ss');
+ echo '
';
-echo '
';
-
-// Test the formulae
-?>
-
-
- Date Value |
- Formula |
- Excel TimeStamp |
- Formatted TimeStamp |
-
-
- Hour |
- Minute |
- Second |
-
- ';
- echo '', $worksheet->getCell('A' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('B' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('C' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('D' . $row)->getValue(), ' | ';
- echo '', $worksheet->getCell('D' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('E' . $row)->getFormattedValue(), ' | ';
- echo '
';
- }
- ?>
-
-
+ // Test the formulae
+ ?>
+
+
+ Date Value |
+ Formula |
+ Excel TimeStamp |
+ Formatted TimeStamp |
+
+
+ Hour |
+ Minute |
+ Second |
+
+ ';
+ echo '', $worksheet->getCell('A' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('B' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('C' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('D' . $row)->getValue(), ' | ';
+ echo '', $worksheet->getCell('D' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('E' . $row)->getFormattedValue(), ' | ';
+ echo '
';
+ }
+ ?>
+
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/DateTime/TIMEVALUE.php b/docs/Examples/Calculations/DateTime/TIMEVALUE.php
index 26996b61..4cf27c81 100644
--- a/docs/Examples/Calculations/DateTime/TIMEVALUE.php
+++ b/docs/Examples/Calculations/DateTime/TIMEVALUE.php
@@ -6,63 +6,61 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Calculation Examples
+ PhpSpreadsheet Calculation Examples
-
-
+
+
-TIMEVALUE
-Converts a time in the form of text to a serial number.
-TIMEVALUE
+ Converts a time in the form of text to a serial number.
+ getActiveSheet();
-// Create new PhpSpreadsheet object
-$spreadsheet = new Spreadsheet();
-$worksheet = $spreadsheet->getActiveSheet();
+ // Add some data
+ $testDates = ['3:15', '13:15', '15:15:15', '3:15 AM', '3:15 PM', '5PM', '9:15AM', '13:15AM',
+ ];
+ $testDateCount = count($testDates);
-// Add some data
-$testDates = ['3:15', '13:15', '15:15:15', '3:15 AM', '3:15 PM', '5PM', '9:15AM', '13:15AM',
- ];
-$testDateCount = count($testDates);
+ for ($row = 1; $row <= $testDateCount; ++$row) {
+ $worksheet->setCellValue('A' . $row, $testDates[$row - 1]);
+ $worksheet->setCellValue('B' . $row, '=TIMEVALUE(A' . $row . ')');
+ $worksheet->setCellValue('C' . $row, '=B' . $row);
+ }
-for ($row = 1; $row <= $testDateCount; ++$row) {
- $worksheet->setCellValue('A' . $row, $testDates[$row - 1]);
- $worksheet->setCellValue('B' . $row, '=TIMEVALUE(A' . $row . ')');
- $worksheet->setCellValue('C' . $row, '=B' . $row);
-}
+ $worksheet->getStyle('C1:C' . $testDateCount)
+ ->getNumberFormat()
+ ->setFormatCode('hh:mm:ss');
-$worksheet->getStyle('C1:C' . $testDateCount)
- ->getNumberFormat()
- ->setFormatCode('hh:mm:ss');
+ echo '
';
-echo '
';
-
-// Test the formulae
-?>
-
-
- Time String |
- Formula |
- Excel TimeStamp |
- Formatted TimeStamp |
-
- ';
- echo '', $worksheet->getCell('A' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('B' . $row)->getValue(), ' | ';
- echo '', $worksheet->getCell('B' . $row)->getFormattedValue(), ' | ';
- echo '', $worksheet->getCell('C' . $row)->getFormattedValue(), ' | ';
- echo '';
- }
- ?>
-
-
+ // Test the formulae
+ ?>
+
+
+ Time String |
+ Formula |
+ Excel TimeStamp |
+ Formatted TimeStamp |
+
+ ';
+ echo '', $worksheet->getCell('A' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('B' . $row)->getValue(), ' | ';
+ echo '', $worksheet->getCell('B' . $row)->getFormattedValue(), ' | ';
+ echo '', $worksheet->getCell('C' . $row)->getFormattedValue(), ' | ';
+ echo '';
+ }
+ ?>
+
+
\ No newline at end of file
diff --git a/docs/Examples/Calculations/index.php b/docs/Examples/Calculations/index.php
index 5990ca23..ad03fe8e 100644
--- a/docs/Examples/Calculations/index.php
+++ b/docs/Examples/Calculations/index.php
@@ -1,49 +1,45 @@
-
-
+
+
-PhpSpreadsheet Calculation Function Examples
+ PhpSpreadsheet Calculation Function Examples
-
-
+
+
-PhpSpreadsheet Calculation Function Examples';
-echo 'PhpSpreadsheet Calculation Function Examples
';
+ $exampleTypeList = glob('./*', GLOB_ONLYDIR);
-$exampleTypeList = glob('./*', GLOB_ONLYDIR);
+ foreach ($exampleTypeList as $exampleType) {
+ echo '' . pathinfo($exampleType, PATHINFO_BASENAME) . ' Function Examples
';
-foreach ($exampleTypeList as $exampleType) {
- echo '' . pathinfo($exampleType, PATHINFO_BASENAME) . ' Function Examples
';
+ $exampleList = glob('./' . $exampleType . '/*.php');
- $exampleList = glob('./' . $exampleType . '/*.php');
+ foreach ($exampleList as $exampleFile) {
+ $fileData = file_get_contents($exampleFile);
- foreach ($exampleList as $exampleFile) {
- $fileData = file_get_contents($exampleFile);
+ $h1Pattern = '#(.*?)
#';
+ $h2Pattern = '#(.*?)
#';
- $h1Pattern = '#(.*?)
#';
- $h2Pattern = '#(.*?)
#';
+ if (preg_match($h1Pattern, $fileData, $out)) {
+ $h1Text = $out[1];
+ $h2Text = (preg_match($h2Pattern, $fileData, $out)) ? $out[1] : '';
- if (preg_match($h1Pattern, $fileData, $out)) {
- $h1Text = $out[1];
- $h2Text = (preg_match($h2Pattern, $fileData, $out)) ? $out[1] : '';
-
- echo '',$h1Text,'
';
- if ($h2Text > '') {
- echo $h2Text,'
';
+ echo '', $h1Text, '
';
+ if ($h2Text > '') {
+ echo $h2Text, '
';
+ }
+ }
}
}
- }
-}
-
-?>
-
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader01.php b/docs/Examples/Reader/exampleReader01.php
index d20207a2..1e343e5d 100644
--- a/docs/Examples/Reader/exampleReader01.php
+++ b/docs/Examples/Reader/exampleReader01.php
@@ -6,32 +6,29 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #01
+ PhpSpreadsheet Reader Example #01
-
-
+
+
-PhpSpreadsheet Reader Example #01
-Simple File Reader using IOFactory::load()
-PhpSpreadsheet Reader Example #01
+ Simple File Reader using IOFactory::load()
+ ';
+ $spreadsheet = IOFactory::load($inputFileName);
-$inputFileName = './sampleData/example1.xls';
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory to identify the format
';
-$spreadsheet = IOFactory::load($inputFileName);
+ echo '
';
-echo '
';
-
-$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
-var_dump($sheetData);
-
-?>
-
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader02.php b/docs/Examples/Reader/exampleReader02.php
index 9d301f69..c29e7993 100644
--- a/docs/Examples/Reader/exampleReader02.php
+++ b/docs/Examples/Reader/exampleReader02.php
@@ -8,38 +8,29 @@ set_time_limit(0);
date_default_timezone_set('Europe/London');
require_once __DIR__ . '/../../../src/Bootstrap.php';
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #02
+ PhpSpreadsheet Reader Example #02
-
-
+
+
-PhpSpreadsheet Reader Example #02
-Simple File Reader using a Specified Reader
-PhpSpreadsheet Reader Example #02
+ Simple File Reader using a Specified Reader
+ ';
+ $reader = new Xls();
+ $spreadsheet = $reader->load($inputFileName);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using \PhpOffice\PhpSpreadsheet\Reader\Xls
';
-$reader = new Xls();
-// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
-// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xml();
-// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Ods();
-// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Slk();
-// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Gnumeric();
-// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
-
-$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
-var_dump($sheetData);
-
-?>
-
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader03.php b/docs/Examples/Reader/exampleReader03.php
index 07dfa7ae..750d52c2 100644
--- a/docs/Examples/Reader/exampleReader03.php
+++ b/docs/Examples/Reader/exampleReader03.php
@@ -6,41 +6,32 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #03
+ PhpSpreadsheet Reader Example #03
-
-
+
+
-PhpSpreadsheet Reader Example #03
-Simple File Reader using the IOFactory to Return a Reader
-PhpSpreadsheet Reader Example #03
+ Simple File Reader using the IOFactory to Return a Reader
+ ';
+ $reader = IOFactory::createReader($inputFileType);
+ $spreadsheet = $reader->load($inputFileName);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
';
-$reader = IOFactory::createReader($inputFileType);
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
-
-$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
-var_dump($sheetData);
-
-?>
-
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader04.php b/docs/Examples/Reader/exampleReader04.php
index d26d6525..7b8065d5 100644
--- a/docs/Examples/Reader/exampleReader04.php
+++ b/docs/Examples/Reader/exampleReader04.php
@@ -6,37 +6,34 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #04
+ PhpSpreadsheet Reader Example #04
-
-
+
+
-PhpSpreadsheet Reader Example #04
-Simple File Reader using the IOFactory to Identify a Reader to Use
-PhpSpreadsheet Reader Example #04
+ Simple File Reader using the IOFactory to Identify a Reader to Use
+ ';
-$inputFileType = IOFactory::identify($inputFileName);
-echo 'File ',pathinfo($inputFileName, PATHINFO_BASENAME),' has been identified as an ',$inputFileType,' file
';
+ echo 'Loading file ', pathinfo($inputFileName, PATHINFO_BASENAME), ' using IOFactory with the identified reader type
';
+ $reader = IOFactory::createReader($inputFileType);
+ $spreadsheet = $reader->load($inputFileName);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with the identified reader type
';
-$reader = IOFactory::createReader($inputFileType);
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
-
-$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
-var_dump($sheetData);
-
-?>
-
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader05.php b/docs/Examples/Reader/exampleReader05.php
index ff72be92..2b06e8ac 100644
--- a/docs/Examples/Reader/exampleReader05.php
+++ b/docs/Examples/Reader/exampleReader05.php
@@ -6,41 +6,34 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #05
+ PhpSpreadsheet Reader Example #05
-
-
+
+
-PhpSpreadsheet Reader Example #05
-Simple File Reader using the "Read Data Only" Option
-PhpSpreadsheet Reader Example #05
+ Simple File Reader using the "Read Data Only" Option
+ ';
+ $reader = IOFactory::createReader($inputFileType);
+ echo 'Turning Formatting off for Load
';
+ $reader->setReadDataOnly(true);
+ $spreadsheet = $reader->load($inputFileName);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
';
-$reader = IOFactory::createReader($inputFileType);
-echo 'Turning Formatting off for Load
';
-$reader->setReadDataOnly(true);
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
-
-$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
-var_dump($sheetData);
-
-?>
-
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader06.php b/docs/Examples/Reader/exampleReader06.php
index ccc59373..04e6b94e 100644
--- a/docs/Examples/Reader/exampleReader06.php
+++ b/docs/Examples/Reader/exampleReader06.php
@@ -6,44 +6,37 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #06
+ PhpSpreadsheet Reader Example #06
-
-
+
+
-PhpSpreadsheet Reader Example #06
-Simple File Reader Loading All WorkSheets
-PhpSpreadsheet Reader Example #06
+ Simple File Reader Loading All WorkSheets
+ ';
+ $reader = IOFactory::createReader($inputFileType);
+ echo 'Loading all WorkSheets
';
+ $reader->setLoadAllSheets();
+ $spreadsheet = $reader->load($inputFileName);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
';
-$reader = IOFactory::createReader($inputFileType);
-echo 'Loading all WorkSheets
';
-$reader->setLoadAllSheets();
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
-
-echo $spreadsheet->getSheetCount(), ' worksheet', (($spreadsheet->getSheetCount() == 1) ? '' : 's'), ' loaded
';
-$loadedSheetNames = $spreadsheet->getSheetNames();
-foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
- echo $sheetIndex, ' -> ', $loadedSheetName, '
';
-}
-
-?>
-
+ echo $spreadsheet->getSheetCount(), ' worksheet', (($spreadsheet->getSheetCount() == 1) ? '' : 's'), ' loaded
';
+ $loadedSheetNames = $spreadsheet->getSheetNames();
+ foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
+ echo $sheetIndex, ' -> ', $loadedSheetName, '
';
+ }
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader07.php b/docs/Examples/Reader/exampleReader07.php
index cde1c409..7beabc82 100644
--- a/docs/Examples/Reader/exampleReader07.php
+++ b/docs/Examples/Reader/exampleReader07.php
@@ -6,45 +6,38 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #07
+ PhpSpreadsheet Reader Example #07
-
-
+
+
-PhpSpreadsheet Reader Example #07
-Simple File Reader Loading a Single Named WorkSheet
-PhpSpreadsheet Reader Example #07
+ Simple File Reader Loading a Single Named WorkSheet
+ ';
+ $reader = IOFactory::createReader($inputFileType);
+ echo 'Loading Sheet "', $sheetname, '" only
';
+ $reader->setLoadSheetsOnly($sheetname);
+ $spreadsheet = $reader->load($inputFileName);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
';
-$reader = IOFactory::createReader($inputFileType);
-echo 'Loading Sheet "',$sheetname,'" only
';
-$reader->setLoadSheetsOnly($sheetname);
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
-
-echo $spreadsheet->getSheetCount(),' worksheet',(($spreadsheet->getSheetCount() == 1) ? '' : 's'),' loaded
';
-$loadedSheetNames = $spreadsheet->getSheetNames();
-foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
- echo $sheetIndex,' -> ',$loadedSheetName,'
';
-}
-
-?>
-
+ echo $spreadsheet->getSheetCount(), ' worksheet', (($spreadsheet->getSheetCount() == 1) ? '' : 's'), ' loaded
';
+ $loadedSheetNames = $spreadsheet->getSheetNames();
+ foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
+ echo $sheetIndex, ' -> ', $loadedSheetName, '
';
+ }
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader08.php b/docs/Examples/Reader/exampleReader08.php
index 0a739f75..c9e574b9 100644
--- a/docs/Examples/Reader/exampleReader08.php
+++ b/docs/Examples/Reader/exampleReader08.php
@@ -6,45 +6,38 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #08
+ PhpSpreadsheet Reader Example #08
-
-
+
+
-PhpSpreadsheet Reader Example #08
-Simple File Reader Loading Several Named WorkSheets
-PhpSpreadsheet Reader Example #08
+ Simple File Reader Loading Several Named WorkSheets
+ ';
+ $reader = IOFactory::createReader($inputFileType);
+ echo 'Loading Sheet', ((count($sheetnames) == 1) ? '' : 's'), ' "', implode('" and "', $sheetnames), '" only
';
+ $reader->setLoadSheetsOnly($sheetnames);
+ $spreadsheet = $reader->load($inputFileName);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
';
-$reader = IOFactory::createReader($inputFileType);
-echo 'Loading Sheet',((count($sheetnames) == 1) ? '' : 's'),' "',implode('" and "', $sheetnames),'" only
';
-$reader->setLoadSheetsOnly($sheetnames);
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
-
-echo $spreadsheet->getSheetCount(),' worksheet',(($spreadsheet->getSheetCount() == 1) ? '' : 's'),' loaded
';
-$loadedSheetNames = $spreadsheet->getSheetNames();
-foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
- echo $sheetIndex,' -> ',$loadedSheetName,'
';
-}
-
-?>
-
+ echo $spreadsheet->getSheetCount(), ' worksheet', (($spreadsheet->getSheetCount() == 1) ? '' : 's'), ' loaded
';
+ $loadedSheetNames = $spreadsheet->getSheetNames();
+ foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
+ echo $sheetIndex, ' -> ', $loadedSheetName, '
';
+ }
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader09.php b/docs/Examples/Reader/exampleReader09.php
index 8dde497c..1c5c4147 100644
--- a/docs/Examples/Reader/exampleReader09.php
+++ b/docs/Examples/Reader/exampleReader09.php
@@ -7,61 +7,55 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #09
+ PhpSpreadsheet Reader Example #09
-
-
+
+
-PhpSpreadsheet Reader Example #09
-Simple File Reader Using a Read Filter
-PhpSpreadsheet Reader Example #09
+ Simple File Reader Using a Read Filter
+ = 1 && $row <= 7) {
+ if (in_array($column, range('A', 'E'))) {
+ return true;
+ }
+ }
-class MyReadFilter implements IReadFilter
-{
- public function readCell($column, $row, $worksheetName = '')
- {
- // Read rows 1 to 7 and columns A to E only
- if ($row >= 1 && $row <= 7) {
- if (in_array($column, range('A', 'E'))) {
- return true;
+ return false;
}
+
}
- return false;
- }
-}
+ $filterSubset = new MyReadFilter();
-$filterSubset = new MyReadFilter();
+ echo 'Loading file ', pathinfo($inputFileName, PATHINFO_BASENAME), ' using IOFactory with a defined reader type of ', $inputFileType, '
';
+ $reader = IOFactory::createReader($inputFileType);
+ echo 'Loading Sheet "', $sheetname, '" only
';
+ $reader->setLoadSheetsOnly($sheetname);
+ echo 'Loading Sheet using filter
';
+ $reader->setReadFilter($filterSubset);
+ $spreadsheet = $reader->load($inputFileName);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
';
-$reader = IOFactory::createReader($inputFileType);
-echo 'Loading Sheet "',$sheetname,'" only
';
-$reader->setLoadSheetsOnly($sheetname);
-echo 'Loading Sheet using filter
';
-$reader->setReadFilter($filterSubset);
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
-
-$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
-var_dump($sheetData);
-
-?>
-
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader10.php b/docs/Examples/Reader/exampleReader10.php
index f62c98d93..6d4517eb 100644
--- a/docs/Examples/Reader/exampleReader10.php
+++ b/docs/Examples/Reader/exampleReader10.php
@@ -7,73 +7,66 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #10
+ PhpSpreadsheet Reader Example #10
-
-
+
+
-PhpSpreadsheet Reader Example #10
-Simple File Reader Using a Configurable Read Filter
-PhpSpreadsheet Reader Example #10
+ Simple File Reader Using a Configurable Read Filter
+ _startRow = $startRow;
- $this->_endRow = $endRow;
- $this->_columns = $columns;
- }
-
- public function readCell($column, $row, $worksheetName = '')
- {
- if ($row >= $this->_startRow && $row <= $this->_endRow) {
- if (in_array($column, $this->_columns)) {
- return true;
+ public function __construct($startRow, $endRow, $columns)
+ {
+ $this->_startRow = $startRow;
+ $this->_endRow = $endRow;
+ $this->_columns = $columns;
}
+
+ public function readCell($column, $row, $worksheetName = '')
+ {
+ if ($row >= $this->_startRow && $row <= $this->_endRow) {
+ if (in_array($column, $this->_columns)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
}
- return false;
- }
-}
+ $filterSubset = new MyReadFilter(9, 15, range('G', 'K'));
-$filterSubset = new MyReadFilter(9, 15, range('G', 'K'));
+ echo 'Loading file ', pathinfo($inputFileName, PATHINFO_BASENAME), ' using IOFactory with a defined reader type of ', $inputFileType, '
';
+ $reader = IOFactory::createReader($inputFileType);
+ echo 'Loading Sheet "', $sheetname, '" only
';
+ $reader->setLoadSheetsOnly($sheetname);
+ echo 'Loading Sheet using configurable filter
';
+ $reader->setReadFilter($filterSubset);
+ $spreadsheet = $reader->load($inputFileName);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
';
-$reader = IOFactory::createReader($inputFileType);
-echo 'Loading Sheet "',$sheetname,'" only
';
-$reader->setLoadSheetsOnly($sheetname);
-echo 'Loading Sheet using configurable filter
';
-$reader->setReadFilter($filterSubset);
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
-
-$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
-var_dump($sheetData);
-
-?>
-
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader11.php b/docs/Examples/Reader/exampleReader11.php
index 2b7225a9..67c9ec4d 100644
--- a/docs/Examples/Reader/exampleReader11.php
+++ b/docs/Examples/Reader/exampleReader11.php
@@ -7,86 +7,80 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #11
+ PhpSpreadsheet Reader Example #11
-
-
+
+
-PhpSpreadsheet Reader Example #11
-Reading a Workbook in "Chunks" Using a Configurable Read Filter (Version 1)
-PhpSpreadsheet Reader Example #11
+ Reading a Workbook in "Chunks" Using a Configurable Read Filter (Version 1)
+ _startRow = $startRow;
+ $this->_endRow = $startRow + $chunkSize;
+ }
- /**
- * We expect a list of the rows that we want to read to be passed into the constructor.
- *
- * @param mixed $startRow
- * @param mixed $chunkSize
- */
- public function __construct($startRow, $chunkSize)
- {
- $this->_startRow = $startRow;
- $this->_endRow = $startRow + $chunkSize;
- }
+ public function readCell($column, $row, $worksheetName = '')
+ {
+ // Only read the heading row, and the rows that were configured in the constructor
+ if (($row == 1) || ($row >= $this->_startRow && $row < $this->_endRow)) {
+ return true;
+ }
+
+ return false;
+ }
- public function readCell($column, $row, $worksheetName = '')
- {
- // Only read the heading row, and the rows that were configured in the constructor
- if (($row == 1) || ($row >= $this->_startRow && $row < $this->_endRow)) {
- return true;
}
- return false;
- }
-}
+ echo 'Loading file ', pathinfo($inputFileName, PATHINFO_BASENAME), ' using IOFactory with a defined reader type of ', $inputFileType, '
';
+ /* Create a new Reader of the type defined in $inputFileType * */
+ $reader = IOFactory::createReader($inputFileType);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
';
-/* Create a new Reader of the type defined in $inputFileType **/
-$reader = IOFactory::createReader($inputFileType);
+ echo '
';
-echo '
';
+ /* Define how many rows we want for each "chunk" * */
+ $chunkSize = 20;
-/* Define how many rows we want for each "chunk" **/
-$chunkSize = 20;
+ /* Loop to read our worksheet in "chunk size" blocks * */
+ for ($startRow = 2; $startRow <= 240; $startRow += $chunkSize) {
+ echo 'Loading WorkSheet using configurable filter for headings row 1 and for rows ', $startRow, ' to ', ($startRow + $chunkSize - 1), '
';
+ /* Create a new Instance of our Read Filter, passing in the limits on which rows we want to read * */
+ $chunkFilter = new chunkReadFilter($startRow, $chunkSize);
+ /* Tell the Reader that we want to use the new Read Filter that we've just Instantiated * */
+ $reader->setReadFilter($chunkFilter);
+ /* Load only the rows that match our filter from $inputFileName to a PhpSpreadsheet Object * */
+ $spreadsheet = $reader->load($inputFileName);
-/* Loop to read our worksheet in "chunk size" blocks **/
-for ($startRow = 2; $startRow <= 240; $startRow += $chunkSize) {
- echo 'Loading WorkSheet using configurable filter for headings row 1 and for rows ',$startRow,' to ',($startRow + $chunkSize - 1),'
';
- /* Create a new Instance of our Read Filter, passing in the limits on which rows we want to read **/
- $chunkFilter = new chunkReadFilter($startRow, $chunkSize);
- /* Tell the Reader that we want to use the new Read Filter that we've just Instantiated **/
- $reader->setReadFilter($chunkFilter);
- /* Load only the rows that match our filter from $inputFileName to a PhpSpreadsheet Object **/
- $spreadsheet = $reader->load($inputFileName);
+ // Do some processing here
- // Do some processing here
-
- $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
- var_dump($sheetData);
- echo '
';
-}
-
-?>
-
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ echo '
';
+ }
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader12.php b/docs/Examples/Reader/exampleReader12.php
index 50580f2a..f9055ae1 100644
--- a/docs/Examples/Reader/exampleReader12.php
+++ b/docs/Examples/Reader/exampleReader12.php
@@ -7,89 +7,83 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #12
+ PhpSpreadsheet Reader Example #12
-
-
+
+
-PhpSpreadsheet Reader Example #12
-Reading a Workbook in "Chunks" Using a Configurable Read Filter (Version 2)
-PhpSpreadsheet Reader Example #12
+ Reading a Workbook in "Chunks" Using a Configurable Read Filter (Version 2)
+ _startRow = $startRow;
+ $this->_endRow = $startRow + $chunkSize;
+ }
- /**
- * Set the list of rows that we want to read.
- *
- * @param mixed $startRow
- * @param mixed $chunkSize
- */
- public function setRows($startRow, $chunkSize)
- {
- $this->_startRow = $startRow;
- $this->_endRow = $startRow + $chunkSize;
- }
+ public function readCell($column, $row, $worksheetName = '')
+ {
+ // Only read the heading row, and the rows that are configured in $this->_startRow and $this->_endRow
+ if (($row == 1) || ($row >= $this->_startRow && $row < $this->_endRow)) {
+ return true;
+ }
+
+ return false;
+ }
- public function readCell($column, $row, $worksheetName = '')
- {
- // Only read the heading row, and the rows that are configured in $this->_startRow and $this->_endRow
- if (($row == 1) || ($row >= $this->_startRow && $row < $this->_endRow)) {
- return true;
}
- return false;
- }
-}
+ echo 'Loading file ', pathinfo($inputFileName, PATHINFO_BASENAME), ' using IOFactory with a defined reader type of ', $inputFileType, '
';
+ /* Create a new Reader of the type defined in $inputFileType * */
+ $reader = IOFactory::createReader($inputFileType);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
';
-/* Create a new Reader of the type defined in $inputFileType **/
-$reader = IOFactory::createReader($inputFileType);
+ echo '
';
-echo '
';
+ /* Define how many rows we want to read for each "chunk" * */
+ $chunkSize = 20;
+ /* Create a new Instance of our Read Filter * */
+ $chunkFilter = new chunkReadFilter();
-/* Define how many rows we want to read for each "chunk" **/
-$chunkSize = 20;
-/* Create a new Instance of our Read Filter **/
-$chunkFilter = new chunkReadFilter();
+ /* Tell the Reader that we want to use the Read Filter that we've Instantiated * */
+ $reader->setReadFilter($chunkFilter);
-/* Tell the Reader that we want to use the Read Filter that we've Instantiated **/
-$reader->setReadFilter($chunkFilter);
+ /* Loop to read our worksheet in "chunk size" blocks * */
+ for ($startRow = 2; $startRow <= 240; $startRow += $chunkSize) {
+ echo 'Loading WorkSheet using configurable filter for headings row 1 and for rows ', $startRow, ' to ', ($startRow + $chunkSize - 1), '
';
+ /* Tell the Read Filter, the limits on which rows we want to read this iteration * */
+ $chunkFilter->setRows($startRow, $chunkSize);
+ /* Load only the rows that match our filter from $inputFileName to a PhpSpreadsheet Object * */
+ $spreadsheet = $reader->load($inputFileName);
-/* Loop to read our worksheet in "chunk size" blocks **/
-for ($startRow = 2; $startRow <= 240; $startRow += $chunkSize) {
- echo 'Loading WorkSheet using configurable filter for headings row 1 and for rows ', $startRow, ' to ', ($startRow + $chunkSize - 1), '
';
- /* Tell the Read Filter, the limits on which rows we want to read this iteration **/
- $chunkFilter->setRows($startRow, $chunkSize);
- /* Load only the rows that match our filter from $inputFileName to a PhpSpreadsheet Object **/
- $spreadsheet = $reader->load($inputFileName);
+ // Do some processing here
- // Do some processing here
-
- $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
- var_dump($sheetData);
- echo '
';
-}
-
-?>
-
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ echo '
';
+ }
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader13.php b/docs/Examples/Reader/exampleReader13.php
index c5107c87..e13f1801 100644
--- a/docs/Examples/Reader/exampleReader13.php
+++ b/docs/Examples/Reader/exampleReader13.php
@@ -6,50 +6,47 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #13
+ PhpSpreadsheet Reader Example #13
-
-
+
+
-PhpSpreadsheet Reader Example #13
-Simple File Reader for Multiple CSV Files
-PhpSpreadsheet Reader Example #13
+ Simple File Reader for Multiple CSV Files
+ ';
+ $spreadsheet = $reader->load($inputFileName);
+ $spreadsheet->getActiveSheet()->setTitle(pathinfo($inputFileName, PATHINFO_BASENAME));
+ foreach ($inputFileNames as $sheet => $inputFileName) {
+ echo 'Loading file ', pathinfo($inputFileName, PATHINFO_BASENAME), ' into WorkSheet #', ($sheet + 2), ' using IOFactory with a defined reader type of ', $inputFileType, '
';
+ $reader->setSheetIndex($sheet + 1);
+ $reader->loadIntoExisting($inputFileName, $spreadsheet);
+ $spreadsheet->getActiveSheet()->setTitle(pathinfo($inputFileName, PATHINFO_BASENAME));
+ }
-$reader = IOFactory::createReader($inputFileType);
-$inputFileName = array_shift($inputFileNames);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' into WorkSheet #1 using IOFactory with a defined reader type of ',$inputFileType,'
';
-$spreadsheet = $reader->load($inputFileName);
-$spreadsheet->getActiveSheet()->setTitle(pathinfo($inputFileName, PATHINFO_BASENAME));
-foreach ($inputFileNames as $sheet => $inputFileName) {
- echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' into WorkSheet #',($sheet + 2),' using IOFactory with a defined reader type of ',$inputFileType,'
';
- $reader->setSheetIndex($sheet + 1);
- $reader->loadIntoExisting($inputFileName, $spreadsheet);
- $spreadsheet->getActiveSheet()->setTitle(pathinfo($inputFileName, PATHINFO_BASENAME));
-}
+ echo '
';
-echo '
';
-
-echo $spreadsheet->getSheetCount(), ' worksheet', (($spreadsheet->getSheetCount() == 1) ? '' : 's'), ' loaded
';
-$loadedSheetNames = $spreadsheet->getSheetNames();
-foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
- echo 'Worksheet #', $sheetIndex, ' -> ', $loadedSheetName, '
';
- $spreadsheet->setActiveSheetIndexByName($loadedSheetName);
- $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
- var_dump($sheetData);
- echo '
';
-}
-
-?>
-
+ echo $spreadsheet->getSheetCount(), ' worksheet', (($spreadsheet->getSheetCount() == 1) ? '' : 's'), ' loaded
';
+ $loadedSheetNames = $spreadsheet->getSheetNames();
+ foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
+ echo 'Worksheet #', $sheetIndex, ' -> ', $loadedSheetName, '
';
+ $spreadsheet->setActiveSheetIndexByName($loadedSheetName);
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ echo '
';
+ }
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader14.php b/docs/Examples/Reader/exampleReader14.php
index aad066dc..98ab0b65 100644
--- a/docs/Examples/Reader/exampleReader14.php
+++ b/docs/Examples/Reader/exampleReader14.php
@@ -8,105 +8,103 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #14
+ PhpSpreadsheet Reader Example #14
-
-
+
+
-PhpSpreadsheet Reader Example #14
-Reading a Large CSV file in "Chunks" to split across multiple Worksheets
-PhpSpreadsheet Reader Example #14
+ Reading a Large CSV file in "Chunks" to split across multiple Worksheets
+ _startRow = $startRow;
+ $this->_endRow = $startRow + $chunkSize;
+ }
- /**
- * Set the list of rows that we want to read.
- *
- * @param mixed $startRow
- * @param mixed $chunkSize
- */
- public function setRows($startRow, $chunkSize)
- {
- $this->_startRow = $startRow;
- $this->_endRow = $startRow + $chunkSize;
- }
+ public function readCell($column, $row, $worksheetName = '')
+ {
+ // Only read the heading row, and the rows that are configured in $this->_startRow and $this->_endRow
+ if (($row == 1) || ($row >= $this->_startRow && $row < $this->_endRow)) {
+ return true;
+ }
+
+ return false;
+ }
- public function readCell($column, $row, $worksheetName = '')
- {
- // Only read the heading row, and the rows that are configured in $this->_startRow and $this->_endRow
- if (($row == 1) || ($row >= $this->_startRow && $row < $this->_endRow)) {
- return true;
}
- return false;
- }
-}
+ echo 'Loading file ', pathinfo($inputFileName, PATHINFO_BASENAME), ' using IOFactory with a defined reader type of ', $inputFileType, '
';
+ /* Create a new Reader of the type defined in $inputFileType * */
+ $reader = IOFactory::createReader($inputFileType);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
';
-/* Create a new Reader of the type defined in $inputFileType **/
-$reader = IOFactory::createReader($inputFileType);
+ echo '
';
-echo '
';
+ /* Define how many rows we want to read for each "chunk" * */
+ $chunkSize = 100;
+ /* Create a new Instance of our Read Filter * */
+ $chunkFilter = new chunkReadFilter();
-/* Define how many rows we want to read for each "chunk" **/
-$chunkSize = 100;
-/* Create a new Instance of our Read Filter **/
-$chunkFilter = new chunkReadFilter();
+ /* Tell the Reader that we want to use the Read Filter that we've Instantiated * */
+ /* and that we want to store it in contiguous rows/columns * */
+ $reader->setReadFilter($chunkFilter)
+ ->setContiguous(true);
-/* Tell the Reader that we want to use the Read Filter that we've Instantiated **/
-/* and that we want to store it in contiguous rows/columns **/
-$reader->setReadFilter($chunkFilter)
- ->setContiguous(true);
+ /* Instantiate a new PhpSpreadsheet object manually * */
+ $spreadsheet = new Spreadsheet();
-/* Instantiate a new PhpSpreadsheet object manually **/
-$spreadsheet = new Spreadsheet();
+ /* Set a sheet index * */
+ $sheet = 0;
+ /* Loop to read our worksheet in "chunk size" blocks * */
+ /** $startRow is set to 2 initially because we always read the headings in row #1 * */
+ for ($startRow = 2; $startRow <= 240; $startRow += $chunkSize) {
+ echo 'Loading WorkSheet #', ($sheet + 1), ' using configurable filter for headings row 1 and for rows ', $startRow, ' to ', ($startRow + $chunkSize - 1), '
';
+ /* Tell the Read Filter, the limits on which rows we want to read this iteration * */
+ $chunkFilter->setRows($startRow, $chunkSize);
-/* Set a sheet index **/
-$sheet = 0;
-/* Loop to read our worksheet in "chunk size" blocks **/
-/** $startRow is set to 2 initially because we always read the headings in row #1 **/
-for ($startRow = 2; $startRow <= 240; $startRow += $chunkSize) {
- echo 'Loading WorkSheet #', ($sheet + 1), ' using configurable filter for headings row 1 and for rows ', $startRow, ' to ', ($startRow + $chunkSize - 1), '
';
- /* Tell the Read Filter, the limits on which rows we want to read this iteration **/
- $chunkFilter->setRows($startRow, $chunkSize);
+ /* Increment the worksheet index pointer for the Reader * */
+ $reader->setSheetIndex($sheet);
+ /* Load only the rows that match our filter into a new worksheet in the PhpSpreadsheet Object * */
+ $reader->loadIntoExisting($inputFileName, $spreadsheet);
+ /* Set the worksheet title (to reference the "sheet" of data that we've loaded) * */
+ /* and increment the sheet index as well * */
+ $spreadsheet->getActiveSheet()->setTitle('Country Data #' . ( ++$sheet));
+ }
- /* Increment the worksheet index pointer for the Reader **/
- $reader->setSheetIndex($sheet);
- /* Load only the rows that match our filter into a new worksheet in the PhpSpreadsheet Object **/
- $reader->loadIntoExisting($inputFileName, $spreadsheet);
- /* Set the worksheet title (to reference the "sheet" of data that we've loaded) **/
- /* and increment the sheet index as well **/
- $spreadsheet->getActiveSheet()->setTitle('Country Data #' . (++$sheet));
-}
+ echo '
';
-echo '
';
-
-echo $spreadsheet->getSheetCount(), ' worksheet', (($spreadsheet->getSheetCount() == 1) ? '' : 's'), ' loaded
';
-$loadedSheetNames = $spreadsheet->getSheetNames();
-foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
- echo 'Worksheet #', $sheetIndex, ' -> ', $loadedSheetName, '
';
- $spreadsheet->setActiveSheetIndexByName($loadedSheetName);
- $sheetData = $spreadsheet->getActiveSheet()->toArray(null, false, false, true);
- var_dump($sheetData);
- echo '
';
-}
-
-?>
-
+ echo $spreadsheet->getSheetCount(), ' worksheet', (($spreadsheet->getSheetCount() == 1) ? '' : 's'), ' loaded
';
+ $loadedSheetNames = $spreadsheet->getSheetNames();
+ foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
+ echo 'Worksheet #', $sheetIndex, ' -> ', $loadedSheetName, '
';
+ $spreadsheet->setActiveSheetIndexByName($loadedSheetName);
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, false, false, true);
+ var_dump($sheetData);
+ echo '
';
+ }
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader15.php b/docs/Examples/Reader/exampleReader15.php
index fdf38b05..be913444 100644
--- a/docs/Examples/Reader/exampleReader15.php
+++ b/docs/Examples/Reader/exampleReader15.php
@@ -7,66 +7,63 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #15
+ PhpSpreadsheet Reader Example #15
-
-
+
+
-PhpSpreadsheet Reader Example #15
-Simple File Reader for Tab-Separated Value File using the Advanced Value Binder
-PhpSpreadsheet Reader Example #15
+ Simple File Reader for Tab-Separated Value File using the Advanced Value Binder
+ ';
+ $reader->setDelimiter("\t");
+ $spreadsheet = $reader->load($inputFileName);
+ $spreadsheet->getActiveSheet()->setTitle(pathinfo($inputFileName, PATHINFO_BASENAME));
-$reader = IOFactory::createReader($inputFileType);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' into WorkSheet #1 using IOFactory with a defined reader type of ',$inputFileType,'
';
-$reader->setDelimiter("\t");
-$spreadsheet = $reader->load($inputFileName);
-$spreadsheet->getActiveSheet()->setTitle(pathinfo($inputFileName, PATHINFO_BASENAME));
+ echo '
';
-echo '
';
+ echo $spreadsheet->getSheetCount(), ' worksheet', (($spreadsheet->getSheetCount() == 1) ? '' : 's'), ' loaded
';
+ $loadedSheetNames = $spreadsheet->getSheetNames();
+ foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
+ echo 'Worksheet #', $sheetIndex, ' -> ', $loadedSheetName, ' (Formatted)
';
+ $spreadsheet->setActiveSheetIndexByName($loadedSheetName);
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ echo '
';
+ }
-echo $spreadsheet->getSheetCount(),' worksheet',(($spreadsheet->getSheetCount() == 1) ? '' : 's'),' loaded
';
-$loadedSheetNames = $spreadsheet->getSheetNames();
-foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
- echo 'Worksheet #',$sheetIndex,' -> ',$loadedSheetName,' (Formatted)
';
- $spreadsheet->setActiveSheetIndexByName($loadedSheetName);
- $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
- var_dump($sheetData);
- echo '
';
-}
+ echo '
';
-echo '
';
+ foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
+ echo 'Worksheet #', $sheetIndex, ' -> ', $loadedSheetName, ' (Unformatted)
';
+ $spreadsheet->setActiveSheetIndexByName($loadedSheetName);
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, false, true);
+ var_dump($sheetData);
+ echo '
';
+ }
-foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
- echo 'Worksheet #', $sheetIndex, ' -> ', $loadedSheetName, ' (Unformatted)
';
- $spreadsheet->setActiveSheetIndexByName($loadedSheetName);
- $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, false, true);
- var_dump($sheetData);
- echo '
';
-}
+ echo '
';
-echo '
';
-
-foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
- echo 'Worksheet #', $sheetIndex, ' -> ', $loadedSheetName, ' (Raw)
';
- $spreadsheet->setActiveSheetIndexByName($loadedSheetName);
- $sheetData = $spreadsheet->getActiveSheet()->toArray(null, false, false, true);
- var_dump($sheetData);
- echo '
';
-}
-
-?>
-
+ foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
+ echo 'Worksheet #', $sheetIndex, ' -> ', $loadedSheetName, ' (Raw)
';
+ $spreadsheet->setActiveSheetIndexByName($loadedSheetName);
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, false, false, true);
+ var_dump($sheetData);
+ echo '
';
+ }
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader16.php b/docs/Examples/Reader/exampleReader16.php
index 9436bd2e..aa4bc469 100644
--- a/docs/Examples/Reader/exampleReader16.php
+++ b/docs/Examples/Reader/exampleReader16.php
@@ -7,36 +7,33 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #16
+ PhpSpreadsheet Reader Example #16
-
-
+
+
-PhpSpreadsheet Reader Example #16
-Handling Loader Exceptions using Try/Catch
-PhpSpreadsheet Reader Example #16
+ Handling Loader Exceptions using Try/Catch
+ ';
+ try {
+ $spreadsheet = IOFactory::load($inputFileName);
+ } catch (InvalidArgumentException $e) {
+ die('Error loading file "' . pathinfo($inputFileName, PATHINFO_BASENAME) . '": ' . $e->getMessage());
+ }
-$inputFileName = './sampleData/example_1.xls';
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory to identify the format
';
-try {
- $spreadsheet = IOFactory::load($inputFileName);
-} catch (InvalidArgumentException $e) {
- die('Error loading file "' . pathinfo($inputFileName, PATHINFO_BASENAME) . '": ' . $e->getMessage());
-}
+ echo '
';
-echo '
';
-
-$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
-var_dump($sheetData);
-
-?>
-
+ $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
+ var_dump($sheetData);
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader17.php b/docs/Examples/Reader/exampleReader17.php
index 763805ac..3c6ebf30 100644
--- a/docs/Examples/Reader/exampleReader17.php
+++ b/docs/Examples/Reader/exampleReader17.php
@@ -6,42 +6,35 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #17
+ PhpSpreadsheet Reader Example #17
-
-
+
+
-PhpSpreadsheet Reader Example #17
-Simple File Reader Loading Several Named WorkSheets
-PhpSpreadsheet Reader Example #17
+ Simple File Reader Loading Several Named WorkSheets
+ ';
+ $reader = IOFactory::createReader($inputFileType);
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'
';
-$reader = IOFactory::createReader($inputFileType);
+ /* Read the list of Worksheet Names from the Workbook file * */
+ echo 'Read the list of Worksheets in the WorkBook
';
+ $worksheetNames = $reader->listWorksheetNames($inputFileName);
-/* Read the list of Worksheet Names from the Workbook file **/
-echo 'Read the list of Worksheets in the WorkBook
';
-$worksheetNames = $reader->listWorksheetNames($inputFileName);
-
-echo 'There are ',count($worksheetNames),' worksheet',((count($worksheetNames) == 1) ? '' : 's'),' in the workbook
';
-foreach ($worksheetNames as $worksheetName) {
- echo $worksheetName,'
';
-}
-
-?>
-
+ echo 'There are ', count($worksheetNames), ' worksheet', ((count($worksheetNames) == 1) ? '' : 's'), ' in the workbook
';
+ foreach ($worksheetNames as $worksheetName) {
+ echo $worksheetName, '
';
+ }
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader18.php b/docs/Examples/Reader/exampleReader18.php
index 9822b209..68a478bb 100644
--- a/docs/Examples/Reader/exampleReader18.php
+++ b/docs/Examples/Reader/exampleReader18.php
@@ -6,42 +6,35 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #18
+ PhpSpreadsheet Reader Example #18
-
-
+
+
-PhpSpreadsheet Reader Example #18
-Reading list of WorkSheets without loading entire file
-PhpSpreadsheet Reader Example #18
+ Reading list of WorkSheets without loading entire file
+ ';
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' information using IOFactory with a defined reader type of ',$inputFileType,'
';
+ $reader = IOFactory::createReader($inputFileType);
+ $worksheetNames = $reader->listWorksheetNames($inputFileName);
-$reader = IOFactory::createReader($inputFileType);
-$worksheetNames = $reader->listWorksheetNames($inputFileName);
-
-echo 'Worksheet Names
';
-echo '';
-foreach ($worksheetNames as $worksheetName) {
- echo '- ', $worksheetName, '
';
-}
-echo '
';
-
-?>
-
+ echo 'Worksheet Names
';
+ echo '';
+ foreach ($worksheetNames as $worksheetName) {
+ echo '- ', $worksheetName, '
';
+ }
+ echo '
';
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reader/exampleReader19.php b/docs/Examples/Reader/exampleReader19.php
index 5749d1b6..dea2dd06 100644
--- a/docs/Examples/Reader/exampleReader19.php
+++ b/docs/Examples/Reader/exampleReader19.php
@@ -6,45 +6,38 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reader Example #19
+ PhpSpreadsheet Reader Example #19
-
-
+
+
-PhpSpreadsheet Reader Example #19
-Reading WorkSheet information without loading entire file
-PhpSpreadsheet Reader Example #19
+ Reading WorkSheet information without loading entire file
+ ';
-echo 'Loading file ',pathinfo($inputFileName, PATHINFO_BASENAME),' information using IOFactory with a defined reader type of ',$inputFileType,'
';
+ $reader = IOFactory::createReader($inputFileType);
+ $worksheetData = $reader->listWorksheetInfo($inputFileName);
-$reader = IOFactory::createReader($inputFileType);
-$worksheetData = $reader->listWorksheetInfo($inputFileName);
-
-echo 'Worksheet Information
';
-echo '';
-foreach ($worksheetData as $worksheet) {
- echo '- ', $worksheet['worksheetName'], '
';
- echo 'Rows: ', $worksheet['totalRows'], ' Columns: ', $worksheet['totalColumns'], '
';
- echo 'Cell Range: A1:', $worksheet['lastColumnLetter'], $worksheet['totalRows'];
- echo ' ';
-}
-echo '
';
-
-?>
-
+ echo 'Worksheet Information
';
+ echo '';
+ foreach ($worksheetData as $worksheet) {
+ echo '- ', $worksheet['worksheetName'], '
';
+ echo 'Rows: ', $worksheet['totalRows'], ' Columns: ', $worksheet['totalColumns'], '
';
+ echo 'Cell Range: A1:', $worksheet['lastColumnLetter'], $worksheet['totalRows'];
+ echo ' ';
+ }
+ echo '
';
+ ?>
+
\ No newline at end of file
diff --git a/docs/Examples/Reading WorkBook Data/exampleWorkBookReader01.php b/docs/Examples/Reading WorkBook Data/exampleWorkBookReader01.php
index 8a6b4726..9085b394 100644
--- a/docs/Examples/Reading WorkBook Data/exampleWorkBookReader01.php
+++ b/docs/Examples/Reading WorkBook Data/exampleWorkBookReader01.php
@@ -6,83 +6,80 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reading WorkBook Data Example #01
+ PhpSpreadsheet Reading WorkBook Data Example #01
-
-
+
+
-PhpSpreadsheet Reading WorkBook Data Example #01
-Read the WorkBook Properties
-PhpSpreadsheet Reading WorkBook Data Example #01
+ Read the WorkBook Properties
+ load($inputFileName);
-/* Create a new Reader of the type defined in $inputFileType **/
-$reader = IOFactory::createReader($inputFileType);
-/* Load $inputFileName to a PhpSpreadsheet Object **/
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
+ /* Read the document's creator property * */
+ $creator = $spreadsheet->getProperties()->getCreator();
+ echo 'Document Creator: ', $creator, '
';
-/* Read the document's creator property **/
-$creator = $spreadsheet->getProperties()->getCreator();
-echo 'Document Creator: ',$creator,'
';
+ /* Read the Date when the workbook was created (as a PHP timestamp value) * */
+ $creationDatestamp = $spreadsheet->getProperties()->getCreated();
+ /* Format the date and time using the standard PHP date() function * */
+ $creationDate = date('l, d<\s\up>S\s\up> F Y', $creationDatestamp);
+ $creationTime = date('g:i A', $creationDatestamp);
+ echo 'Created On: ', $creationDate, ' at ', $creationTime, '
';
-/* Read the Date when the workbook was created (as a PHP timestamp value) **/
-$creationDatestamp = $spreadsheet->getProperties()->getCreated();
-/* Format the date and time using the standard PHP date() function **/
-$creationDate = date('l, d<\s\up>S\s\up> F Y', $creationDatestamp);
-$creationTime = date('g:i A', $creationDatestamp);
-echo 'Created On: ',$creationDate,' at ',$creationTime,'
';
+ /* Read the name of the last person to modify this workbook * */
+ $modifiedBy = $spreadsheet->getProperties()->getLastModifiedBy();
+ echo 'Last Modified By: ', $modifiedBy, '
';
-/* Read the name of the last person to modify this workbook **/
-$modifiedBy = $spreadsheet->getProperties()->getLastModifiedBy();
-echo 'Last Modified By: ',$modifiedBy,'
';
+ /* Read the Date when the workbook was last modified (as a PHP timestamp value) * */
+ $modifiedDatestamp = $spreadsheet->getProperties()->getModified();
+ /* Format the date and time using the standard PHP date() function * */
+ $modifiedDate = date('l, d<\s\up>S\s\up> F Y', $modifiedDatestamp);
+ $modifiedTime = date('g:i A', $modifiedDatestamp);
+ echo 'Last Modified On: ', $modifiedDate, ' at ', $modifiedTime, '
';
-/* Read the Date when the workbook was last modified (as a PHP timestamp value) **/
-$modifiedDatestamp = $spreadsheet->getProperties()->getModified();
-/* Format the date and time using the standard PHP date() function **/
-$modifiedDate = date('l, d<\s\up>S\s\up> F Y', $modifiedDatestamp);
-$modifiedTime = date('g:i A', $modifiedDatestamp);
-echo 'Last Modified On: ',$modifiedDate,' at ',$modifiedTime,'
';
+ /* Read the workbook title property * */
+ $workbookTitle = $spreadsheet->getProperties()->getTitle();
+ echo 'Title: ', $workbookTitle, '
';
-/* Read the workbook title property **/
-$workbookTitle = $spreadsheet->getProperties()->getTitle();
-echo 'Title: ',$workbookTitle,'
';
+ /* Read the workbook description property * */
+ $description = $spreadsheet->getProperties()->getDescription();
+ echo 'Description: ', $description, '
';
-/* Read the workbook description property **/
-$description = $spreadsheet->getProperties()->getDescription();
-echo 'Description: ',$description,'
';
+ /* Read the workbook subject property * */
+ $subject = $spreadsheet->getProperties()->getSubject();
+ echo 'Subject: ', $subject, '
';
-/* Read the workbook subject property **/
-$subject = $spreadsheet->getProperties()->getSubject();
-echo 'Subject: ',$subject,'
';
+ /* Read the workbook keywords property * */
+ $keywords = $spreadsheet->getProperties()->getKeywords();
+ echo 'Keywords: ', $keywords, '
';
-/* Read the workbook keywords property **/
-$keywords = $spreadsheet->getProperties()->getKeywords();
-echo 'Keywords: ',$keywords,'
';
+ /* Read the workbook category property * */
+ $category = $spreadsheet->getProperties()->getCategory();
+ echo 'Category: ', $category, '
';
-/* Read the workbook category property **/
-$category = $spreadsheet->getProperties()->getCategory();
-echo 'Category: ',$category,'
';
+ /* Read the workbook company property * */
+ $company = $spreadsheet->getProperties()->getCompany();
+ echo 'Company: ', $company, '
';
-/* Read the workbook company property **/
-$company = $spreadsheet->getProperties()->getCompany();
-echo 'Company: ',$company,'
';
-
-/* Read the workbook manager property **/
-$manager = $spreadsheet->getProperties()->getManager();
-echo 'Manager: ',$manager,'
';
-
-?>
-
+ /* Read the workbook manager property * */
+ $manager = $spreadsheet->getProperties()->getManager();
+ echo 'Manager: ', $manager, '
';
+ ?>
+
diff --git a/docs/Examples/Reading WorkBook Data/exampleWorkBookReader02.php b/docs/Examples/Reading WorkBook Data/exampleWorkBookReader02.php
index b9cfc196..b643f74b 100644
--- a/docs/Examples/Reading WorkBook Data/exampleWorkBookReader02.php
+++ b/docs/Examples/Reading WorkBook Data/exampleWorkBookReader02.php
@@ -6,41 +6,38 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reading WorkBook Data Example #02
+ PhpSpreadsheet Reading WorkBook Data Example #02
-
-
+
+
-PhpSpreadsheet Reading WorkBook Data Example #02
-Read a list of Custom Properties for a WorkBook
-PhpSpreadsheet Reading WorkBook Data Example #02
+ Read a list of Custom Properties for a WorkBook
+ load($inputFileName);
-/* Create a new Reader of the type defined in $inputFileType **/
-$reader = IOFactory::createReader($inputFileType);
-/* Load $inputFileName to a PhpSpreadsheet Object **/
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
+ /* Read an array list of any custom properties for this document * */
+ $customPropertyList = $spreadsheet->getProperties()->getCustomProperties();
-/* Read an array list of any custom properties for this document **/
-$customPropertyList = $spreadsheet->getProperties()->getCustomProperties();
-
-echo 'Custom Property names:
';
-foreach ($customPropertyList as $customPropertyName) {
- echo $customPropertyName, '
';
-}
-
-?>
-
+ echo 'Custom Property names:
';
+ foreach ($customPropertyList as $customPropertyName) {
+ echo $customPropertyName, '
';
+ }
+ ?>
+
diff --git a/docs/Examples/Reading WorkBook Data/exampleWorkBookReader03.php b/docs/Examples/Reading WorkBook Data/exampleWorkBookReader03.php
index 81327481..432099aa 100644
--- a/docs/Examples/Reading WorkBook Data/exampleWorkBookReader03.php
+++ b/docs/Examples/Reading WorkBook Data/exampleWorkBookReader03.php
@@ -6,69 +6,66 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reading WorkBook Data Example #03
+ PhpSpreadsheet Reading WorkBook Data Example #03
-
-
+
+
-PhpSpreadsheet Reading WorkBook Data Example #03
-Read Custom Property Values for a WorkBook
-PhpSpreadsheet Reading WorkBook Data Example #03
+ Read Custom Property Values for a WorkBook
+ load($inputFileName);
-/* Create a new Reader of the type defined in $inputFileType **/
-$reader = IOFactory::createReader($inputFileType);
-/* Load $inputFileName to a PhpSpreadsheet Object **/
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
+ /* Read an array list of any custom properties for this document * */
+ $customPropertyList = $spreadsheet->getProperties()->getCustomProperties();
-/* Read an array list of any custom properties for this document **/
-$customPropertyList = $spreadsheet->getProperties()->getCustomProperties();
+ echo 'Custom Properties:
';
+ /* Loop through the list of custom properties * */
+ foreach ($customPropertyList as $customPropertyName) {
+ echo '', $customPropertyName, ': ';
+ /* Retrieve the property value * */
+ $propertyValue = $spreadsheet->getProperties()->getCustomPropertyValue($customPropertyName);
+ /* Retrieve the property type * */
+ $propertyType = $spreadsheet->getProperties()->getCustomPropertyType($customPropertyName);
-echo 'Custom Properties:
';
-/* Loop through the list of custom properties **/
-foreach ($customPropertyList as $customPropertyName) {
- echo '',$customPropertyName,': ';
- /* Retrieve the property value **/
- $propertyValue = $spreadsheet->getProperties()->getCustomPropertyValue($customPropertyName);
- /* Retrieve the property type **/
- $propertyType = $spreadsheet->getProperties()->getCustomPropertyType($customPropertyName);
+ /* Manipulate properties as appropriate for display purposes * */
+ switch ($propertyType) {
+ case 'i': // integer
+ $propertyType = 'integer number';
+ break;
+ case 'f': // float
+ $propertyType = 'floating point number';
+ break;
+ case 's': // string
+ $propertyType = 'string';
+ break;
+ case 'd': // date
+ $propertyValue = date('l, d<\s\up>S\s\up> F Y g:i A', $propertyValue);
+ $propertyType = 'date';
+ break;
+ case 'b': // boolean
+ $propertyValue = ($propertyValue) ? 'TRUE' : 'FALSE';
+ $propertyType = 'boolean';
+ break;
+ }
- /* Manipulate properties as appropriate for display purposes **/
- switch ($propertyType) {
- case 'i': // integer
- $propertyType = 'integer number';
- break;
- case 'f': // float
- $propertyType = 'floating point number';
- break;
- case 's': // string
- $propertyType = 'string';
- break;
- case 'd': // date
- $propertyValue = date('l, d<\s\up>S\s\up> F Y g:i A', $propertyValue);
- $propertyType = 'date';
- break;
- case 'b': // boolean
- $propertyValue = ($propertyValue) ? 'TRUE' : 'FALSE';
- $propertyType = 'boolean';
- break;
- }
-
- echo $propertyValue, ' (', $propertyType, ')
';
-}
-
-?>
-
+ echo $propertyValue, ' (', $propertyType, ')
';
+ }
+ ?>
+
diff --git a/docs/Examples/Reading WorkBook Data/exampleWorkBookReader04.php b/docs/Examples/Reading WorkBook Data/exampleWorkBookReader04.php
index e3a71d34..7299e783 100644
--- a/docs/Examples/Reading WorkBook Data/exampleWorkBookReader04.php
+++ b/docs/Examples/Reading WorkBook Data/exampleWorkBookReader04.php
@@ -6,45 +6,42 @@ error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
-
?>
-
-
+
+
-PhpSpreadsheet Reading WorkBook Data Example #04
+ PhpSpreadsheet Reading WorkBook Data Example #04
-
-
+
+
-PhpSpreadsheet Reading WorkBook Data Example #04
-Get a List of the Worksheets in a WorkBook
-PhpSpreadsheet Reading WorkBook Data Example #04
+ Get a List of the Worksheets in a WorkBook
+ load($inputFileName);
-/* Create a new Reader of the type defined in $inputFileType **/
-$reader = IOFactory::createReader($inputFileType);
-/* Load $inputFileName to a PhpSpreadsheet Object **/
-$spreadsheet = $reader->load($inputFileName);
+ echo '
';
-echo '
';
+ echo 'Reading the number of Worksheets in the WorkBook
';
+ /* Use the PhpSpreadsheet object's getSheetCount() method to get a count of the number of WorkSheets in the WorkBook */
+ $sheetCount = $spreadsheet->getSheetCount();
+ echo 'There ', (($sheetCount == 1) ? 'is' : 'are'), ' ', $sheetCount, ' WorkSheet', (($sheetCount == 1) ? '' : 's'), ' in the WorkBook
';
-echo 'Reading the number of Worksheets in the WorkBook
';
-/* Use the PhpSpreadsheet object's getSheetCount() method to get a count of the number of WorkSheets in the WorkBook */
-$sheetCount = $spreadsheet->getSheetCount();
-echo 'There ',(($sheetCount == 1) ? 'is' : 'are'),' ',$sheetCount,' WorkSheet',(($sheetCount == 1) ? '' : 's'),' in the WorkBook
';
-
-echo 'Reading the names of Worksheets in the WorkBook
';
-/* Use the PhpSpreadsheet object's getSheetNames() method to get an array listing the names/titles of the WorkSheets in the WorkBook */
-$sheetNames = $spreadsheet->getSheetNames();
-foreach ($sheetNames as $sheetIndex => $sheetName) {
- echo 'WorkSheet #',$sheetIndex,' is named "',$sheetName,'"
';
-}
-
-?>
-
+ echo 'Reading the names of Worksheets in the WorkBook
';
+ /* Use the PhpSpreadsheet object's getSheetNames() method to get an array listing the names/titles of the WorkSheets in the WorkBook */
+ $sheetNames = $spreadsheet->getSheetNames();
+ foreach ($sheetNames as $sheetIndex => $sheetName) {
+ echo 'WorkSheet #', $sheetIndex, ' is named "', $sheetName, '"
';
+ }
+ ?>
+
diff --git a/docs/Examples/index.php b/docs/Examples/index.php
index a2c51879..9ff0929d 100644
--- a/docs/Examples/index.php
+++ b/docs/Examples/index.php
@@ -1,48 +1,44 @@
-
-
+
+
-PhpSpreadsheet Examples
+ PhpSpreadsheet Examples
-
-
+
+
-PhpSpreadsheet ' . pathinfo($exampleType, PATHINFO_BASENAME) . ' Examples';
-foreach ($exampleTypeList as $exampleType) {
- echo 'PhpSpreadsheet ' . pathinfo($exampleType, PATHINFO_BASENAME) . ' Examples
';
+ $exampleList = glob('./' . $exampleType . '/*.php');
- $exampleList = glob('./' . $exampleType . '/*.php');
+ foreach ($exampleList as $exampleFile) {
+ $fileData = file_get_contents($exampleFile);
- foreach ($exampleList as $exampleFile) {
- $fileData = file_get_contents($exampleFile);
+ $h1Pattern = '#(.*?)
#';
+ $h2Pattern = '#(.*?)
#';
- $h1Pattern = '#(.*?)
#';
- $h2Pattern = '#(.*?)
#';
+ if (preg_match($h1Pattern, $fileData, $out)) {
+ $h1Text = $out[1];
+ $h2Text = (preg_match($h2Pattern, $fileData, $out)) ? $out[1] : '';
- if (preg_match($h1Pattern, $fileData, $out)) {
- $h1Text = $out[1];
- $h2Text = (preg_match($h2Pattern, $fileData, $out)) ? $out[1] : '';
-
- echo '', $h1Text, '
';
- if (($h2Text > '') &&
- (pathinfo($exampleType, PATHINFO_BASENAME) != 'Calculations')) {
- echo $h2Text, '
';
+ echo '', $h1Text, '
';
+ if (($h2Text > '') &&
+ (pathinfo($exampleType, PATHINFO_BASENAME) != 'Calculations')) {
+ echo $h2Text, '
';
+ }
+ }
}
}
- }
-}
-
-?>
-
+ ?>
+
\ No newline at end of file
diff --git a/docs/topics/calculation-engine.md b/docs/topics/calculation-engine.md
index 1480e13f..94fa3a10 100644
--- a/docs/topics/calculation-engine.md
+++ b/docs/topics/calculation-engine.md
@@ -90,7 +90,7 @@ calculated values, or force recalculation in Excel2003.
### Excel functions that return a Date and Time value
Any of the Date and Time functions that return a date value in Excel can
-return either an Excel timestamp or a PHP timestamp or date object.
+return either an Excel timestamp or a PHP timestamp or `DateTime` object.
It is possible for scripts to change the data type used for returning
date values by calling the
@@ -103,9 +103,9 @@ method:
where the following constants can be used for `$returnDateType`:
-- `\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_PHP_NUMERIC`
-- `\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_PHP_OBJECT`
-- `\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_EXCEL`
+- `\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_PHP_NUMERIC`
+- `\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_PHP_OBJECT`
+- `\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_EXCEL`
The method will return a Boolean True on success, False on failure (e.g.
if an invalid value is passed in for the return date type).
@@ -117,11 +117,11 @@ method can be used to determine the current value of this setting:
$returnDateType = \PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType();
```
-The default is RETURNDATE\_PHP\_NUMERIC.
+The default is `RETURNDATE_PHP_NUMERIC`.
#### PHP Timestamps
-If RETURNDATE\_PHP\_NUMERIC is set for the Return Date Type, then any
+If `RETURNDATE_PHP_NUMERIC` is set for the Return Date Type, then any
date value returned to the calling script by any access to the Date and
Time functions in Excel will be an integer value that represents the
number of seconds from the PHP/Unix base date. The PHP/Unix base date
@@ -131,15 +131,15 @@ while a value of +3600 would be 01:00 hrs on 1st January 1970. This
gives PHP a date range of between 14th December 1901 and 19th January
2038.
-#### PHP DateTime Objects
+#### PHP `DateTime` Objects
-If the Return Date Type is set for RETURNDATE\_PHP\_NUMERIC, then any
+If the Return Date Type is set for `RETURNDATE_PHP_OBJECT`, then any
date value returned to the calling script by any access to the Date and
-Time functions in Excel will be a PHP date/time object.
+Time functions in Excel will be a PHP `DateTime` object.
#### Excel Timestamps
-If RETURNDATE\_EXCEL is set for the Return Date Type, then the returned
+If `RETURNDATE_EXCEL` is set for the Return Date Type, then the returned
date value by any access to the Date and Time functions in Excel will be
a floating point value that represents a number of days from the Excel
base date. The Excel base date is determined by which calendar Excel
@@ -157,8 +157,8 @@ Excel date values by calling the
where the following constants can be used for `$baseDate`:
-- \PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR\_WINDOWS\_1900
-- \PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR\_MAC\_1904
+- `\PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR_WINDOWS_1900`
+- `\PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR_MAC_1904`
The method will return a Boolean True on success, False on failure (e.g.
if an invalid value is passed in).
@@ -170,31 +170,31 @@ be used to determine the current value of this setting:
$baseDate = \PhpOffice\PhpSpreadsheet\Shared\Date::getExcelCalendar();
```
-The default is CALENDAR\_WINDOWS\_1900.
+The default is `CALENDAR_WINDOWS_1900`.
#### Functions that return a Date/Time Value
-- DATE
-- DATEVALUE
-- EDATE
-- EOMONTH
-- NOW
-- TIME
-- TIMEVALUE
-- TODAY
+- DATE
+- DATEVALUE
+- EDATE
+- EOMONTH
+- NOW
+- TIME
+- TIMEVALUE
+- TODAY
### Excel functions that accept Date and Time values as parameters
Date values passed in as parameters to a function can be an Excel
-timestamp or a PHP timestamp; or date object; or a string containing a
+timestamp or a PHP timestamp; or `DateTime` object; or a string containing a
date value (e.g. '1-Jan-2009'). PhpSpreadsheet will attempt to identify
their type based on the PHP datatype:
An integer numeric value will be treated as a PHP/Unix timestamp. A real
(floating point) numeric value will be treated as an Excel
-date/timestamp. Any PHP DateTime object will be treated as a DateTime
+date/timestamp. Any PHP `DateTime` object will be treated as a `DateTime`
object. Any string value (even one containing straight numeric data)
-will be converted to a date/time object for validation as a date value
+will be converted to a `DateTime` object for validation as a date value
based on the server locale settings, so passing through an ambiguous
value of '07/08/2008' will be treated as 7th August 2008 if your server
settings are UK, but as 8th July 2008 if your server settings are US.
@@ -202,7 +202,7 @@ However, if you pass through a value such as '31/12/2008' that would be
considered an error by a US-based server, but which is not ambiguous,
then PhpSpreadsheet will attempt to correct this to 31st December 2008.
If the content of the string doesn’t match any of the formats recognised
-by the php date/time object implementation of `strtotime()` (which can
+by the php `DateTime` object implementation of `strtotime()` (which can
handle a wider range of formats than the normal `strtotime()` function),
then the function will return a `#VALUE` error. However, Excel
recommends that you should always use date/timestamps for your date
@@ -213,28 +213,28 @@ The same principle applies when data is being written to Excel. Cells
containing date actual values (rather than Excel functions that return a
date value) are always written as Excel dates, converting where
necessary. If a cell formatted as a date contains an integer or
-date/time object value, then it is converted to an Excel value for
+`DateTime` object value, then it is converted to an Excel value for
writing: if a cell formatted as a date contains a real value, then no
conversion is required. Note that string values are written as strings
rather than converted to Excel date timestamp values.
#### Functions that expect a Date/Time Value
-- DATEDIF
-- DAY
-- DAYS360
-- EDATE
-- EOMONTH
-- HOUR
-- MINUTE
-- MONTH
-- NETWORKDAYS
-- SECOND
-- WEEKDAY
-- WEEKNUM
-- WORKDAY
-- YEAR
-- YEARFRAC
+- DATEDIF
+- DAY
+- DAYS360
+- EDATE
+- EOMONTH
+- HOUR
+- MINUTE
+- MONTH
+- NETWORKDAYS
+- SECOND
+- WEEKDAY
+- WEEKNUM
+- WORKDAY
+- YEAR
+- YEARFRAC
### Helper Methods
@@ -243,7 +243,7 @@ number of other methods are available in the
\PhpOffice\PhpSpreadsheet\Shared\Date class that can help when working
with dates:
-#### \PhpOffice\PhpSpreadsheet\Shared\Date::ExcelToPHP($excelDate)
+#### \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($excelDate)
Converts a date/time from an Excel date timestamp to return a PHP
serialized date/timestamp.
@@ -251,17 +251,17 @@ serialized date/timestamp.
Note that this method does not trap for Excel dates that fall outside of
the valid range for a PHP date timestamp.
-#### \PhpOffice\PhpSpreadsheet\Shared\Date::ExcelToPHPObject($excelDate)
+#### \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($excelDate)
-Converts a date from an Excel date/timestamp to return a PHP DateTime
+Converts a date from an Excel date/timestamp to return a PHP `DateTime`
object.
#### \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($PHPDate)
-Converts a PHP serialized date/timestamp or a PHP DateTime object to
+Converts a PHP serialized date/timestamp or a PHP `DateTime` object to
return an Excel date timestamp.
-#### \PhpOffice\PhpSpreadsheet\Shared\Date::FormattedPHPToExcel($year, $month, $day, $hours=0, $minutes=0, $seconds=0)
+#### \PhpOffice\PhpSpreadsheet\Shared\Date::formattedPHPToExcel($year, $month, $day, $hours=0, $minutes=0, $seconds=0)
Takes year, month and day values (and optional hour, minute and second
values) and returns an Excel date timestamp value.
@@ -979,7 +979,7 @@ Excel and in PHP.
#### DATE
-The DATE function returns an Excel timestamp or a PHP timestamp or date
+The DATE function returns an Excel timestamp or a PHP timestamp or `DateTime`
object representing the date that is referenced by the parameters.
##### Syntax
@@ -1025,7 +1025,7 @@ February 27, 2008.
**mixed** A date/time stamp that corresponds to the given date.
-This could be a PHP timestamp value (integer), a PHP date/time object,
+This could be a PHP timestamp value (integer), a PHP `DateTime` object,
or an Excel timestamp value (real), depending on the value of
\PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType().
@@ -1093,12 +1093,12 @@ variety of different intervals, such number of years, months, or days.
**date1** First Date.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
**date2** Second Date.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
**unit** The interval type to use for the calculation
@@ -1230,7 +1230,7 @@ A string, representing a date value.
**mixed** A date/time stamp that corresponds to the given date.
-This could be a PHP timestamp value (integer), a PHP date/time object,
+This could be a PHP timestamp value (integer), a PHP `DateTime` object,
or an Excel timestamp value (real), depending on the value of
\PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType().
@@ -1290,7 +1290,7 @@ $retVal = call_user_func_array(
##### Notes
-DATEVALUE uses the php date/time object implementation of `strtotime()`
+DATEVALUE uses the php `DateTime` object implementation of `strtotime()`
(which can handle a wider range of formats than the normal `strtotime()`
function), and it is also called for any date parameter passed to other
date functions (such as DATEDIF) when the parameter value is a string.
@@ -1317,7 +1317,7 @@ integer ranging from 1 to 31.
**datetime** Date.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
##### Return Value
@@ -1371,12 +1371,12 @@ accounting systems.
**date1** First Date.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
**date2** Second Date.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
**method** A boolean flag (TRUE or FALSE)
@@ -1453,7 +1453,7 @@ Excel `TRUE()` and `FALSE()` functions are used instead.
#### EDATE
-The EDATE function returns an Excel timestamp or a PHP timestamp or date
+The EDATE function returns an Excel timestamp or a PHP timestamp or `DateTime`
object representing the date that is the indicated number of months
before or after a specified date (the start\_date). Use EDATE to
calculate maturity dates or due dates that fall on the same day of the
@@ -1467,7 +1467,7 @@ month as the date of issue.
**baseDate** Start Date.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
**months** Number of months to add.
@@ -1480,7 +1480,7 @@ value yields a past date.
**mixed** A date/time stamp that corresponds to the basedate + months.
-This could be a PHP timestamp value (integer), a PHP date/time object,
+This could be a PHP timestamp value (integer), a PHP `DateTime` object,
or an Excel timestamp value (real), depending on the value of
\PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType().
@@ -1526,7 +1526,7 @@ the Analysis ToolPak.
#### EOMONTH
The EOMONTH function returns an Excel timestamp or a PHP timestamp or
-date object representing the date of the last day of the month that is
+`DateTime` object representing the date of the last day of the month that is
the indicated number of months before or after a specified date (the
start\_date). Use EOMONTH to calculate maturity dates or due dates that
fall on the last day of the month.
@@ -1539,7 +1539,7 @@ fall on the last day of the month.
**baseDate** Start Date.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
**months** Number of months to add.
@@ -1553,7 +1553,7 @@ value yields a past date.
**mixed** A date/time stamp that corresponds to the last day of basedate
+ months.
-This could be a PHP timestamp value (integer), a PHP date/time object,
+This could be a PHP timestamp value (integer), a PHP `DateTime` object,
or an Excel timestamp value (real), depending on the value of
\PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType().
@@ -1607,7 +1607,7 @@ an integer, ranging from 0 (12:00 A.M.) to 23 (11:00 P.M.).
**datetime** Time.
-An Excel date/time value, PHP date timestamp, PHP date object, or a
+An Excel date/time value, PHP date timestamp, PHP `DateTime` object, or a
date/time represented as a string.
##### Return Value
@@ -1665,7 +1665,7 @@ given as an integer, ranging from 0 to 59.
**datetime** Time.
-An Excel date/time value, PHP date timestamp, PHP date object, or a
+An Excel date/time value, PHP date timestamp, PHP `DateTime` object, or a
date/time represented as a string.
##### Return Value
@@ -1723,7 +1723,7 @@ integer ranging from 1 to 12.
**datetime** Date.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
##### Return Value
@@ -1779,12 +1779,12 @@ a specific term.
**startDate** Start Date of the period.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
**endDate** End Date of the period.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
**holidays** Optional array of Holiday dates.
@@ -1831,7 +1831,7 @@ There are no parameters for the `NOW()` function.
**mixed** A date/time stamp that corresponds to the current date and
time.
-This could be a PHP timestamp value (integer), a PHP date/time object,
+This could be a PHP timestamp value (integer), a PHP `DateTime` object,
or an Excel timestamp value (real), depending on the value of
\PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType().
@@ -1862,7 +1862,7 @@ given as an integer, ranging from 0 to 59.
**datetime** Time.
-An Excel date/time value, PHP date timestamp, PHP date object, or a
+An Excel date/time value, PHP date timestamp, PHP `DateTime` object, or a
date/time represented as a string.
##### Return Value
@@ -1934,7 +1934,7 @@ modified to return a value between 0 and 6.
**datetime** Date.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
**method** An integer flag (values 0, 1 or 2)
@@ -2012,7 +2012,7 @@ The YEAR function returns the year of a date.
**datetime** Date.
-An Excel date value, PHP date timestamp, PHP date object, or a date
+An Excel date value, PHP date timestamp, PHP `DateTime` object, or a date
represented as a string.
##### Return Value
diff --git a/src/PhpSpreadsheet/Calculation.php b/src/PhpSpreadsheet/Calculation.php
index 17556270..062e2174 100644
--- a/src/PhpSpreadsheet/Calculation.php
+++ b/src/PhpSpreadsheet/Calculation.php
@@ -13,6 +13,7 @@ use PhpOffice\PhpSpreadsheet\Calculation\LookupRef;
use PhpOffice\PhpSpreadsheet\Calculation\MathTrig;
use PhpOffice\PhpSpreadsheet\Calculation\Statistical;
use PhpOffice\PhpSpreadsheet\Calculation\TextData;
+use PhpOffice\PhpSpreadsheet\Calculation\Token\Stack;
/**
* Copyright (c) 2006 - 2016 PhpSpreadsheet.
@@ -2059,8 +2060,6 @@ class Calculation
/**
* Unset an instance of this class.
- *
- * @param Spreadsheet $spreadsheet Injected spreadsheet identifying the instance to unset
*/
public function __destruct()
{
@@ -2314,6 +2313,14 @@ class Calculation
return false;
}
+ /**
+ * @param string $fromSeparator
+ * @param string $toSeparator
+ * @param string $formula
+ * @param bool $inBraces
+ *
+ * @return string
+ */
public static function translateSeparator($fromSeparator, $toSeparator, $formula, &$inBraces)
{
$strlen = mb_strlen($formula);
@@ -2657,6 +2664,12 @@ class Calculation
return $result;
}
+ /**
+ * @param string $cellReference
+ * @param mixed $cellValue
+ *
+ * @return bool
+ */
public function getValueFromCache($cellReference, &$cellValue)
{
// Is calculation cacheing enabled?
@@ -2985,6 +2998,11 @@ class Calculation
}
}
+ /**
+ * @param string $formula
+ *
+ * @return string
+ */
private function convertMatrixReferences($formula)
{
static $matrixReplaceFrom = ['{', ';', '}'];
@@ -3073,6 +3091,13 @@ class Calculation
];
// Convert infix to postfix notation
+
+ /**
+ * @param string $formula
+ * @param Cell|null $pCell
+ *
+ * @return bool
+ */
private function _parseFormula($formula, Cell $pCell = null)
{
if (($formula = $this->convertMatrixReferences(trim($formula))) === false) {
@@ -3094,7 +3119,7 @@ class Calculation
// Start with initialisation
$index = 0;
- $stack = new Calculation\Token\Stack();
+ $stack = new Stack();
$output = [];
$expectingOperator = false; // We use this test in syntax-checking the expression to determine when a
// - is a negation or + is a positive operator rather than an operation
@@ -3401,8 +3426,11 @@ class Calculation
// evaluate postfix notation
/**
- * @param string $cellID
* @param mixed $tokens
+ * @param string|null $cellID
+ * @param Cell|null $pCell
+ *
+ * @return bool
*/
private function processTokenStack($tokens, $cellID = null, Cell $pCell = null)
{
@@ -3414,7 +3442,7 @@ class Calculation
// so we store the parent cell collection so that we can re-attach it when necessary
$pCellWorksheet = ($pCell !== null) ? $pCell->getWorksheet() : null;
$pCellParent = ($pCell !== null) ? $pCell->getParent() : null;
- $stack = new Calculation\Token\Stack();
+ $stack = new Stack();
// Loop through each token in turn
foreach ($tokens as $tokenData) {
@@ -3770,9 +3798,6 @@ class Calculation
$output = $stack->pop();
$output = $output['value'];
-// if ((is_array($output)) && (self::$returnArrayAsType != self::RETURN_ARRAY_AS_ARRAY)) {
-// return array_shift(Calculation\Functions::flattenArray($output));
-// }
return $output;
}
@@ -3814,7 +3839,17 @@ class Calculation
return true;
}
- private function executeBinaryComparisonOperation($cellID, $operand1, $operand2, $operation, &$stack, $recursingArrays = false)
+ /**
+ * @param string|null $cellID
+ * @param mixed $operand1
+ * @param mixed $operand2
+ * @param string $operation
+ * @param Stack $stack
+ * @param bool $recursingArrays
+ *
+ * @return bool
+ */
+ private function executeBinaryComparisonOperation($cellID, $operand1, $operand2, $operation, Stack &$stack, $recursingArrays = false)
{
// If we're dealing with matrix operations, we want a matrix result
if ((is_array($operand1)) || (is_array($operand2))) {
@@ -3954,7 +3989,7 @@ class Calculation
/**
* @param string $matrixFunction
- * @param mixed $cellID
+ * @param string|null $cellID
* @param mixed $operand1
* @param mixed $operand2
* @param mixed $operation
diff --git a/src/PhpSpreadsheet/Calculation/Engineering.php b/src/PhpSpreadsheet/Calculation/Engineering.php
index 582c6cbd..8136fe68 100644
--- a/src/PhpSpreadsheet/Calculation/Engineering.php
+++ b/src/PhpSpreadsheet/Calculation/Engineering.php
@@ -2293,7 +2293,7 @@ class Engineering
* Excel Function:
* IMSUM(complexNumber[,complexNumber[,...]])
*
- * @param string $complexNumbers Series of complex numbers to add
+ * @param string ...$complexNumbers Series of complex numbers to add
*
* @return string
*/
@@ -2333,7 +2333,7 @@ class Engineering
* Excel Function:
* IMPRODUCT(complexNumber[,complexNumber[,...]])
*
- * @param string $complexNumbers Series of complex numbers to multiply
+ * @param string ...$complexNumbers Series of complex numbers to multiply
*
* @return string
*/
diff --git a/src/PhpSpreadsheet/Calculation/Logical.php b/src/PhpSpreadsheet/Calculation/Logical.php
index 5492cc6e..4db10945 100644
--- a/src/PhpSpreadsheet/Calculation/Logical.php
+++ b/src/PhpSpreadsheet/Calculation/Logical.php
@@ -80,7 +80,7 @@ class Logical
*
* @category Logical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return string|bool the logical AND of the arguments
*/
diff --git a/src/PhpSpreadsheet/Calculation/MathTrig.php b/src/PhpSpreadsheet/Calculation/MathTrig.php
index 25200205..f3bcaedb 100644
--- a/src/PhpSpreadsheet/Calculation/MathTrig.php
+++ b/src/PhpSpreadsheet/Calculation/MathTrig.php
@@ -347,7 +347,7 @@ class MathTrig
*
* @category Mathematical and Trigonometric Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return int Greatest Common Divisor
*/
@@ -456,7 +456,7 @@ class MathTrig
*
* @category Mathematical and Trigonometric Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return int Lowest Common Multiplier
*/
@@ -859,7 +859,7 @@ class MathTrig
*
* @category Mathematical and Trigonometric Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -899,7 +899,7 @@ class MathTrig
*
* @category Mathematical and Trigonometric Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -1185,7 +1185,7 @@ class MathTrig
*
* @category Mathematical and Trigonometric Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -1306,7 +1306,7 @@ class MathTrig
*
* @category Mathematical and Trigonometric Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -1351,7 +1351,7 @@ class MathTrig
*
* @category Mathematical and Trigonometric Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
diff --git a/src/PhpSpreadsheet/Calculation/Statistical.php b/src/PhpSpreadsheet/Calculation/Statistical.php
index fc5cdbb3..954dfe3c 100644
--- a/src/PhpSpreadsheet/Calculation/Statistical.php
+++ b/src/PhpSpreadsheet/Calculation/Statistical.php
@@ -720,7 +720,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -771,7 +771,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -814,7 +814,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -1207,7 +1207,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return int
*/
@@ -1241,7 +1241,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return int
*/
@@ -1271,7 +1271,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return int
*/
@@ -1491,7 +1491,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -1785,7 +1785,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -1851,7 +1851,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -1967,7 +1967,7 @@ class Statistical
* kurtosis indicates a relatively peaked distribution. Negative kurtosis indicates a
* relatively flat distribution.
*
- * @param array Data Series
+ * @param array ...$args Data Series
*
* @return float
*/
@@ -2249,7 +2249,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -2285,7 +2285,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -2368,7 +2368,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -2412,7 +2412,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -2448,7 +2448,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -2568,7 +2568,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -3016,7 +3016,7 @@ class Statistical
* asymmetric tail extending toward more positive values. Negative skewness indicates a
* distribution with an asymmetric tail extending toward more negative values.
*
- * @param array Data Series
+ * @param array ...$args Data Series
*
* @return float
*/
@@ -3161,7 +3161,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -3210,7 +3210,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -3262,7 +3262,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -3309,7 +3309,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -3599,7 +3599,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -3643,7 +3643,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -3696,7 +3696,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
@@ -3741,7 +3741,7 @@ class Statistical
*
* @category Statistical Functions
*
- * @param mixed $args Data values
+ * @param mixed ...$args Data values
*
* @return float
*/
diff --git a/src/PhpSpreadsheet/Reader/Gnumeric.php b/src/PhpSpreadsheet/Reader/Gnumeric.php
index 313fcf00..e1bef14f 100644
--- a/src/PhpSpreadsheet/Reader/Gnumeric.php
+++ b/src/PhpSpreadsheet/Reader/Gnumeric.php
@@ -351,7 +351,7 @@ class Gnumeric extends BaseReader implements IReader
// Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in formula
// cells... during the load, all formulae should be correct, and we're simply bringing the worksheet
// name in line with the formula, not the reverse
- $spreadsheet->getActiveSheet()->setTitle($worksheetName, false);
+ $spreadsheet->getActiveSheet()->setTitle($worksheetName, false, false);
if ((!$this->readDataOnly) && (isset($sheet->PrintInformation))) {
if (isset($sheet->PrintInformation->Margins)) {
diff --git a/src/PhpSpreadsheet/Reader/Html.php b/src/PhpSpreadsheet/Reader/Html.php
index f77ef7a8..67dfa184 100644
--- a/src/PhpSpreadsheet/Reader/Html.php
+++ b/src/PhpSpreadsheet/Reader/Html.php
@@ -317,7 +317,7 @@ class Html extends BaseReader implements IReader
break;
case 'title':
$this->processDomElement($child, $sheet, $row, $column, $cellContent);
- $sheet->setTitle($cellContent);
+ $sheet->setTitle($cellContent, true, false);
$cellContent = '';
break;
case 'span':
diff --git a/src/PhpSpreadsheet/Reader/Ods.php b/src/PhpSpreadsheet/Reader/Ods.php
index e82d2d4e..d454a86d 100644
--- a/src/PhpSpreadsheet/Reader/Ods.php
+++ b/src/PhpSpreadsheet/Reader/Ods.php
@@ -440,7 +440,7 @@ class Ods extends BaseReader implements IReader
// Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in
// formula cells... during the load, all formulae should be correct, and we're simply
// bringing the worksheet name in line with the formula, not the reverse
- $spreadsheet->getActiveSheet()->setTitle($worksheetName, false);
+ $spreadsheet->getActiveSheet()->setTitle($worksheetName, false, false);
}
// Go through every child of table element
diff --git a/src/PhpSpreadsheet/Reader/Xls.php b/src/PhpSpreadsheet/Reader/Xls.php
index a7fe48e4..45798fbe 100644
--- a/src/PhpSpreadsheet/Reader/Xls.php
+++ b/src/PhpSpreadsheet/Reader/Xls.php
@@ -808,7 +808,7 @@ class Xls extends BaseReader implements IReader
// Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in formula
// cells... during the load, all formulae should be correct, and we're simply bringing the worksheet
// name in line with the formula, not the reverse
- $this->phpSheet->setTitle($sheet['name'], false);
+ $this->phpSheet->setTitle($sheet['name'], false, false);
$this->phpSheet->setSheetState($sheet['sheetState']);
$this->pos = $sheet['offset'];
diff --git a/src/PhpSpreadsheet/Reader/Xlsx.php b/src/PhpSpreadsheet/Reader/Xlsx.php
index 3d39016d..57af0a58 100644
--- a/src/PhpSpreadsheet/Reader/Xlsx.php
+++ b/src/PhpSpreadsheet/Reader/Xlsx.php
@@ -697,7 +697,7 @@ class Xlsx extends BaseReader implements IReader
// references in formula cells... during the load, all formulae should be correct,
// and we're simply bringing the worksheet name in line with the formula, not the
// reverse
- $docSheet->setTitle((string) $eleSheet['name'], false);
+ $docSheet->setTitle((string) $eleSheet['name'], false, false);
$fileWorksheet = $worksheets[(string) self::getArrayItem($eleSheet->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'), 'id')];
$xmlSheet = simplexml_load_string(
//~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"
@@ -766,7 +766,7 @@ class Xlsx extends BaseReader implements IReader
}
}
if (isset($xmlSheet->sheetPr) && isset($xmlSheet->sheetPr['codeName'])) {
- $docSheet->setCodeName((string) $xmlSheet->sheetPr['codeName']);
+ $docSheet->setCodeName((string) $xmlSheet->sheetPr['codeName'], false);
}
if (isset($xmlSheet->sheetPr) && isset($xmlSheet->sheetPr->outlinePr)) {
if (isset($xmlSheet->sheetPr->outlinePr['summaryRight']) &&
diff --git a/src/PhpSpreadsheet/Reader/Xml.php b/src/PhpSpreadsheet/Reader/Xml.php
index d7aff065..7c445fee 100644
--- a/src/PhpSpreadsheet/Reader/Xml.php
+++ b/src/PhpSpreadsheet/Reader/Xml.php
@@ -552,7 +552,7 @@ class Xml extends BaseReader implements IReader
// Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in
// formula cells... during the load, all formulae should be correct, and we're simply bringing
// the worksheet name in line with the formula, not the reverse
- $spreadsheet->getActiveSheet()->setTitle($worksheetName, false);
+ $spreadsheet->getActiveSheet()->setTitle($worksheetName, false, false);
}
$columnID = 'A';
diff --git a/src/PhpSpreadsheet/Shared/JAMA/EigenvalueDecomposition.php b/src/PhpSpreadsheet/Shared/JAMA/EigenvalueDecomposition.php
index 094ded83..93e9fd58 100644
--- a/src/PhpSpreadsheet/Shared/JAMA/EigenvalueDecomposition.php
+++ b/src/PhpSpreadsheet/Shared/JAMA/EigenvalueDecomposition.php
@@ -778,7 +778,7 @@ class EigenvalueDecomposition
}
}
- // end hqr2
+ // end hqr2
/**
* Constructor: Check for symmetry, then construct the eigenvalue decomposition.
diff --git a/src/PhpSpreadsheet/Shared/JAMA/SingularValueDecomposition.php b/src/PhpSpreadsheet/Shared/JAMA/SingularValueDecomposition.php
index cfd20113..9d383202 100644
--- a/src/PhpSpreadsheet/Shared/JAMA/SingularValueDecomposition.php
+++ b/src/PhpSpreadsheet/Shared/JAMA/SingularValueDecomposition.php
@@ -436,8 +436,6 @@ class SingularValueDecomposition
} // end while
}
- // end constructor
-
/**
* Return the left singular vectors.
*
diff --git a/src/PhpSpreadsheet/Worksheet.php b/src/PhpSpreadsheet/Worksheet.php
index b2278e7d..32bcf2ca 100644
--- a/src/PhpSpreadsheet/Worksheet.php
+++ b/src/PhpSpreadsheet/Worksheet.php
@@ -825,52 +825,54 @@ class Worksheet implements IComparable
* Set title.
*
* @param string $pValue String containing the dimension of this worksheet
- * @param string $updateFormulaCellReferences boolean Flag indicating whether cell references in formulae should
+ * @param bool $updateFormulaCellReferences Flag indicating whether cell references in formulae should
* be updated to reflect the new sheet name.
* This should be left as the default true, unless you are
* certain that no formula cells on any worksheet contain
* references to this worksheet
+ * @param bool $validate False to skip validation of new title. WARNING: This should only be set
+ * at parse time (by Readers), where titles can be assumed to be valid.
*
* @return Worksheet
*/
- public function setTitle($pValue, $updateFormulaCellReferences = true)
+ public function setTitle($pValue, $updateFormulaCellReferences = true, $validate = true)
{
// Is this a 'rename' or not?
if ($this->getTitle() == $pValue) {
return $this;
}
- // Syntax check
- self::checkSheetTitle($pValue);
-
// Old title
$oldTitle = $this->getTitle();
- if ($this->parent) {
- // Is there already such sheet name?
- if ($this->parent->sheetNameExists($pValue)) {
- // Use name, but append with lowest possible integer
+ if ($validate) {
+ // Syntax check
+ self::checkSheetTitle($pValue);
- if (Shared\StringHelper::countCharacters($pValue) > 29) {
- $pValue = Shared\StringHelper::substring($pValue, 0, 29);
- }
- $i = 1;
- while ($this->parent->sheetNameExists($pValue . ' ' . $i)) {
- ++$i;
- if ($i == 10) {
- if (Shared\StringHelper::countCharacters($pValue) > 28) {
- $pValue = Shared\StringHelper::substring($pValue, 0, 28);
- }
- } elseif ($i == 100) {
- if (Shared\StringHelper::countCharacters($pValue) > 27) {
- $pValue = Shared\StringHelper::substring($pValue, 0, 27);
+ if ($this->parent) {
+ // Is there already such sheet name?
+ if ($this->parent->sheetNameExists($pValue)) {
+ // Use name, but append with lowest possible integer
+
+ if (Shared\StringHelper::countCharacters($pValue) > 29) {
+ $pValue = Shared\StringHelper::substring($pValue, 0, 29);
+ }
+ $i = 1;
+ while ($this->parent->sheetNameExists($pValue . ' ' . $i)) {
+ ++$i;
+ if ($i == 10) {
+ if (Shared\StringHelper::countCharacters($pValue) > 28) {
+ $pValue = Shared\StringHelper::substring($pValue, 0, 28);
+ }
+ } elseif ($i == 100) {
+ if (Shared\StringHelper::countCharacters($pValue) > 27) {
+ $pValue = Shared\StringHelper::substring($pValue, 0, 27);
+ }
}
}
+
+ $pValue .= " $i";
}
-
- $altTitle = $pValue . ' ' . $i;
-
- return $this->setTitle($altTitle, $updateFormulaCellReferences);
}
}
@@ -1161,7 +1163,6 @@ class Worksheet implements IComparable
* @param int $pRow Numeric row coordinate of the cell
* @param mixed $pValue Value of the cell
* @param string $pDataType Explicit data type, see Cell\DataType::TYPE_*
- * @param bool $returnCell Return the worksheet (false, default) or the cell (true)
*
* @return Worksheet
*/
@@ -2976,51 +2977,55 @@ class Worksheet implements IComparable
/**
* Define the code name of the sheet.
*
- * @param null|string Same rule as Title minus space not allowed (but, like Excel, change silently space to underscore)
- * @param null|mixed $pValue
+ * @param string $pValue Same rule as Title minus space not allowed (but, like Excel, change
+ * silently space to underscore)
+ * @param bool $validate False to skip validation of new title. WARNING: This should only be set
+ * at parse time (by Readers), where titles can be assumed to be valid.
*
* @throws Exception
*
* @return objWorksheet
*/
- public function setCodeName($pValue)
+ public function setCodeName($pValue, $validate = true)
{
// Is this a 'rename' or not?
if ($this->getCodeName() == $pValue) {
return $this;
}
- $pValue = str_replace(' ', '_', $pValue); //Excel does this automatically without flinching, we are doing the same
- // Syntax check
- // throw an exception if not valid
- self::checkSheetCodeName($pValue);
- // We use the same code that setTitle to find a valid codeName else not using a space (Excel don't like) but a '_'
+ if ($validate) {
+ $pValue = str_replace(' ', '_', $pValue); //Excel does this automatically without flinching, we are doing the same
- if ($this->getParent()) {
- // Is there already such sheet name?
- if ($this->getParent()->sheetCodeNameExists($pValue)) {
- // Use name, but append with lowest possible integer
+ // Syntax check
+ // throw an exception if not valid
+ self::checkSheetCodeName($pValue);
- if (Shared\StringHelper::countCharacters($pValue) > 29) {
- $pValue = Shared\StringHelper::substring($pValue, 0, 29);
- }
- $i = 1;
- while ($this->getParent()->sheetCodeNameExists($pValue . '_' . $i)) {
- ++$i;
- if ($i == 10) {
- if (Shared\StringHelper::countCharacters($pValue) > 28) {
- $pValue = Shared\StringHelper::substring($pValue, 0, 28);
- }
- } elseif ($i == 100) {
- if (Shared\StringHelper::countCharacters($pValue) > 27) {
- $pValue = Shared\StringHelper::substring($pValue, 0, 27);
+ // We use the same code that setTitle to find a valid codeName else not using a space (Excel don't like) but a '_'
+
+ if ($this->getParent()) {
+ // Is there already such sheet name?
+ if ($this->getParent()->sheetCodeNameExists($pValue)) {
+ // Use name, but append with lowest possible integer
+
+ if (Shared\StringHelper::countCharacters($pValue) > 29) {
+ $pValue = Shared\StringHelper::substring($pValue, 0, 29);
+ }
+ $i = 1;
+ while ($this->getParent()->sheetCodeNameExists($pValue . '_' . $i)) {
+ ++$i;
+ if ($i == 10) {
+ if (Shared\StringHelper::countCharacters($pValue) > 28) {
+ $pValue = Shared\StringHelper::substring($pValue, 0, 28);
+ }
+ } elseif ($i == 100) {
+ if (Shared\StringHelper::countCharacters($pValue) > 27) {
+ $pValue = Shared\StringHelper::substring($pValue, 0, 27);
+ }
}
}
- }
- $pValue = $pValue . '_' . $i; // ok, we have a valid name
- //codeName is'nt used in formula : no need to call for an update
- //return $this->setTitle($altTitle, $updateFormulaCellReferences);
+ $pValue = $pValue . '_' . $i; // ok, we have a valid name
+ }
}
}
diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter.php b/src/PhpSpreadsheet/Worksheet/AutoFilter.php
index 88042565..c3d783da 100644
--- a/src/PhpSpreadsheet/Worksheet/AutoFilter.php
+++ b/src/PhpSpreadsheet/Worksheet/AutoFilter.php
@@ -629,6 +629,7 @@ class AutoFilter
$rules = $filterColumn->getRules();
switch ($filterColumn->getFilterType()) {
case AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER:
+ $ruleType = null;
$ruleValues = [];
// Build a list of the filter value selections
foreach ($rules as $rule) {
@@ -700,7 +701,6 @@ class AutoFilter
$ruleValues = [];
// Build a list of the filter value selections
foreach ($rules as $rule) {
- $ruleType = $rule->getRuleType();
$ruleValue = $rule->getValue();
if (!is_numeric($ruleValue)) {
// Convert to a regexp allowing for regexp reserved characters, wildcards and escaped wildcards
diff --git a/src/PhpSpreadsheet/Writer/Xls/Font.php b/src/PhpSpreadsheet/Writer/Xls/Font.php
index 84b21981..d076fdcd 100644
--- a/src/PhpSpreadsheet/Writer/Xls/Font.php
+++ b/src/PhpSpreadsheet/Writer/Xls/Font.php
@@ -84,9 +84,9 @@ class Font
$bFamily = 0; // Font family
$bCharSet = \PhpOffice\PhpSpreadsheet\Shared\Font::getCharsetFromFontName($this->font->getName()); // Character set
- $record = 0x31; // Record identifier
- $reserved = 0x00; // Reserved
- $grbit = 0x00; // Font attributes
+ $record = 0x31; // Record identifier
+ $reserved = 0x00; // Reserved
+ $grbit = 0x00; // Font attributes
if ($this->font->getItalic()) {
$grbit |= 0x02;
}
@@ -134,10 +134,10 @@ class Font
private static function mapBold($bold)
{
if ($bold) {
- return 0x2BC; // 700 = Bold font weight
+ return 0x2BC; // 700 = Bold font weight
}
- return 0x190; // 400 = Normal font weight
+ return 0x190; // 400 = Normal font weight
}
/**
diff --git a/src/PhpSpreadsheet/Writer/Xls/Worksheet.php b/src/PhpSpreadsheet/Writer/Xls/Worksheet.php
index 939b0f50..5f539650 100644
--- a/src/PhpSpreadsheet/Writer/Xls/Worksheet.php
+++ b/src/PhpSpreadsheet/Writer/Xls/Worksheet.php
@@ -1190,14 +1190,14 @@ class Worksheet extends BIFFwriter
// Pack the main data stream
$data = pack('vvvv', $row1, $row2, $col1, $col2) .
- $unknown1 .
- $link_type .
- $unknown2 .
- $up_count .
- $dir_short_len .
- $dir_short .
- $unknown3 .
- $stream_len; /*.
+ $unknown1 .
+ $link_type .
+ $unknown2 .
+ $up_count .
+ $dir_short_len .
+ $dir_short .
+ $unknown3 .
+ $stream_len; /*.
$dir_long_len .
$unknown4 .
$dir_long .
diff --git a/src/PhpSpreadsheet/Writer/Xlsx.php b/src/PhpSpreadsheet/Writer/Xlsx.php
index 93ea21db..7bcb0b33 100644
--- a/src/PhpSpreadsheet/Writer/Xlsx.php
+++ b/src/PhpSpreadsheet/Writer/Xlsx.php
@@ -159,8 +159,8 @@ class Xlsx extends BaseWriter implements IWriter
}
$hashTablesArray = ['stylesConditionalHashTable', 'fillHashTable', 'fontHashTable',
- 'bordersHashTable', 'numFmtHashTable', 'drawingHashTable',
- 'styleHashTable',
+ 'bordersHashTable', 'numFmtHashTable', 'drawingHashTable',
+ 'styleHashTable',
];
// Set HashTable variables
diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php b/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php
index f5bf2bf7..a2e1058c 100644
--- a/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php
+++ b/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php
@@ -306,7 +306,6 @@ class Worksheet extends WriterPart
}
// Selection
-// if ($pane != '') {
// Only need to write selection element if we have a split pane
// We cheat a little by over-riding the active cell selection, setting it to the split cell
$objWriter->startElement('selection');
@@ -316,7 +315,6 @@ class Worksheet extends WriterPart
$objWriter->writeAttribute('activeCell', $activeCell);
$objWriter->writeAttribute('sqref', $activeCell);
$objWriter->endElement();
-// }
$objWriter->endElement();
diff --git a/tests/PhpSpreadsheetTests/Reader/HTMLTest.php b/tests/PhpSpreadsheetTests/Reader/HTMLTest.php
index b1b51a59..ca85be9c 100644
--- a/tests/PhpSpreadsheetTests/Reader/HTMLTest.php
+++ b/tests/PhpSpreadsheetTests/Reader/HTMLTest.php
@@ -10,11 +10,7 @@ class HTMLTest extends PHPUnit_Framework_TestCase
public function testCsvWithAngleBracket()
{
$filename = __DIR__ . '/../../data/Reader/HTML/csv_with_angle_bracket.csv';
- $this->assertFalse($this->getInstance()->canRead($filename));
- }
-
- private function getInstance()
- {
- return new HTML();
+ $reader = new Html();
+ $this->assertFalse($reader->canRead($filename));
}
}
diff --git a/tests/PhpSpreadsheetTests/WorksheetTest.php b/tests/PhpSpreadsheetTests/WorksheetTest.php
new file mode 100644
index 00000000..1a7389b0
--- /dev/null
+++ b/tests/PhpSpreadsheetTests/WorksheetTest.php
@@ -0,0 +1,126 @@
+setTitle($testTitle);
+ $this->assertSame($testTitle, $worksheet->getTitle());
+ }
+
+ public function setTitleInvalidProvider()
+ {
+ return [
+ [str_repeat('a', 32), 'Maximum 31 characters allowed in sheet title.'],
+ ['invalid*title', 'Invalid character found in sheet title'],
+ ];
+ }
+
+ /**
+ * @param string $title
+ * @param string $expectMessage
+ * @dataProvider setTitleInvalidProvider
+ */
+ public function testSetTitleInvalid($title, $expectMessage)
+ {
+ // First, test setting title with validation disabled -- should be successful
+ $worksheet = new Worksheet();
+ $worksheet->setTitle($title, true, false);
+
+ // Next, test again with validation enabled -- this time we should fail
+ $worksheet = new Worksheet();
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage($expectMessage);
+ $worksheet->setTitle($title);
+ }
+
+ public function testSetTitleDuplicate()
+ {
+ // Create a Spreadsheet with three Worksheets (the first is created automatically)
+ $spreadsheet = new Spreadsheet();
+ $spreadsheet->createSheet();
+ $spreadsheet->createSheet();
+
+ // Set unique title -- should be unchanged
+ $sheet = $spreadsheet->getSheet(0);
+ $sheet->setTitle('Test Title');
+ $this->assertSame('Test Title', $sheet->getTitle());
+
+ // Set duplicate title -- should have numeric suffix appended
+ $sheet = $spreadsheet->getSheet(1);
+ $sheet->setTitle('Test Title');
+ $this->assertSame('Test Title 1', $sheet->getTitle());
+
+ // Set duplicate title with validation disabled -- should be unchanged
+ $sheet = $spreadsheet->getSheet(2);
+ $sheet->setTitle('Test Title', true, false);
+ $this->assertSame('Test Title', $sheet->getTitle());
+ }
+
+ public function testSetCodeName()
+ {
+ $testCodeName = str_repeat('a', 31);
+
+ $worksheet = new Worksheet();
+ $worksheet->setCodeName($testCodeName);
+ $this->assertSame($testCodeName, $worksheet->getCodeName());
+ }
+
+ public function setCodeNameInvalidProvider()
+ {
+ return [
+ [str_repeat('a', 32), 'Maximum 31 characters allowed in sheet code name.'],
+ ['invalid*code*name', 'Invalid character found in sheet code name'],
+ ];
+ }
+
+ /**
+ * @param string $codeName
+ * @param string $expectMessage
+ * @dataProvider setCodeNameInvalidProvider
+ */
+ public function testSetCodeNameInvalid($codeName, $expectMessage)
+ {
+ // First, test setting code name with validation disabled -- should be successful
+ $worksheet = new Worksheet();
+ $worksheet->setCodeName($codeName, false);
+
+ // Next, test again with validation enabled -- this time we should fail
+ $worksheet = new Worksheet();
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage($expectMessage);
+ $worksheet->setCodeName($codeName);
+ }
+
+ public function testSetCodeNameDuplicate()
+ {
+ // Create a Spreadsheet with three Worksheets (the first is created automatically)
+ $spreadsheet = new Spreadsheet();
+ $spreadsheet->createSheet();
+ $spreadsheet->createSheet();
+
+ // Set unique code name -- should be massaged to Snake_Case
+ $sheet = $spreadsheet->getSheet(0);
+ $sheet->setCodeName('Test Code Name');
+ $this->assertSame('Test_Code_Name', $sheet->getCodeName());
+
+ // Set duplicate code name -- should be massaged and have numeric suffix appended
+ $sheet = $spreadsheet->getSheet(1);
+ $sheet->setCodeName('Test Code Name');
+ $this->assertSame('Test_Code_Name_1', $sheet->getCodeName());
+
+ // Set duplicate code name with validation disabled -- should be unchanged, and unmassaged
+ $sheet = $spreadsheet->getSheet(2);
+ $sheet->setCodeName('Test Code Name', false);
+ $this->assertSame('Test Code Name', $sheet->getCodeName());
+ }
+}