Code highlight in docs for PhpStorm
This commit is contained in:
parent
b9a59660d0
commit
dcf3b9860d
|
@ -23,7 +23,7 @@ When you make use of any of the worksheet protection features (e.g. cell
|
||||||
range protection, prohibiting deleting rows, ...), make sure you enable
|
range protection, prohibiting deleting rows, ...), make sure you enable
|
||||||
worksheet security. This can for example be done like this:
|
worksheet security. This can for example be done like this:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getProtection()->setSheet(true);
|
$spreadsheet->getActiveSheet()->getProtection()->setSheet(true);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ topic lists some of the options to access a cell.
|
||||||
Setting a cell value by coordinate can be done using the worksheet's
|
Setting a cell value by coordinate can be done using the worksheet's
|
||||||
`setCellValue()` method.
|
`setCellValue()` method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Set cell A1 with a string value
|
// Set cell A1 with a string value
|
||||||
$spreadsheet->getActiveSheet()->setCellValue('A1', 'PhpSpreadsheet');
|
$spreadsheet->getActiveSheet()->setCellValue('A1', 'PhpSpreadsheet');
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ $spreadsheet->getActiveSheet()->setCellValue(
|
||||||
Alternatively, you can retrieve the cell object, and then call the
|
Alternatively, you can retrieve the cell object, and then call the
|
||||||
cell’s `setValue()` method:
|
cell’s `setValue()` method:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()
|
$spreadsheet->getActiveSheet()
|
||||||
->getCell('B8')
|
->getCell('B8')
|
||||||
->setValue('Some value');
|
->setValue('Some value');
|
||||||
|
@ -56,7 +56,7 @@ the cell object will still retain its data values.
|
||||||
|
|
||||||
What does this mean? Consider the following code:
|
What does this mean? Consider the following code:
|
||||||
|
|
||||||
```
|
```php
|
||||||
$spreadSheet = new Spreadsheet();
|
$spreadSheet = new Spreadsheet();
|
||||||
$workSheet = $spreadSheet->getActiveSheet();
|
$workSheet = $spreadSheet->getActiveSheet();
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ was a formula.
|
||||||
|
|
||||||
To do this, you need to "escape" the value by setting it as "quoted text".
|
To do this, you need to "escape" the value by setting it as "quoted text".
|
||||||
|
|
||||||
```
|
```php
|
||||||
// Set cell A4 with a formula
|
// Set cell A4 with a formula
|
||||||
$spreadsheet->getActiveSheet()->setCellValue(
|
$spreadsheet->getActiveSheet()->setCellValue(
|
||||||
'A4',
|
'A4',
|
||||||
|
@ -175,7 +175,7 @@ point value), and a number format mask is used to show how that value
|
||||||
should be formatted; so if we want to store a date in a cell, we need to
|
should be formatted; so if we want to store a date in a cell, we need to
|
||||||
calculate the correct Excel timestamp, and set a number format mask.
|
calculate the correct Excel timestamp, and set a number format mask.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Get the current date/time and convert to an Excel date/time
|
// Get the current date/time and convert to an Excel date/time
|
||||||
$dateTimeNow = time();
|
$dateTimeNow = time();
|
||||||
$excelDateValue = \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel( $dateTimeNow );
|
$excelDateValue = \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel( $dateTimeNow );
|
||||||
|
@ -210,7 +210,7 @@ behaviour.
|
||||||
Firstly, you can set the datatype explicitly as a string so that it is
|
Firstly, you can set the datatype explicitly as a string so that it is
|
||||||
not converted to a number.
|
not converted to a number.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Set cell A8 with a numeric value, but tell PhpSpreadsheet it should be treated as a string
|
// Set cell A8 with a numeric value, but tell PhpSpreadsheet it should be treated as a string
|
||||||
$spreadsheet->getActiveSheet()->setCellValueExplicit(
|
$spreadsheet->getActiveSheet()->setCellValueExplicit(
|
||||||
'A8',
|
'A8',
|
||||||
|
@ -222,7 +222,7 @@ $spreadsheet->getActiveSheet()->setCellValueExplicit(
|
||||||
Alternatively, you can use a number format mask to display the value
|
Alternatively, you can use a number format mask to display the value
|
||||||
with leading zeroes.
|
with leading zeroes.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Set cell A9 with a numeric value
|
// Set cell A9 with a numeric value
|
||||||
$spreadsheet->getActiveSheet()->setCellValue('A9', 1513789642);
|
$spreadsheet->getActiveSheet()->setCellValue('A9', 1513789642);
|
||||||
// Set a number format mask to display the value as 11 digits with leading zeroes
|
// Set a number format mask to display the value as 11 digits with leading zeroes
|
||||||
|
@ -236,7 +236,7 @@ $spreadsheet->getActiveSheet()->getStyle('A9')
|
||||||
With number format masking, you can even break up the digits into groups
|
With number format masking, you can even break up the digits into groups
|
||||||
to make the value more easily readable.
|
to make the value more easily readable.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Set cell A10 with a numeric value
|
// Set cell A10 with a numeric value
|
||||||
$spreadsheet->getActiveSheet()->setCellValue('A10', 1513789642);
|
$spreadsheet->getActiveSheet()->setCellValue('A10', 1513789642);
|
||||||
// Set a number format mask to display the value as 11 digits with leading zeroes
|
// Set a number format mask to display the value as 11 digits with leading zeroes
|
||||||
|
@ -259,7 +259,7 @@ writers (Xlsx and Xls).
|
||||||
It is also possible to set a range of cell values in a single call by
|
It is also possible to set a range of cell values in a single call by
|
||||||
passing an array of values to the `fromArray()` method.
|
passing an array of values to the `fromArray()` method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$arrayData = [
|
$arrayData = [
|
||||||
[NULL, 2010, 2011, 2012],
|
[NULL, 2010, 2011, 2012],
|
||||||
['Q1', 12, 15, 21],
|
['Q1', 12, 15, 21],
|
||||||
|
@ -282,7 +282,7 @@ If you pass a 2-d array, then this will be treated as a series of rows
|
||||||
and columns. A 1-d array will be treated as a single row, which is
|
and columns. A 1-d array will be treated as a single row, which is
|
||||||
particularly useful if you're fetching an array of data from a database.
|
particularly useful if you're fetching an array of data from a database.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$rowArray = ['Value1', 'Value2', 'Value3', 'Value4'];
|
$rowArray = ['Value1', 'Value2', 'Value3', 'Value4'];
|
||||||
$spreadsheet->getActiveSheet()
|
$spreadsheet->getActiveSheet()
|
||||||
->fromArray(
|
->fromArray(
|
||||||
|
@ -299,7 +299,7 @@ If you have a simple 1-d array, and want to write it as a column, then
|
||||||
the following will convert it into an appropriately structured 2-d array
|
the following will convert it into an appropriately structured 2-d array
|
||||||
that can be fed to the `fromArray()` method:
|
that can be fed to the `fromArray()` method:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$rowArray = ['Value1', 'Value2', 'Value3', 'Value4'];
|
$rowArray = ['Value1', 'Value2', 'Value3', 'Value4'];
|
||||||
$columnArray = array_chunk($rowArray, 1);
|
$columnArray = array_chunk($rowArray, 1);
|
||||||
$spreadsheet->getActiveSheet()
|
$spreadsheet->getActiveSheet()
|
||||||
|
@ -319,7 +319,7 @@ To retrieve the value of a cell, the cell should first be retrieved from
|
||||||
the worksheet using the `getCell()` method. A cell's value can be read
|
the worksheet using the `getCell()` method. A cell's value can be read
|
||||||
using the `getValue()` method.
|
using the `getValue()` method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Get the value from cell A1
|
// Get the value from cell A1
|
||||||
$cellValue = $spreadsheet->getActiveSheet()->getCell('A1')->getValue();
|
$cellValue = $spreadsheet->getActiveSheet()->getCell('A1')->getValue();
|
||||||
```
|
```
|
||||||
|
@ -331,7 +331,7 @@ value rather than the formula itself, then use the cell's
|
||||||
`getCalculatedValue()` method. This is further explained in
|
`getCalculatedValue()` method. This is further explained in
|
||||||
[the calculation engine](./calculation-engine.md).
|
[the calculation engine](./calculation-engine.md).
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Get the value from cell A4
|
// Get the value from cell A4
|
||||||
$cellValue = $spreadsheet->getActiveSheet()->getCell('A4')->getCalculatedValue();
|
$cellValue = $spreadsheet->getActiveSheet()->getCell('A4')->getCalculatedValue();
|
||||||
```
|
```
|
||||||
|
@ -340,7 +340,7 @@ Alternatively, if you want to see the value with any cell formatting
|
||||||
applied (e.g. for a human-readable date or time value), then you can use
|
applied (e.g. for a human-readable date or time value), then you can use
|
||||||
the cell's `getFormattedValue()` method.
|
the cell's `getFormattedValue()` method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Get the value from cell A6
|
// Get the value from cell A6
|
||||||
$cellValue = $spreadsheet->getActiveSheet()->getCell('A6')->getFormattedValue();
|
$cellValue = $spreadsheet->getActiveSheet()->getCell('A6')->getFormattedValue();
|
||||||
```
|
```
|
||||||
|
@ -350,7 +350,7 @@ $cellValue = $spreadsheet->getActiveSheet()->getCell('A6')->getFormattedValue();
|
||||||
Setting a cell value by coordinate can be done using the worksheet's
|
Setting a cell value by coordinate can be done using the worksheet's
|
||||||
`setCellValueByColumnAndRow()` method.
|
`setCellValueByColumnAndRow()` method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Set cell A5 with a string value
|
// Set cell A5 with a string value
|
||||||
$spreadsheet->getActiveSheet()->setCellValueByColumnAndRow(1, 5, 'PhpSpreadsheet');
|
$spreadsheet->getActiveSheet()->setCellValueByColumnAndRow(1, 5, 'PhpSpreadsheet');
|
||||||
```
|
```
|
||||||
|
@ -363,7 +363,7 @@ To retrieve the value of a cell, the cell should first be retrieved from
|
||||||
the worksheet using the `getCellByColumnAndRow()` method. A cell’s value can
|
the worksheet using the `getCellByColumnAndRow()` method. A cell’s value can
|
||||||
be read again using the following line of code:
|
be read again using the following line of code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Get the value from cell B5
|
// Get the value from cell B5
|
||||||
$cellValue = $spreadsheet->getActiveSheet()->getCellByColumnAndRow(2, 5)->getValue();
|
$cellValue = $spreadsheet->getActiveSheet()->getCellByColumnAndRow(2, 5)->getValue();
|
||||||
```
|
```
|
||||||
|
@ -371,7 +371,7 @@ $cellValue = $spreadsheet->getActiveSheet()->getCellByColumnAndRow(2, 5)->getVal
|
||||||
If you need the calculated value of a cell, use the following code. This
|
If you need the calculated value of a cell, use the following code. This
|
||||||
is further explained in [the calculation engine](./calculation-engine.md).
|
is further explained in [the calculation engine](./calculation-engine.md).
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Get the value from cell A4
|
// Get the value from cell A4
|
||||||
$cellValue = $spreadsheet->getActiveSheet()->getCellByColumnAndRow(1, 4)->getCalculatedValue();
|
$cellValue = $spreadsheet->getActiveSheet()->getCellByColumnAndRow(1, 4)->getCalculatedValue();
|
||||||
```
|
```
|
||||||
|
@ -382,7 +382,7 @@ It is also possible to retrieve a range of cell values to an array in a
|
||||||
single call using the `toArray()`, `rangeToArray()` or
|
single call using the `toArray()`, `rangeToArray()` or
|
||||||
`namedRangeToArray()` methods.
|
`namedRangeToArray()` methods.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$dataArray = $spreadsheet->getActiveSheet()
|
$dataArray = $spreadsheet->getActiveSheet()
|
||||||
->rangeToArray(
|
->rangeToArray(
|
||||||
'C3:E5', // The worksheet range that we want to retrieve
|
'C3:E5', // The worksheet range that we want to retrieve
|
||||||
|
@ -409,7 +409,7 @@ cells within a row.
|
||||||
Below is an example where we read all the values in a worksheet and
|
Below is an example where we read all the values in a worksheet and
|
||||||
display them in a table.
|
display them in a table.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
|
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
|
||||||
$reader->setReadDataOnly(TRUE);
|
$reader->setReadDataOnly(TRUE);
|
||||||
$spreadsheet = $reader->load("test.xlsx");
|
$spreadsheet = $reader->load("test.xlsx");
|
||||||
|
@ -456,7 +456,7 @@ loops.
|
||||||
Below is an example where we read all the values in a worksheet and
|
Below is an example where we read all the values in a worksheet and
|
||||||
display them in a table.
|
display them in a table.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
|
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
|
||||||
$reader->setReadDataOnly(TRUE);
|
$reader->setReadDataOnly(TRUE);
|
||||||
$spreadsheet = $reader->load("test.xlsx");
|
$spreadsheet = $reader->load("test.xlsx");
|
||||||
|
@ -482,7 +482,7 @@ echo '</table>' . PHP_EOL;
|
||||||
Alternatively, you can take advantage of PHP's "Perl-style" character
|
Alternatively, you can take advantage of PHP's "Perl-style" character
|
||||||
incrementors to loop through the cells by coordinate:
|
incrementors to loop through the cells by coordinate:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
|
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
|
||||||
$reader->setReadDataOnly(TRUE);
|
$reader->setReadDataOnly(TRUE);
|
||||||
$spreadsheet = $reader->load("test.xlsx");
|
$spreadsheet = $reader->load("test.xlsx");
|
||||||
|
@ -528,7 +528,7 @@ dates entered as strings to the correct format, also setting the cell's
|
||||||
style information. The following example demonstrates how to set the
|
style information. The following example demonstrates how to set the
|
||||||
value binder in PhpSpreadsheet:
|
value binder in PhpSpreadsheet:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
/** PhpSpreadsheet */
|
/** PhpSpreadsheet */
|
||||||
require_once 'src/Boostrap.php';
|
require_once 'src/Boostrap.php';
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ PhpSpreadsheet supports fluent interfaces in most locations. This means
|
||||||
that you can easily "chain" calls to specific methods without requiring
|
that you can easily "chain" calls to specific methods without requiring
|
||||||
a new PHP statement. For example, take the following code:
|
a new PHP statement. For example, take the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getProperties()->setCreator("Maarten Balliauw");
|
$spreadsheet->getProperties()->setCreator("Maarten Balliauw");
|
||||||
$spreadsheet->getProperties()->setLastModifiedBy("Maarten Balliauw");
|
$spreadsheet->getProperties()->setLastModifiedBy("Maarten Balliauw");
|
||||||
$spreadsheet->getProperties()->setTitle("Office 2007 XLSX Test Document");
|
$spreadsheet->getProperties()->setTitle("Office 2007 XLSX Test Document");
|
||||||
|
@ -55,7 +55,7 @@ $spreadsheet->getProperties()->setCategory("Test result file");
|
||||||
|
|
||||||
This can be rewritten as:
|
This can be rewritten as:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getProperties()
|
$spreadsheet->getProperties()
|
||||||
->setCreator("Maarten Balliauw")
|
->setCreator("Maarten Balliauw")
|
||||||
->setLastModifiedBy("Maarten Balliauw")
|
->setLastModifiedBy("Maarten Balliauw")
|
||||||
|
|
|
@ -42,7 +42,7 @@ column, such as "Equals a red cell color" or "Larger than 150".
|
||||||
|
|
||||||
To set an autoFilter on a range of cells.
|
To set an autoFilter on a range of cells.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->setAutoFilter('A1:E20');
|
$spreadsheet->getActiveSheet()->setAutoFilter('A1:E20');
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ developer to avoid such errors.
|
||||||
|
|
||||||
If you want to set the whole worksheet as an autofilter region
|
If you want to set the whole worksheet as an autofilter region
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->setAutoFilter(
|
$spreadsheet->getActiveSheet()->setAutoFilter(
|
||||||
$spreadsheet->getActiveSheet()
|
$spreadsheet->getActiveSheet()
|
||||||
->calculateWorksheetDimension()
|
->calculateWorksheetDimension()
|
||||||
|
@ -74,7 +74,7 @@ will extend this to other formats.
|
||||||
To apply a filter expression to an autoFilter range, you first need to
|
To apply a filter expression to an autoFilter range, you first need to
|
||||||
identify which column you're going to be applying this filter to.
|
identify which column you're going to be applying this filter to.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$autoFilter = $spreadsheet->getActiveSheet()->getAutoFilter();
|
$autoFilter = $spreadsheet->getActiveSheet()->getAutoFilter();
|
||||||
$columnFilter = $autoFilter->getColumn('C');
|
$columnFilter = $autoFilter->getColumn('C');
|
||||||
```
|
```
|
||||||
|
@ -114,7 +114,7 @@ To create a filter expression, we need to start by identifying the
|
||||||
filter type. In this case, we're just going to specify that this filter
|
filter type. In this case, we're just going to specify that this filter
|
||||||
is a standard filter.
|
is a standard filter.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->setFilterType(
|
$columnFilter->setFilterType(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER
|
||||||
);
|
);
|
||||||
|
@ -127,7 +127,7 @@ When creating a simple filter in PhpSpreadsheet, you only need to
|
||||||
specify the values for "checked" columns: you do this by creating a
|
specify the values for "checked" columns: you do this by creating a
|
||||||
filter rule for each value.
|
filter rule for each value.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->createRule()
|
$columnFilter->createRule()
|
||||||
->setRule(
|
->setRule(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
|
||||||
|
@ -152,7 +152,7 @@ standard filters are always treated as being joined by an OR condition.
|
||||||
|
|
||||||
If you want to create a filter to select blank cells, you would use:
|
If you want to create a filter to select blank cells, you would use:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->createRule()
|
$columnFilter->createRule()
|
||||||
->setRule(
|
->setRule(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
|
||||||
|
@ -170,7 +170,7 @@ within a year, or individual days within each month.
|
||||||
|
|
||||||
DateGroup filters are still applied as a Standard Filter type.
|
DateGroup filters are still applied as a Standard Filter type.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->setFilterType(
|
$columnFilter->setFilterType(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER
|
||||||
);
|
);
|
||||||
|
@ -181,7 +181,7 @@ for "checked" columns as an associative array of year. month, day, hour
|
||||||
minute and second. To select a year and month, you need to create a
|
minute and second. To select a year and month, you need to create a
|
||||||
DateGroup rule identifying the selected year and month:
|
DateGroup rule identifying the selected year and month:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->createRule()
|
$columnFilter->createRule()
|
||||||
->setRule(
|
->setRule(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
|
||||||
|
@ -229,7 +229,7 @@ either an AND or an OR.
|
||||||
|
|
||||||
We start by specifying a Filter type, this time a CUSTOMFILTER.
|
We start by specifying a Filter type, this time a CUSTOMFILTER.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->setFilterType(
|
$columnFilter->setFilterType(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER
|
||||||
);
|
);
|
||||||
|
@ -240,7 +240,7 @@ And then define our rules.
|
||||||
The following shows a simple wildcard filter to show all column entries
|
The following shows a simple wildcard filter to show all column entries
|
||||||
beginning with the letter `U`.
|
beginning with the letter `U`.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->createRule()
|
$columnFilter->createRule()
|
||||||
->setRule(
|
->setRule(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
|
||||||
|
@ -264,7 +264,7 @@ is the \~ itself.
|
||||||
|
|
||||||
To create a "between" condition, we need to define two rules:
|
To create a "between" condition, we need to define two rules:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->createRule()
|
$columnFilter->createRule()
|
||||||
->setRule(
|
->setRule(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL,
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL,
|
||||||
|
@ -289,7 +289,7 @@ This defined two rules, filtering numbers that are `>= -20` OR `<=
|
||||||
20`, so we also need to modify the join condition to reflect AND rather
|
20`, so we also need to modify the join condition to reflect AND rather
|
||||||
than OR.
|
than OR.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->setAndOr(
|
$columnFilter->setAndOr(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_COLUMN_ANDOR_AND
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_COLUMN_ANDOR_AND
|
||||||
);
|
);
|
||||||
|
@ -320,7 +320,7 @@ column at a time.
|
||||||
|
|
||||||
Again, we start by specifying a Filter type, this time a DYNAMICFILTER.
|
Again, we start by specifying a Filter type, this time a DYNAMICFILTER.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->setFilterType(
|
$columnFilter->setFilterType(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER
|
||||||
);
|
);
|
||||||
|
@ -330,7 +330,7 @@ When defining the rule for a dynamic filter, we don't define a value (we
|
||||||
can simply set that to NULL) but we do specify the dynamic filter
|
can simply set that to NULL) but we do specify the dynamic filter
|
||||||
category.
|
category.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->createRule()
|
$columnFilter->createRule()
|
||||||
->setRule(
|
->setRule(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
|
||||||
|
@ -420,7 +420,7 @@ column at a time.
|
||||||
|
|
||||||
We start by specifying a Filter type, this time a DYNAMICFILTER.
|
We start by specifying a Filter type, this time a DYNAMICFILTER.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->setFilterType(
|
$columnFilter->setFilterType(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER
|
||||||
);
|
);
|
||||||
|
@ -428,7 +428,7 @@ $columnFilter->setFilterType(
|
||||||
|
|
||||||
Then we create the rule:
|
Then we create the rule:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->createRule()
|
$columnFilter->createRule()
|
||||||
->setRule(
|
->setRule(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT,
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT,
|
||||||
|
@ -444,7 +444,7 @@ This will filter the Top 5 percent of values in the column.
|
||||||
|
|
||||||
To specify the lowest (bottom 2 values), we would specify a rule of:
|
To specify the lowest (bottom 2 values), we would specify a rule of:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$columnFilter->createRule()
|
$columnFilter->createRule()
|
||||||
->setRule(
|
->setRule(
|
||||||
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE,
|
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE,
|
||||||
|
@ -490,7 +490,7 @@ If you wish to execute your filter from within a script, you need to do
|
||||||
this manually. You can do this using the autofilters `showHideRows()`
|
this manually. You can do this using the autofilters `showHideRows()`
|
||||||
method.
|
method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$autoFilter = $spreadsheet->getActiveSheet()->getAutoFilter();
|
$autoFilter = $spreadsheet->getActiveSheet()->getAutoFilter();
|
||||||
$autoFilter->showHideRows();
|
$autoFilter->showHideRows();
|
||||||
```
|
```
|
||||||
|
@ -505,7 +505,7 @@ ever row, whether it matches the filter criteria or not. To selectively
|
||||||
access only the filtered rows, you need to test each row’s visibility
|
access only the filtered rows, you need to test each row’s visibility
|
||||||
settings.
|
settings.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
foreach ($spreadsheet->getActiveSheet()->getRowIterator() as $row) {
|
foreach ($spreadsheet->getActiveSheet()->getRowIterator() as $row) {
|
||||||
if ($spreadsheet->getActiveSheet()
|
if ($spreadsheet->getActiveSheet()
|
||||||
->getRowDimension($row->getRowIndex())->getVisible()) {
|
->getRowDimension($row->getRowIndex())->getVisible()) {
|
||||||
|
|
|
@ -13,7 +13,7 @@ evaluates to the sum of values in A1, A2, ..., A10.
|
||||||
To calculate a formula, you can call the cell containing the formula’s
|
To calculate a formula, you can call the cell containing the formula’s
|
||||||
method `getCalculatedValue()`, for example:
|
method `getCalculatedValue()`, for example:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getCell('E11')->getCalculatedValue();
|
$spreadsheet->getActiveSheet()->getCell('E11')->getCalculatedValue();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ You see that the formula contained in cell E11 is "SUM(E4:E9)". Now,
|
||||||
when I write the following line of code, two new product lines are
|
when I write the following line of code, two new product lines are
|
||||||
added:
|
added:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->insertNewRowBefore(7, 2);
|
$spreadsheet->getActiveSheet()->insertNewRowBefore(7, 2);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ However, there may be times when you don't want this, perhaps you've changed
|
||||||
the underlying data and need to re-evaluate the same formula with that new
|
the underlying data and need to re-evaluate the same formula with that new
|
||||||
data.
|
data.
|
||||||
|
|
||||||
```
|
```php
|
||||||
Calculation::getInstance($spreadsheet)->disableCalculationCache();
|
Calculation::getInstance($spreadsheet)->disableCalculationCache();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ Will disable calculation caching, and flush the current calculation cache.
|
||||||
|
|
||||||
If you want only to flush the cache, then you can call
|
If you want only to flush the cache, then you can call
|
||||||
|
|
||||||
```
|
```php
|
||||||
Calculation::getInstance($spreadsheet)->clearCalculationCache();
|
Calculation::getInstance($spreadsheet)->clearCalculationCache();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ date values by calling the
|
||||||
`\PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType()`
|
`\PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType()`
|
||||||
method:
|
method:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
\PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType($returnDateType);
|
\PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType($returnDateType);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ if an invalid value is passed in for the return date type).
|
||||||
The `\PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType()`
|
The `\PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType()`
|
||||||
method can be used to determine the current value of this setting:
|
method can be used to determine the current value of this setting:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$returnDateType = \PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType();
|
$returnDateType = \PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ It is possible for scripts to change the calendar used for calculating
|
||||||
Excel date values by calling the
|
Excel date values by calling the
|
||||||
`\PhpOffice\PhpSpreadsheet\Shared\Date::setExcelCalendar()` method:
|
`\PhpOffice\PhpSpreadsheet\Shared\Date::setExcelCalendar()` method:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
\PhpOffice\PhpSpreadsheet\Shared\Date::setExcelCalendar($baseDate);
|
\PhpOffice\PhpSpreadsheet\Shared\Date::setExcelCalendar($baseDate);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ if an invalid value is passed in).
|
||||||
The `\PhpOffice\PhpSpreadsheet\Shared\Date::getExcelCalendar()` method can
|
The `\PhpOffice\PhpSpreadsheet\Shared\Date::getExcelCalendar()` method can
|
||||||
be used to determine the current value of this setting:
|
be used to determine the current value of this setting:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$baseDate = \PhpOffice\PhpSpreadsheet\Shared\Date::getExcelCalendar();
|
$baseDate = \PhpOffice\PhpSpreadsheet\Shared\Date::getExcelCalendar();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -353,7 +353,7 @@ This is the statistical mean.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$database = [
|
$database = [
|
||||||
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
||||||
[ 'Apple', 18, 20, 14, 105.00 ],
|
[ 'Apple', 18, 20, 14, 105.00 ],
|
||||||
|
@ -421,7 +421,7 @@ in which you specify a condition for the column.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$database = [
|
$database = [
|
||||||
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
||||||
[ 'Apple', 18, 20, 14, 105.00 ],
|
[ 'Apple', 18, 20, 14, 105.00 ],
|
||||||
|
@ -492,7 +492,7 @@ in which you specify a condition for the column.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$database = [
|
$database = [
|
||||||
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
||||||
[ 'Apple', 18, 20, 14, 105.00 ],
|
[ 'Apple', 18, 20, 14, 105.00 ],
|
||||||
|
@ -563,7 +563,7 @@ in which you specify a condition for the column.
|
||||||
|
|
||||||
#### Examples
|
#### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$database = [
|
$database = [
|
||||||
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
||||||
[ 'Apple', 18, 20, 14, 105.00 ],
|
[ 'Apple', 18, 20, 14, 105.00 ],
|
||||||
|
@ -631,7 +631,7 @@ in which you specify a condition for the column.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$database = [
|
$database = [
|
||||||
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
||||||
[ 'Apple', 18, 20, 14, 105.00 ],
|
[ 'Apple', 18, 20, 14, 105.00 ],
|
||||||
|
@ -699,7 +699,7 @@ in which you specify a condition for the column.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$database = [
|
$database = [
|
||||||
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
||||||
[ 'Apple', 18, 20, 14, 105.00 ],
|
[ 'Apple', 18, 20, 14, 105.00 ],
|
||||||
|
@ -767,7 +767,7 @@ in which you specify a condition for the column.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$database = [
|
$database = [
|
||||||
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
||||||
[ 'Apple', 18, 20, 14, 105.00 ],
|
[ 'Apple', 18, 20, 14, 105.00 ],
|
||||||
|
@ -836,7 +836,7 @@ in which you specify a condition for the column.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$database = [
|
$database = [
|
||||||
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
||||||
[ 'Apple', 18, 20, 14, 105.00 ],
|
[ 'Apple', 18, 20, 14, 105.00 ],
|
||||||
|
@ -905,7 +905,7 @@ in which you specify a condition for the column.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$database = [
|
$database = [
|
||||||
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
||||||
[ 'Apple', 18, 20, 14, 105.00 ],
|
[ 'Apple', 18, 20, 14, 105.00 ],
|
||||||
|
@ -973,7 +973,7 @@ in which you specify a condition for the column.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$database = [
|
$database = [
|
||||||
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
[ 'Tree', 'Height', 'Age', 'Yield', 'Profit' ],
|
||||||
[ 'Apple', 18, 20, 14, 105.00 ],
|
[ 'Apple', 18, 20, 14, 105.00 ],
|
||||||
|
@ -1074,7 +1074,7 @@ or an Excel timestamp value (real), depending on the value of
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Year')
|
$worksheet->setCellValue('A1', 'Year')
|
||||||
->setCellValue('A2', 'Month')
|
->setCellValue('A2', 'Month')
|
||||||
->setCellValue('A3', 'Day');
|
->setCellValue('A3', 'Day');
|
||||||
|
@ -1089,7 +1089,7 @@ $retVal = $worksheet->getCell('D1')->getCalculatedValue();
|
||||||
// $retVal = 1230681600
|
// $retVal = 1230681600
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// We're going to be calling the same cell calculation multiple times,
|
// We're going to be calling the same cell calculation multiple times,
|
||||||
// and expecting different return values, so disable calculation cacheing
|
// and expecting different return values, so disable calculation cacheing
|
||||||
\PhpOffice\PhpSpreadsheet\Calculation\Calculation::getInstance()->setCalculationCacheEnabled(FALSE);
|
\PhpOffice\PhpSpreadsheet\Calculation\Calculation::getInstance()->setCalculationCacheEnabled(FALSE);
|
||||||
|
@ -1170,7 +1170,7 @@ the third parameter.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Year')
|
$worksheet->setCellValue('A1', 'Year')
|
||||||
->setCellValue('A2', 'Month')
|
->setCellValue('A2', 'Month')
|
||||||
->setCellValue('A3', 'Day');
|
->setCellValue('A3', 'Day');
|
||||||
|
@ -1208,7 +1208,7 @@ $retVal = $worksheet->getCell('D6')->getCalculatedValue();
|
||||||
// $retVal = 30
|
// $retVal = 30
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$date1 = 1193317015; // PHP timestamp for 25-Oct-2007
|
$date1 = 1193317015; // PHP timestamp for 25-Oct-2007
|
||||||
$date2 = 1449579415; // PHP timestamp for 8-Dec-2015
|
$date2 = 1449579415; // PHP timestamp for 8-Dec-2015
|
||||||
|
|
||||||
|
@ -1279,7 +1279,7 @@ or an Excel timestamp value (real), depending on the value of
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Date String');
|
$worksheet->setCellValue('A1', 'Date String');
|
||||||
->setCellValue('A2', '31-Dec-2008')
|
->setCellValue('A2', '31-Dec-2008')
|
||||||
->setCellValue('A3', '31/12/2008')
|
->setCellValue('A3', '31/12/2008')
|
||||||
|
@ -1301,7 +1301,7 @@ $retVal = $worksheet->getCell('B4')->getCalculatedValue();
|
||||||
// $retVal = 39813.0 for all cases
|
// $retVal = 39813.0 for all cases
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// We're going to be calling the same cell calculation multiple times,
|
// We're going to be calling the same cell calculation multiple times,
|
||||||
// and expecting different return values, so disable calculation cacheing
|
// and expecting different return values, so disable calculation cacheing
|
||||||
\PhpOffice\PhpSpreadsheet\Calculation\Calculation::getInstance()->setCalculationCacheEnabled(FALSE);
|
\PhpOffice\PhpSpreadsheet\Calculation\Calculation::getInstance()->setCalculationCacheEnabled(FALSE);
|
||||||
|
@ -1371,7 +1371,7 @@ This is an integer ranging from 1 to 31.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Date String')
|
$worksheet->setCellValue('A1', 'Date String')
|
||||||
->setCellValue('A2', '31-Dec-2008')
|
->setCellValue('A2', '31-Dec-2008')
|
||||||
->setCellValue('A3', '14-Feb-2008');
|
->setCellValue('A3', '14-Feb-2008');
|
||||||
|
@ -1386,7 +1386,7 @@ $retVal = $worksheet->getCell('B3')->getCalculatedValue();
|
||||||
// $retVal = 14
|
// $retVal = 14
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$retVal = call_user_func_array(
|
$retVal = call_user_func_array(
|
||||||
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'DAYOFMONTH'],
|
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'DAYOFMONTH'],
|
||||||
['25-Dec-2008']
|
['25-Dec-2008']
|
||||||
|
@ -1444,7 +1444,7 @@ day year.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('B1', 'Start Date')
|
$worksheet->setCellValue('B1', 'Start Date')
|
||||||
->setCellValue('C1', 'End Date')
|
->setCellValue('C1', 'End Date')
|
||||||
->setCellValue('A2', 'Year')
|
->setCellValue('A2', 'Year')
|
||||||
|
@ -1469,7 +1469,7 @@ $retVal = $worksheet->getCell('E4')->getCalculatedValue();
|
||||||
// $retVal = 1557
|
// $retVal = 1557
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$date1 = 37655.0; // Excel timestamp for 25-Oct-2007
|
$date1 = 37655.0; // Excel timestamp for 25-Oct-2007
|
||||||
$date2 = 39233.0; // Excel timestamp for 8-Dec-2015
|
$date2 = 39233.0; // Excel timestamp for 8-Dec-2015
|
||||||
|
|
||||||
|
@ -1529,7 +1529,7 @@ or an Excel timestamp value (real), depending on the value of
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Date String')
|
$worksheet->setCellValue('A1', 'Date String')
|
||||||
->setCellValue('A2', '1-Jan-2008')
|
->setCellValue('A2', '1-Jan-2008')
|
||||||
->setCellValue('A3', '29-Feb-2008');
|
->setCellValue('A3', '29-Feb-2008');
|
||||||
|
@ -1548,7 +1548,7 @@ $retVal = $worksheet->getCell('B3')->getCalculatedValue();
|
||||||
// $retVal = 39141.0 (28-Feb-2007)
|
// $retVal = 39141.0 (28-Feb-2007)
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
\PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType(
|
\PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType(
|
||||||
\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_EXCEL
|
\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_EXCEL
|
||||||
);
|
);
|
||||||
|
@ -1602,7 +1602,7 @@ or an Excel timestamp value (real), depending on the value of
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Date String')
|
$worksheet->setCellValue('A1', 'Date String')
|
||||||
->setCellValue('A2', '1-Jan-2000')
|
->setCellValue('A2', '1-Jan-2000')
|
||||||
->setCellValue('A3', '14-Feb-2009');
|
->setCellValue('A3', '14-Feb-2009');
|
||||||
|
@ -1619,7 +1619,7 @@ $retVal = $worksheet->getCell('B3')->getCalculatedValue();
|
||||||
// $retVal = 39507.0 (29-Feb-2008)
|
// $retVal = 39507.0 (29-Feb-2008)
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
\PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType(
|
\PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType(
|
||||||
\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_EXCEL
|
\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_EXCEL
|
||||||
);
|
);
|
||||||
|
@ -1661,7 +1661,7 @@ This is an integer ranging from 0 to 23.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Time String')
|
$worksheet->setCellValue('A1', 'Time String')
|
||||||
->setCellValue('A2', '31-Dec-2008 17:30')
|
->setCellValue('A2', '31-Dec-2008 17:30')
|
||||||
->setCellValue('A3', '14-Feb-2008 4:20 AM')
|
->setCellValue('A3', '14-Feb-2008 4:20 AM')
|
||||||
|
@ -1681,7 +1681,7 @@ $retVal = $worksheet->getCell('B4')->getCalculatedValue();
|
||||||
// $retVal = 16
|
// $retVal = 16
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$retVal = call_user_func_array(
|
$retVal = call_user_func_array(
|
||||||
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'HOUROFDAY'],
|
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'HOUROFDAY'],
|
||||||
['09:30']
|
['09:30']
|
||||||
|
@ -1719,7 +1719,7 @@ This is an integer ranging from 0 to 59.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Time String')
|
$worksheet->setCellValue('A1', 'Time String')
|
||||||
->setCellValue('A2', '31-Dec-2008 17:30')
|
->setCellValue('A2', '31-Dec-2008 17:30')
|
||||||
->setCellValue('A3', '14-Feb-2008 4:20 AM')
|
->setCellValue('A3', '14-Feb-2008 4:20 AM')
|
||||||
|
@ -1739,7 +1739,7 @@ $retVal = $worksheet->getCell('B4')->getCalculatedValue();
|
||||||
// $retVal = 45
|
// $retVal = 45
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$retVal = call_user_func_array(
|
$retVal = call_user_func_array(
|
||||||
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'MINUTE'],
|
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'MINUTE'],
|
||||||
['09:30']
|
['09:30']
|
||||||
|
@ -1777,7 +1777,7 @@ This is an integer ranging from 1 to 12.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Date String');
|
$worksheet->setCellValue('A1', 'Date String');
|
||||||
$worksheet->setCellValue('A2', '31-Dec-2008');
|
$worksheet->setCellValue('A2', '31-Dec-2008');
|
||||||
$worksheet->setCellValue('A3', '14-Feb-2008');
|
$worksheet->setCellValue('A3', '14-Feb-2008');
|
||||||
|
@ -1792,7 +1792,7 @@ $retVal = $worksheet->getCell('B3')->getCalculatedValue();
|
||||||
// $retVal = 2
|
// $retVal = 2
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$retVal = call_user_func_array(
|
$retVal = call_user_func_array(
|
||||||
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'MONTHOFYEAR'],
|
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'MONTHOFYEAR'],
|
||||||
['14-July-2008']
|
['14-July-2008']
|
||||||
|
@ -1847,10 +1847,10 @@ The number of working days between startDate and endDate.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Notes
|
##### Notes
|
||||||
|
@ -1880,10 +1880,10 @@ or an Excel timestamp value (real), depending on the value of
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Notes
|
##### Notes
|
||||||
|
@ -1917,7 +1917,7 @@ This is an integer ranging from 0 to 59.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Time String')
|
$worksheet->setCellValue('A1', 'Time String')
|
||||||
->setCellValue('A2', '31-Dec-2008 17:30:20')
|
->setCellValue('A2', '31-Dec-2008 17:30:20')
|
||||||
->setCellValue('A3', '14-Feb-2008 4:20 AM')
|
->setCellValue('A3', '14-Feb-2008 4:20 AM')
|
||||||
|
@ -1937,7 +1937,7 @@ $retVal = $worksheet->getCell('B4')->getCalculatedValue();
|
||||||
// $retVal = 59
|
// $retVal = 59
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$retVal = call_user_func_array(
|
$retVal = call_user_func_array(
|
||||||
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'SECOND'],
|
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'SECOND'],
|
||||||
['09:30:17']
|
['09:30:17']
|
||||||
|
@ -2002,7 +2002,7 @@ value of method.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Date String')
|
$worksheet->setCellValue('A1', 'Date String')
|
||||||
->setCellValue('A2', '31-Dec-2008')
|
->setCellValue('A2', '31-Dec-2008')
|
||||||
->setCellValue('A3', '14-Feb-2008');
|
->setCellValue('A3', '14-Feb-2008');
|
||||||
|
@ -2021,7 +2021,7 @@ $retVal = $worksheet->getCell('B4')->getCalculatedValue();
|
||||||
// $retVal = 2
|
// $retVal = 2
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$retVal = call_user_func_array(
|
$retVal = call_user_func_array(
|
||||||
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'WEEKDAY'],
|
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'WEEKDAY'],
|
||||||
['14-July-2008']
|
['14-July-2008']
|
||||||
|
@ -2066,7 +2066,7 @@ This is an integer year value.
|
||||||
|
|
||||||
##### Examples
|
##### Examples
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->setCellValue('A1', 'Date String')
|
$worksheet->setCellValue('A1', 'Date String')
|
||||||
->setCellValue('A2', '17-Jul-1982')
|
->setCellValue('A2', '17-Jul-1982')
|
||||||
->setCellValue('A3', '16-Apr-2009');
|
->setCellValue('A3', '16-Apr-2009');
|
||||||
|
@ -2081,7 +2081,7 @@ $retVal = $worksheet->getCell('B3')->getCalculatedValue();
|
||||||
// $retVal = 2009
|
// $retVal = 2009
|
||||||
```
|
```
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$retVal = call_user_func_array(
|
$retVal = call_user_func_array(
|
||||||
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'YEAR'],
|
['\PhpOffice\PhpSpreadsheet\Calculation\Functions', 'YEAR'],
|
||||||
['14-July-2001']
|
['14-July-2001']
|
||||||
|
|
|
@ -20,7 +20,7 @@ Details of the different spreadsheet formats supported, and the options
|
||||||
available to read them into a Spreadsheet object are described fully in
|
available to read them into a Spreadsheet object are described fully in
|
||||||
the [Reading Files](./reading-files.md) document.
|
the [Reading Files](./reading-files.md) document.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileName = './sampleData/example1.xls';
|
$inputFileName = './sampleData/example1.xls';
|
||||||
|
|
||||||
/** Load $inputFileName to a Spreadsheet object **/
|
/** Load $inputFileName to a Spreadsheet object **/
|
||||||
|
@ -32,7 +32,7 @@ $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);
|
||||||
If you want to create a new workbook, rather than load one from file,
|
If you want to create a new workbook, rather than load one from file,
|
||||||
then you simply need to instantiate it as a new Spreadsheet object.
|
then you simply need to instantiate it as a new Spreadsheet object.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
/** Create a new Spreadsheet Object **/
|
/** Create a new Spreadsheet Object **/
|
||||||
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
|
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
|
||||||
```
|
```
|
||||||
|
@ -53,7 +53,7 @@ then you also need to "break" these cyclic references before doing so.
|
||||||
PhpSpreadsheet provides the `disconnectWorksheets()` method for this
|
PhpSpreadsheet provides the `disconnectWorksheets()` method for this
|
||||||
purpose.
|
purpose.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->disconnectWorksheets();
|
$spreadsheet->disconnectWorksheets();
|
||||||
unset($spreadsheet);
|
unset($spreadsheet);
|
||||||
```
|
```
|
||||||
|
|
|
@ -16,7 +16,7 @@ cache usages.
|
||||||
|
|
||||||
To enable cell caching, you must provide your own implementation of cache like so:
|
To enable cell caching, you must provide your own implementation of cache like so:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$cache = new MyCustomPsr16Implementation();
|
$cache = new MyCustomPsr16Implementation();
|
||||||
|
|
||||||
\PhpOffice\PhpSpreadsheet\Settings::setCache($cache);
|
\PhpOffice\PhpSpreadsheet\Settings::setCache($cache);
|
||||||
|
|
|
@ -12,7 +12,7 @@ need to be done.
|
||||||
automatically your codebase. Assuming your files to be migrated lives
|
automatically your codebase. Assuming your files to be migrated lives
|
||||||
in `src/`, you can run the migration like so:
|
in `src/`, you can run the migration like so:
|
||||||
|
|
||||||
``` sh
|
```sh
|
||||||
composer require rector/rector --dev
|
composer require rector/rector --dev
|
||||||
vendor/bin/rector process src --set phpexcel-to-phpspreadsheet
|
vendor/bin/rector process src --set phpexcel-to-phpspreadsheet
|
||||||
composer remove rector/rector
|
composer remove rector/rector
|
||||||
|
|
|
@ -33,7 +33,7 @@ You can create a `\PhpOffice\PhpSpreadsheet\Reader\IReader` instance using
|
||||||
`\PhpOffice\PhpSpreadsheet\IOFactory` in automatic file type resolving
|
`\PhpOffice\PhpSpreadsheet\IOFactory` in automatic file type resolving
|
||||||
mode using the following code sample:
|
mode using the following code sample:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load("05featuredemo.xlsx");
|
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load("05featuredemo.xlsx");
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ If you need to set some properties on the reader, (e.g. to only read
|
||||||
data, see more about this later), then you may instead want to use this
|
data, see more about this later), then you may instead want to use this
|
||||||
variant:
|
variant:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReaderForFile("05featuredemo.xlsx");
|
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReaderForFile("05featuredemo.xlsx");
|
||||||
$reader->setReadDataOnly(true);
|
$reader->setReadDataOnly(true);
|
||||||
$reader->load("05featuredemo.xlsx");
|
$reader->load("05featuredemo.xlsx");
|
||||||
|
@ -55,7 +55,7 @@ You can create a `\PhpOffice\PhpSpreadsheet\Reader\IReader` instance using
|
||||||
`\PhpOffice\PhpSpreadsheet\IOFactory` in explicit mode using the following
|
`\PhpOffice\PhpSpreadsheet\IOFactory` in explicit mode using the following
|
||||||
code sample:
|
code sample:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader("Xlsx");
|
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader("Xlsx");
|
||||||
$spreadsheet = $reader->load("05featuredemo.xlsx");
|
$spreadsheet = $reader->load("05featuredemo.xlsx");
|
||||||
```
|
```
|
||||||
|
@ -68,7 +68,7 @@ mode.
|
||||||
You can create a `\PhpOffice\PhpSpreadsheet\Writer\IWriter` instance using
|
You can create a `\PhpOffice\PhpSpreadsheet\Writer\IWriter` instance using
|
||||||
`\PhpOffice\PhpSpreadsheet\IOFactory`:
|
`\PhpOffice\PhpSpreadsheet\IOFactory`:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, "Xlsx");
|
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, "Xlsx");
|
||||||
$writer->save("05featuredemo.xlsx");
|
$writer->save("05featuredemo.xlsx");
|
||||||
```
|
```
|
||||||
|
@ -84,7 +84,7 @@ outputting the in-memory spreadsheet to a .xlsx file.
|
||||||
|
|
||||||
You can read an .xlsx file using the following code:
|
You can read an .xlsx file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
|
||||||
$spreadsheet = $reader->load("05featuredemo.xlsx");
|
$spreadsheet = $reader->load("05featuredemo.xlsx");
|
||||||
```
|
```
|
||||||
|
@ -94,7 +94,7 @@ $spreadsheet = $reader->load("05featuredemo.xlsx");
|
||||||
You can set the option setReadDataOnly on the reader, to instruct the
|
You can set the option setReadDataOnly on the reader, to instruct the
|
||||||
reader to ignore styling, data validation, … and just read cell data:
|
reader to ignore styling, data validation, … and just read cell data:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
|
||||||
$reader->setReadDataOnly(true);
|
$reader->setReadDataOnly(true);
|
||||||
$spreadsheet = $reader->load("05featuredemo.xlsx");
|
$spreadsheet = $reader->load("05featuredemo.xlsx");
|
||||||
|
@ -105,7 +105,7 @@ $spreadsheet = $reader->load("05featuredemo.xlsx");
|
||||||
You can set the option setLoadSheetsOnly on the reader, to instruct the
|
You can set the option setLoadSheetsOnly on the reader, to instruct the
|
||||||
reader to only load the sheets with a given name:
|
reader to only load the sheets with a given name:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
|
||||||
$reader->setLoadSheetsOnly(["Sheet 1", "My special sheet"]);
|
$reader->setLoadSheetsOnly(["Sheet 1", "My special sheet"]);
|
||||||
$spreadsheet = $reader->load("05featuredemo.xlsx");
|
$spreadsheet = $reader->load("05featuredemo.xlsx");
|
||||||
|
@ -122,7 +122,7 @@ read using the `\PhpOffice\PhpSpreadsheet\Reader\DefaultReadFilter`.
|
||||||
The following code will only read row 1 and rows 20 – 30 of any sheet in
|
The following code will only read row 1 and rows 20 – 30 of any sheet in
|
||||||
the Excel file:
|
the Excel file:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter {
|
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter {
|
||||||
|
|
||||||
public function readCell($column, $row, $worksheetName = '') {
|
public function readCell($column, $row, $worksheetName = '') {
|
||||||
|
@ -145,7 +145,7 @@ $spreadsheet = $reader->load("06largescale.xlsx");
|
||||||
|
|
||||||
You can write an .xlsx file using the following code:
|
You can write an .xlsx file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
|
||||||
$writer->save("05featuredemo.xlsx");
|
$writer->save("05featuredemo.xlsx");
|
||||||
```
|
```
|
||||||
|
@ -156,7 +156,7 @@ By default, this writer pre-calculates all formulas in the spreadsheet.
|
||||||
This can be slow on large spreadsheets, and maybe even unwanted. You can
|
This can be slow on large spreadsheets, and maybe even unwanted. You can
|
||||||
however disable formula pre-calculation:
|
however disable formula pre-calculation:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
|
||||||
$writer->setPreCalculateFormulas(false);
|
$writer->setPreCalculateFormulas(false);
|
||||||
$writer->save("05featuredemo.xlsx");
|
$writer->save("05featuredemo.xlsx");
|
||||||
|
@ -201,7 +201,7 @@ PHP.
|
||||||
|
|
||||||
You can read an .xls file using the following code:
|
You can read an .xls file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
|
||||||
$spreadsheet = $reader->load("05featuredemo.xls");
|
$spreadsheet = $reader->load("05featuredemo.xls");
|
||||||
```
|
```
|
||||||
|
@ -211,7 +211,7 @@ $spreadsheet = $reader->load("05featuredemo.xls");
|
||||||
You can set the option setReadDataOnly on the reader, to instruct the
|
You can set the option setReadDataOnly on the reader, to instruct the
|
||||||
reader to ignore styling, data validation, … and just read cell data:
|
reader to ignore styling, data validation, … and just read cell data:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
|
||||||
$reader->setReadDataOnly(true);
|
$reader->setReadDataOnly(true);
|
||||||
$spreadsheet = $reader->load("05featuredemo.xls");
|
$spreadsheet = $reader->load("05featuredemo.xls");
|
||||||
|
@ -222,7 +222,7 @@ $spreadsheet = $reader->load("05featuredemo.xls");
|
||||||
You can set the option setLoadSheetsOnly on the reader, to instruct the
|
You can set the option setLoadSheetsOnly on the reader, to instruct the
|
||||||
reader to only load the sheets with a given name:
|
reader to only load the sheets with a given name:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
|
||||||
$reader->setLoadSheetsOnly(["Sheet 1", "My special sheet"]);
|
$reader->setLoadSheetsOnly(["Sheet 1", "My special sheet"]);
|
||||||
$spreadsheet = $reader->load("05featuredemo.xls");
|
$spreadsheet = $reader->load("05featuredemo.xls");
|
||||||
|
@ -239,7 +239,7 @@ read using the `\PhpOffice\PhpSpreadsheet\Reader\DefaultReadFilter`.
|
||||||
The following code will only read row 1 and rows 20 to 30 of any sheet
|
The following code will only read row 1 and rows 20 to 30 of any sheet
|
||||||
in the Excel file:
|
in the Excel file:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter {
|
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter {
|
||||||
|
|
||||||
public function readCell($column, $row, $worksheetName = '') {
|
public function readCell($column, $row, $worksheetName = '') {
|
||||||
|
@ -262,7 +262,7 @@ $spreadsheet = $reader->load("06largescale.xls");
|
||||||
|
|
||||||
You can write an .xls file using the following code:
|
You can write an .xls file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xls($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xls($spreadsheet);
|
||||||
$writer->save("05featuredemo.xls");
|
$writer->save("05featuredemo.xls");
|
||||||
```
|
```
|
||||||
|
@ -282,7 +282,7 @@ spreadsheets via PHP.
|
||||||
|
|
||||||
You can read an Excel 2003 .xml file using the following code:
|
You can read an Excel 2003 .xml file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xml();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xml();
|
||||||
$spreadsheet = $reader->load("05featuredemo.xml");
|
$spreadsheet = $reader->load("05featuredemo.xml");
|
||||||
```
|
```
|
||||||
|
@ -298,7 +298,7 @@ read using the `\PhpOffice\PhpSpreadsheet\Reader\DefaultReadFilter`.
|
||||||
The following code will only read row 1 and rows 20 to 30 of any sheet
|
The following code will only read row 1 and rows 20 to 30 of any sheet
|
||||||
in the Excel file:
|
in the Excel file:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter {
|
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter {
|
||||||
|
|
||||||
public function readCell($column, $row, $worksheetName = '') {
|
public function readCell($column, $row, $worksheetName = '') {
|
||||||
|
@ -333,7 +333,7 @@ regarding to styling cells and handling large spreadsheets via PHP.
|
||||||
|
|
||||||
You can read an .slk file using the following code:
|
You can read an .slk file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Slk();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Slk();
|
||||||
$spreadsheet = $reader->load("05featuredemo.slk");
|
$spreadsheet = $reader->load("05featuredemo.slk");
|
||||||
```
|
```
|
||||||
|
@ -349,7 +349,7 @@ read using the `\PhpOffice\PhpSpreadsheet\Reader\DefaultReadFilter`.
|
||||||
The following code will only read row 1 and rows 20 to 30 of any sheet
|
The following code will only read row 1 and rows 20 to 30 of any sheet
|
||||||
in the SYLK file:
|
in the SYLK file:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter {
|
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter {
|
||||||
|
|
||||||
public function readCell($column, $row, $worksheetName = '') {
|
public function readCell($column, $row, $worksheetName = '') {
|
||||||
|
@ -378,7 +378,7 @@ Open Office or Libre Office Calc files.
|
||||||
|
|
||||||
You can read an .ods file using the following code:
|
You can read an .ods file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Ods();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Ods();
|
||||||
$spreadsheet = $reader->load("05featuredemo.ods");
|
$spreadsheet = $reader->load("05featuredemo.ods");
|
||||||
```
|
```
|
||||||
|
@ -394,7 +394,7 @@ read using the `\PhpOffice\PhpSpreadsheet\Reader\DefaultReadFilter`.
|
||||||
The following code will only read row 1 and rows 20 to 30 of any sheet
|
The following code will only read row 1 and rows 20 to 30 of any sheet
|
||||||
in the Calc file:
|
in the Calc file:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter {
|
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter {
|
||||||
|
|
||||||
public function readCell($column, $row, $worksheetName = '') {
|
public function readCell($column, $row, $worksheetName = '') {
|
||||||
|
@ -427,7 +427,7 @@ regarding to styling cells, number formatting, ...
|
||||||
|
|
||||||
You can read a .csv file using the following code:
|
You can read a .csv file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
|
||||||
$spreadsheet = $reader->load("sample.csv");
|
$spreadsheet = $reader->load("sample.csv");
|
||||||
```
|
```
|
||||||
|
@ -449,7 +449,7 @@ were created in Microsoft Office Excel the correct input encoding may
|
||||||
rather be Windows-1252 (CP1252). Always make sure that the input
|
rather be Windows-1252 (CP1252). Always make sure that the input
|
||||||
encoding is set appropriately.
|
encoding is set appropriately.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
|
||||||
$reader->setInputEncoding('CP1252');
|
$reader->setInputEncoding('CP1252');
|
||||||
$reader->setDelimiter(';');
|
$reader->setDelimiter(';');
|
||||||
|
@ -464,7 +464,7 @@ $spreadsheet = $reader->load("sample.csv");
|
||||||
CSV files can only contain one worksheet. Therefore, you can specify
|
CSV files can only contain one worksheet. Therefore, you can specify
|
||||||
which sheet to read from CSV:
|
which sheet to read from CSV:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader->setSheetIndex(0);
|
$reader->setSheetIndex(0);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -475,7 +475,7 @@ data into an existing `Spreadsheet` object. The following code loads a
|
||||||
CSV file into an existing `$spreadsheet` containing some sheets, and
|
CSV file into an existing `$spreadsheet` containing some sheets, and
|
||||||
imports onto the 6th sheet:
|
imports onto the 6th sheet:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
|
||||||
$reader->setDelimiter(';');
|
$reader->setDelimiter(';');
|
||||||
$reader->setEnclosure('');
|
$reader->setEnclosure('');
|
||||||
|
@ -490,7 +490,7 @@ $reader->loadIntoExisting("05featuredemo.csv", $spreadsheet);
|
||||||
|
|
||||||
You can write a .csv file using the following code:
|
You can write a .csv file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
|
||||||
$writer->save("05featuredemo.csv");
|
$writer->save("05featuredemo.csv");
|
||||||
```
|
```
|
||||||
|
@ -502,7 +502,7 @@ as a separator. You can instruct
|
||||||
`\PhpOffice\PhpSpreadsheet\Writer\Csv` some options before writing a CSV
|
`\PhpOffice\PhpSpreadsheet\Writer\Csv` some options before writing a CSV
|
||||||
file:
|
file:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
|
||||||
$writer->setDelimiter(';');
|
$writer->setDelimiter(';');
|
||||||
$writer->setEnclosure('');
|
$writer->setEnclosure('');
|
||||||
|
@ -517,7 +517,7 @@ $writer->save("05featuredemo.csv");
|
||||||
CSV files can only contain one worksheet. Therefore, you can specify
|
CSV files can only contain one worksheet. Therefore, you can specify
|
||||||
which sheet to write to CSV:
|
which sheet to write to CSV:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer->setSheetIndex(0);
|
$writer->setSheetIndex(0);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -527,7 +527,7 @@ By default, this writer pre-calculates all formulas in the spreadsheet.
|
||||||
This can be slow on large spreadsheets, and maybe even unwanted. You can
|
This can be slow on large spreadsheets, and maybe even unwanted. You can
|
||||||
however disable formula pre-calculation:
|
however disable formula pre-calculation:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
|
||||||
$writer->setPreCalculateFormulas(false);
|
$writer->setPreCalculateFormulas(false);
|
||||||
$writer->save("05featuredemo.csv");
|
$writer->save("05featuredemo.csv");
|
||||||
|
@ -542,7 +542,7 @@ it should explicitly include a BOM file header;
|
||||||
if it doesn't, Excel will not interpret those characters correctly.
|
if it doesn't, Excel will not interpret those characters correctly.
|
||||||
This can be enabled by using the following code:
|
This can be enabled by using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
|
||||||
$writer->setUseBOM(true);
|
$writer->setUseBOM(true);
|
||||||
$writer->save("05featuredemo.csv");
|
$writer->save("05featuredemo.csv");
|
||||||
|
@ -560,14 +560,14 @@ to set the characters explicitly as shown below.
|
||||||
|
|
||||||
English users will want to use this before doing the export:
|
English users will want to use this before doing the export:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
\PhpOffice\PhpSpreadsheet\Shared\StringHelper::setDecimalSeparator('.');
|
\PhpOffice\PhpSpreadsheet\Shared\StringHelper::setDecimalSeparator('.');
|
||||||
\PhpOffice\PhpSpreadsheet\Shared\StringHelper::setThousandsSeparator(',');
|
\PhpOffice\PhpSpreadsheet\Shared\StringHelper::setThousandsSeparator(',');
|
||||||
```
|
```
|
||||||
|
|
||||||
German users will want to use the opposite values.
|
German users will want to use the opposite values.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
\PhpOffice\PhpSpreadsheet\Shared\StringHelper::setDecimalSeparator(',');
|
\PhpOffice\PhpSpreadsheet\Shared\StringHelper::setDecimalSeparator(',');
|
||||||
\PhpOffice\PhpSpreadsheet\Shared\StringHelper::setThousandsSeparator('.');
|
\PhpOffice\PhpSpreadsheet\Shared\StringHelper::setThousandsSeparator('.');
|
||||||
```
|
```
|
||||||
|
@ -592,7 +592,7 @@ regarding to styling cells, number formatting, ...
|
||||||
|
|
||||||
You can read an .html or .htm file using the following code:
|
You can read an .html or .htm file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Html();
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Html();
|
||||||
|
|
||||||
$spreadsheet = $reader->load("05featuredemo.html");
|
$spreadsheet = $reader->load("05featuredemo.html");
|
||||||
|
@ -610,7 +610,7 @@ first worksheet by default.
|
||||||
|
|
||||||
You can write a .htm file using the following code:
|
You can write a .htm file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Html($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Html($spreadsheet);
|
||||||
|
|
||||||
$writer->save("05featuredemo.htm");
|
$writer->save("05featuredemo.htm");
|
||||||
|
@ -621,7 +621,7 @@ $writer->save("05featuredemo.htm");
|
||||||
HTML files can contain one or more worksheets. If you want to write all
|
HTML files can contain one or more worksheets. If you want to write all
|
||||||
sheets into a single HTML file, use the following code:
|
sheets into a single HTML file, use the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer->writeAllSheets();
|
$writer->writeAllSheets();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -630,7 +630,7 @@ $writer->writeAllSheets();
|
||||||
HTML files can contain one or more worksheets. Therefore, you can
|
HTML files can contain one or more worksheets. Therefore, you can
|
||||||
specify which sheet to write to HTML:
|
specify which sheet to write to HTML:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer->setSheetIndex(0);
|
$writer->setSheetIndex(0);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -639,19 +639,19 @@ $writer->setSheetIndex(0);
|
||||||
There might be situations where you want to explicitly set the included
|
There might be situations where you want to explicitly set the included
|
||||||
images root. For example, instead of:
|
images root. For example, instead of:
|
||||||
|
|
||||||
``` html
|
```html
|
||||||
<img src="./images/logo.jpg">
|
<img src="./images/logo.jpg">
|
||||||
```
|
```
|
||||||
|
|
||||||
You might want to see:
|
You might want to see:
|
||||||
|
|
||||||
``` html
|
```html
|
||||||
<img src="http://www.domain.com/images/logo.jpg">
|
<img src="http://www.domain.com/images/logo.jpg">
|
||||||
```
|
```
|
||||||
|
|
||||||
You can use the following code to achieve this result:
|
You can use the following code to achieve this result:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer->setImagesRoot('http://www.example.com');
|
$writer->setImagesRoot('http://www.example.com');
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -661,7 +661,7 @@ By default, this writer pre-calculates all formulas in the spreadsheet.
|
||||||
This can be slow on large spreadsheets, and maybe even unwanted. You can
|
This can be slow on large spreadsheets, and maybe even unwanted. You can
|
||||||
however disable formula pre-calculation:
|
however disable formula pre-calculation:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Html($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Html($spreadsheet);
|
||||||
$writer->setPreCalculateFormulas(false);
|
$writer->setPreCalculateFormulas(false);
|
||||||
|
|
||||||
|
@ -686,7 +686,7 @@ Supported methods:
|
||||||
Here's an example which retrieves all parts independently and merges
|
Here's an example which retrieves all parts independently and merges
|
||||||
them into a resulting HTML page:
|
them into a resulting HTML page:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Html($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Html($spreadsheet);
|
||||||
$hdr = $writer->generateHTMLHeader();
|
$hdr = $writer->generateHTMLHeader();
|
||||||
$sty = $writer->generateStyles(false); // do not write <style> and </style>
|
$sty = $writer->generateStyles(false); // do not write <style> and </style>
|
||||||
|
@ -708,7 +708,7 @@ echo $writer->generateHTMLFooter();
|
||||||
A HTML file can be marked as UTF-8 by writing a BOM file header. This
|
A HTML file can be marked as UTF-8 by writing a BOM file header. This
|
||||||
can be enabled by using the following code:
|
can be enabled by using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Html($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Html($spreadsheet);
|
||||||
$writer->setUseBOM(true);
|
$writer->setUseBOM(true);
|
||||||
|
|
||||||
|
@ -751,7 +751,7 @@ own circumstances.
|
||||||
|
|
||||||
You can instantiate a writer with its specific name, like so:
|
You can instantiate a writer with its specific name, like so:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Mpdf');
|
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Mpdf');
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -759,7 +759,7 @@ Or you can register which writer you are using with a more generic name,
|
||||||
so you don't need to remember which library you chose, only that you want
|
so you don't need to remember which library you chose, only that you want
|
||||||
to write PDF files:
|
to write PDF files:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$class = \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf::class;
|
$class = \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf::class;
|
||||||
\PhpOffice\PhpSpreadsheet\IOFactory::registerWriter('Pdf', $class);
|
\PhpOffice\PhpSpreadsheet\IOFactory::registerWriter('Pdf', $class);
|
||||||
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Pdf');
|
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Pdf');
|
||||||
|
@ -767,7 +767,7 @@ $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Pdf')
|
||||||
|
|
||||||
Or you can instantiate directly the writer of your choice like so:
|
Or you can instantiate directly the writer of your choice like so:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
|
$writer = \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -776,7 +776,7 @@ $writer = \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
|
||||||
If you need a custom implementation, or custom configuration, of a supported
|
If you need a custom implementation, or custom configuration, of a supported
|
||||||
PDF library. You can extends the PDF library, and the PDF writer like so:
|
PDF library. You can extends the PDF library, and the PDF writer like so:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
class My_Custom_TCPDF extends TCPDF
|
class My_Custom_TCPDF extends TCPDF
|
||||||
{
|
{
|
||||||
// ...
|
// ...
|
||||||
|
@ -802,7 +802,7 @@ class My_Custom_TCPDF_Writer extends \PhpOffice\PhpSpreadsheet\Writer\Pdf\Tcpdf
|
||||||
Once you have identified the Renderer that you wish to use for PDF
|
Once you have identified the Renderer that you wish to use for PDF
|
||||||
generation, you can write a .pdf file using the following code:
|
generation, you can write a .pdf file using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
|
||||||
$writer->save("05featuredemo.pdf");
|
$writer->save("05featuredemo.pdf");
|
||||||
```
|
```
|
||||||
|
@ -815,7 +815,7 @@ first worksheet by default.
|
||||||
PDF files can contain one or more worksheets. If you want to write all
|
PDF files can contain one or more worksheets. If you want to write all
|
||||||
sheets into a single PDF file, use the following code:
|
sheets into a single PDF file, use the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer->writeAllSheets();
|
$writer->writeAllSheets();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -824,7 +824,7 @@ $writer->writeAllSheets();
|
||||||
PDF files can contain one or more worksheets. Therefore, you can specify
|
PDF files can contain one or more worksheets. Therefore, you can specify
|
||||||
which sheet to write to PDF:
|
which sheet to write to PDF:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer->setSheetIndex(0);
|
$writer->setSheetIndex(0);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -834,7 +834,7 @@ By default, this writer pre-calculates all formulas in the spreadsheet.
|
||||||
This can be slow on large spreadsheets, and maybe even unwanted. You can
|
This can be slow on large spreadsheets, and maybe even unwanted. You can
|
||||||
however disable formula pre-calculation:
|
however disable formula pre-calculation:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
|
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
|
||||||
$writer->setPreCalculateFormulas(false);
|
$writer->setPreCalculateFormulas(false);
|
||||||
|
|
||||||
|
@ -856,7 +856,7 @@ page setup properties, headers etc.
|
||||||
Here is an example how to open a template file, fill in a couple of
|
Here is an example how to open a template file, fill in a couple of
|
||||||
fields and save it again:
|
fields and save it again:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('template.xlsx');
|
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('template.xlsx');
|
||||||
|
|
||||||
$worksheet = $spreadsheet->getActiveSheet();
|
$worksheet = $spreadsheet->getActiveSheet();
|
||||||
|
|
|
@ -22,7 +22,7 @@ The simplest way to load a workbook file is to let PhpSpreadsheet's IO
|
||||||
Factory identify the file type and load it, calling the static `load()`
|
Factory identify the file type and load it, calling the static `load()`
|
||||||
method of the `\PhpOffice\PhpSpreadsheet\IOFactory` class.
|
method of the `\PhpOffice\PhpSpreadsheet\IOFactory` class.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileName = './sampleData/example1.xls';
|
$inputFileName = './sampleData/example1.xls';
|
||||||
|
|
||||||
/** Load $inputFileName to a Spreadsheet Object **/
|
/** Load $inputFileName to a Spreadsheet Object **/
|
||||||
|
@ -59,7 +59,7 @@ supported filetype by name. However, you may get unpredictable results
|
||||||
if the file isn't of the right type (e.g. it is a CSV with an extension
|
if the file isn't of the right type (e.g. it is a CSV with an extension
|
||||||
of .xls), although this type of exception should normally be trapped.
|
of .xls), although this type of exception should normally be trapped.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileName = './sampleData/example1.xls';
|
$inputFileName = './sampleData/example1.xls';
|
||||||
|
|
||||||
/** Create a new Xls Reader **/
|
/** Create a new Xls Reader **/
|
||||||
|
@ -81,7 +81,7 @@ Alternatively, you can use the IO Factory's `createReader()` method to
|
||||||
instantiate the reader object for you, simply telling it the file type
|
instantiate the reader object for you, simply telling it the file type
|
||||||
of the reader that you want instantiating.
|
of the reader that you want instantiating.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileType = 'Xls';
|
$inputFileType = 'Xls';
|
||||||
// $inputFileType = 'Xlsx';
|
// $inputFileType = 'Xlsx';
|
||||||
// $inputFileType = 'Xml';
|
// $inputFileType = 'Xml';
|
||||||
|
@ -104,7 +104,7 @@ If you're uncertain of the filetype, you can use the `IOFactory::identify()`
|
||||||
method to identify the reader that you need, before using the
|
method to identify the reader that you need, before using the
|
||||||
`createReader()` method to instantiate the reader object.
|
`createReader()` method to instantiate the reader object.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileName = './sampleData/example1.xls';
|
$inputFileName = './sampleData/example1.xls';
|
||||||
|
|
||||||
/** Identify the type of $inputFileName **/
|
/** Identify the type of $inputFileName **/
|
||||||
|
@ -131,7 +131,7 @@ need any of the cell formatting information, then you can set the reader
|
||||||
to read only the data values and any formulae from each cell using the
|
to read only the data values and any formulae from each cell using the
|
||||||
`setReadDataOnly()` method.
|
`setReadDataOnly()` method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileType = 'Xls';
|
$inputFileType = 'Xls';
|
||||||
$inputFileName = './sampleData/example1.xls';
|
$inputFileName = './sampleData/example1.xls';
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ in reading.
|
||||||
To read a single sheet, you can pass that sheet name as a parameter to
|
To read a single sheet, you can pass that sheet name as a parameter to
|
||||||
the `setLoadSheetsOnly()` method.
|
the `setLoadSheetsOnly()` method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileType = 'Xls';
|
$inputFileType = 'Xls';
|
||||||
$inputFileName = './sampleData/example1.xls';
|
$inputFileName = './sampleData/example1.xls';
|
||||||
$sheetname = 'Data Sheet #2';
|
$sheetname = 'Data Sheet #2';
|
||||||
|
@ -195,7 +195,7 @@ for a working example of this code.
|
||||||
If you want to read more than just a single sheet, you can pass a list
|
If you want to read more than just a single sheet, you can pass a list
|
||||||
of sheet names as an array parameter to the `setLoadSheetsOnly()` method.
|
of sheet names as an array parameter to the `setLoadSheetsOnly()` method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileType = 'Xls';
|
$inputFileType = 'Xls';
|
||||||
$inputFileName = './sampleData/example1.xls';
|
$inputFileName = './sampleData/example1.xls';
|
||||||
$sheetnames = ['Data Sheet #1','Data Sheet #3'];
|
$sheetnames = ['Data Sheet #1','Data Sheet #3'];
|
||||||
|
@ -214,7 +214,7 @@ for a working example of this code.
|
||||||
To reset this option to the default, you can call the `setLoadAllSheets()`
|
To reset this option to the default, you can call the `setLoadAllSheets()`
|
||||||
method.
|
method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileType = 'Xls';
|
$inputFileType = 'Xls';
|
||||||
$inputFileName = './sampleData/example1.xls';
|
$inputFileName = './sampleData/example1.xls';
|
||||||
|
|
||||||
|
@ -248,7 +248,7 @@ should be read by the loader. A read filter must implement the
|
||||||
whether a workbook cell identified by those arguments should be read or
|
whether a workbook cell identified by those arguments should be read or
|
||||||
not.
|
not.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileType = 'Xls';
|
$inputFileType = 'Xls';
|
||||||
$inputFileName = './sampleData/example1.xls';
|
$inputFileName = './sampleData/example1.xls';
|
||||||
$sheetname = 'Data Sheet #3';
|
$sheetname = 'Data Sheet #3';
|
||||||
|
@ -286,7 +286,7 @@ a very specific circumstance (when you only want cells in the range
|
||||||
A1:E7 from your worksheet. A generic Read Filter would probably be more
|
A1:E7 from your worksheet. A generic Read Filter would probably be more
|
||||||
useful:
|
useful:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
/** Define a Read Filter class implementing \PhpOffice\PhpSpreadsheet\Reader\IReadFilter */
|
/** Define a Read Filter class implementing \PhpOffice\PhpSpreadsheet\Reader\IReadFilter */
|
||||||
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter
|
class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter
|
||||||
{
|
{
|
||||||
|
@ -324,7 +324,7 @@ to read and process a large workbook in "chunks": an example of this
|
||||||
usage might be when transferring data from an Excel worksheet to a
|
usage might be when transferring data from an Excel worksheet to a
|
||||||
database.
|
database.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileType = 'Xls';
|
$inputFileType = 'Xls';
|
||||||
$inputFileName = './sampleData/example2.xls';
|
$inputFileName = './sampleData/example2.xls';
|
||||||
|
|
||||||
|
@ -393,7 +393,7 @@ the `setSheetIndex()` method of the `$reader`, then use the
|
||||||
`loadIntoExisting()` method rather than the `load()` method to actually read
|
`loadIntoExisting()` method rather than the `load()` method to actually read
|
||||||
the file into that worksheet.
|
the file into that worksheet.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileType = 'Csv';
|
$inputFileType = 'Csv';
|
||||||
$inputFileNames = [
|
$inputFileNames = [
|
||||||
'./sampleData/example1.csv',
|
'./sampleData/example1.csv',
|
||||||
|
@ -452,7 +452,7 @@ Class that we defined in [the above section](#reading-only-specific-columns-and-
|
||||||
and the `setSheetIndex()` method of the `$reader`, we can split the CSV
|
and the `setSheetIndex()` method of the `$reader`, we can split the CSV
|
||||||
file across several individual worksheets.
|
file across several individual worksheets.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileType = 'Csv';
|
$inputFileType = 'Csv';
|
||||||
$inputFileName = './sampleData/example2.csv';
|
$inputFileName = './sampleData/example2.csv';
|
||||||
|
|
||||||
|
@ -523,7 +523,7 @@ cannot auto-detect, it will default to the comma. If this does not fit your
|
||||||
use-case, you can manually specify a separator by using the `setDelimiter()`
|
use-case, you can manually specify a separator by using the `setDelimiter()`
|
||||||
method.
|
method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileType = 'Csv';
|
$inputFileType = 'Csv';
|
||||||
$inputFileName = './sampleData/example1.tsv';
|
$inputFileName = './sampleData/example1.tsv';
|
||||||
|
|
||||||
|
@ -585,7 +585,7 @@ it encountered a hyperlink, or HTML markup within a CSV file.
|
||||||
So using a Value Binder allows a great deal more flexibility in the
|
So using a Value Binder allows a great deal more flexibility in the
|
||||||
loader logic when reading unformatted text files.
|
loader logic when reading unformatted text files.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
/** Tell PhpSpreadsheet that we want to use the Advanced Value Binder **/
|
/** Tell PhpSpreadsheet that we want to use the Advanced Value Binder **/
|
||||||
\PhpOffice\PhpSpreadsheet\Cell\Cell::setValueBinder( new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder() );
|
\PhpOffice\PhpSpreadsheet\Cell\Cell::setValueBinder( new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder() );
|
||||||
|
|
||||||
|
@ -619,7 +619,7 @@ manner.
|
||||||
The PhpSpreadsheet Readers throw a
|
The PhpSpreadsheet Readers throw a
|
||||||
`\PhpOffice\PhpSpreadsheet\Reader\Exception`.
|
`\PhpOffice\PhpSpreadsheet\Reader\Exception`.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$inputFileName = './sampleData/example-1.xls';
|
$inputFileName = './sampleData/example-1.xls';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -646,7 +646,7 @@ whole file.
|
||||||
The `listWorksheetNames()` method returns a simple array listing each
|
The `listWorksheetNames()` method returns a simple array listing each
|
||||||
worksheet name within the workbook:
|
worksheet name within the workbook:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
|
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
|
||||||
|
|
||||||
$worksheetNames = $reader->listWorksheetNames($inputFileName);
|
$worksheetNames = $reader->listWorksheetNames($inputFileName);
|
||||||
|
@ -667,7 +667,7 @@ for a working example of this code.
|
||||||
The `listWorksheetInfo()` method returns a nested array, with each entry
|
The `listWorksheetInfo()` method returns a nested array, with each entry
|
||||||
listing the name and dimensions for a worksheet:
|
listing the name and dimensions for a worksheet:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
|
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
|
||||||
|
|
||||||
$worksheetData = $reader->listWorksheetInfo($inputFileName);
|
$worksheetData = $reader->listWorksheetInfo($inputFileName);
|
||||||
|
|
|
@ -20,7 +20,7 @@ metadata to search for a specific document in its document lists.
|
||||||
|
|
||||||
Setting spreadsheet metadata is done as follows:
|
Setting spreadsheet metadata is done as follows:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getProperties()
|
$spreadsheet->getProperties()
|
||||||
->setCreator("Maarten Balliauw")
|
->setCreator("Maarten Balliauw")
|
||||||
->setLastModifiedBy("Maarten Balliauw")
|
->setLastModifiedBy("Maarten Balliauw")
|
||||||
|
@ -38,13 +38,13 @@ $spreadsheet->getProperties()
|
||||||
The following line of code sets the active sheet index to the first
|
The following line of code sets the active sheet index to the first
|
||||||
sheet:
|
sheet:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->setActiveSheetIndex(0);
|
$spreadsheet->setActiveSheetIndex(0);
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also set the active sheet by its name/title
|
You can also set the active sheet by its name/title
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->setActiveSheetIndexByName('DataSheet')
|
$spreadsheet->setActiveSheetIndexByName('DataSheet')
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ UST.
|
||||||
Writing a date value in a cell consists of 2 lines of code. Select the
|
Writing a date value in a cell consists of 2 lines of code. Select the
|
||||||
method that suits you the best. Here are some examples:
|
method that suits you the best. Here are some examples:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
|
|
||||||
// MySQL-like timestamp '2008-12-31' or date string
|
// MySQL-like timestamp '2008-12-31' or date string
|
||||||
\PhpOffice\PhpSpreadsheet\Cell\Cell::setValueBinder( new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder() );
|
\PhpOffice\PhpSpreadsheet\Cell\Cell::setValueBinder( new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder() );
|
||||||
|
@ -136,14 +136,14 @@ The following line of code writes the formula
|
||||||
formula must start with `=` to make PhpSpreadsheet recognise this as a
|
formula must start with `=` to make PhpSpreadsheet recognise this as a
|
||||||
formula.
|
formula.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->setCellValue('B8','=IF(C4>500,"profit","loss")');
|
$spreadsheet->getActiveSheet()->setCellValue('B8','=IF(C4>500,"profit","loss")');
|
||||||
```
|
```
|
||||||
|
|
||||||
If you want to write a string beginning with an `=` character to a
|
If you want to write a string beginning with an `=` character to a
|
||||||
cell, then you should use the `setCellValueExplicit()` method.
|
cell, then you should use the `setCellValueExplicit()` method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()
|
$spreadsheet->getActiveSheet()
|
||||||
->setCellValueExplicit(
|
->setCellValueExplicit(
|
||||||
'B8',
|
'B8',
|
||||||
|
@ -154,14 +154,14 @@ $spreadsheet->getActiveSheet()
|
||||||
|
|
||||||
A cell's formula can be read again using the following line of code:
|
A cell's formula can be read again using the following line of code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$formula = $spreadsheet->getActiveSheet()->getCell('B8')->getValue();
|
$formula = $spreadsheet->getActiveSheet()->getCell('B8')->getValue();
|
||||||
```
|
```
|
||||||
|
|
||||||
If you need the calculated value of a cell, use the following code. This
|
If you need the calculated value of a cell, use the following code. This
|
||||||
is further explained in [the calculation engine](./calculation-engine.md).
|
is further explained in [the calculation engine](./calculation-engine.md).
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$value = $spreadsheet->getActiveSheet()->getCell('B8')->getCalculatedValue();
|
$value = $spreadsheet->getActiveSheet()->getCell('B8')->getCalculatedValue();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -171,7 +171,7 @@ Some localisation elements have been included in PhpSpreadsheet. You can
|
||||||
set a locale by changing the settings. To set the locale to Russian you
|
set a locale by changing the settings. To set the locale to Russian you
|
||||||
would use:
|
would use:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$locale = 'ru';
|
$locale = 'ru';
|
||||||
$validLocale = \PhpOffice\PhpSpreadsheet\Settings::setLocale($locale);
|
$validLocale = \PhpOffice\PhpSpreadsheet\Settings::setLocale($locale);
|
||||||
if (!$validLocale) {
|
if (!$validLocale) {
|
||||||
|
@ -185,7 +185,7 @@ will return an error, and English settings will be used throughout.
|
||||||
Once you have set a locale, you can translate a formula from its
|
Once you have set a locale, you can translate a formula from its
|
||||||
internal English coding.
|
internal English coding.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$formula = $spreadsheet->getActiveSheet()->getCell('B8')->getValue();
|
$formula = $spreadsheet->getActiveSheet()->getCell('B8')->getValue();
|
||||||
$translatedFormula = \PhpOffice\PhpSpreadsheet\Calculation\Calculation::getInstance()->_translateFormulaToLocale($formula);
|
$translatedFormula = \PhpOffice\PhpSpreadsheet\Calculation\Calculation::getInstance()->_translateFormulaToLocale($formula);
|
||||||
```
|
```
|
||||||
|
@ -194,7 +194,7 @@ You can also create a formula using the function names and argument
|
||||||
separators appropriate to the defined locale; then translate it to
|
separators appropriate to the defined locale; then translate it to
|
||||||
English before setting the cell value:
|
English before setting the cell value:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$formula = '=ДНЕЙ360(ДАТА(2010;2;5);ДАТА(2010;12;31);ИСТИНА)';
|
$formula = '=ДНЕЙ360(ДАТА(2010;2;5);ДАТА(2010;12;31);ИСТИНА)';
|
||||||
$internalFormula = \PhpOffice\PhpSpreadsheet\Calculation\Calculation::getInstance()->translateFormulaToEnglish($formula);
|
$internalFormula = \PhpOffice\PhpSpreadsheet\Calculation\Calculation::getInstance()->translateFormulaToEnglish($formula);
|
||||||
$spreadsheet->getActiveSheet()->setCellValue('B8',$internalFormula);
|
$spreadsheet->getActiveSheet()->setCellValue('B8',$internalFormula);
|
||||||
|
@ -232,7 +232,7 @@ the cell.
|
||||||
|
|
||||||
Here is how to achieve this in PhpSpreadsheet:
|
Here is how to achieve this in PhpSpreadsheet:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getCell('A1')->setValue("hello\nworld");
|
$spreadsheet->getActiveSheet()->getCell('A1')->setValue("hello\nworld");
|
||||||
$spreadsheet->getActiveSheet()->getStyle('A1')->getAlignment()->setWrapText(true);
|
$spreadsheet->getActiveSheet()->getStyle('A1')->getAlignment()->setWrapText(true);
|
||||||
```
|
```
|
||||||
|
@ -247,7 +247,7 @@ AdvancedValuebinder.php automatically turns on "wrap text" for the cell
|
||||||
when it sees a newline character in a string that you are inserting in a
|
when it sees a newline character in a string that you are inserting in a
|
||||||
cell. Just like Microsoft Office Excel. Try this:
|
cell. Just like Microsoft Office Excel. Try this:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
\PhpOffice\PhpSpreadsheet\Cell\Cell::setValueBinder( new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder() );
|
\PhpOffice\PhpSpreadsheet\Cell\Cell::setValueBinder( new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder() );
|
||||||
|
|
||||||
$spreadsheet->getActiveSheet()->getCell('A1')->setValue("hello\nworld");
|
$spreadsheet->getActiveSheet()->getCell('A1')->setValue("hello\nworld");
|
||||||
|
@ -261,7 +261,7 @@ You can set a cell's datatype explicitly by using the cell's
|
||||||
setValueExplicit method, or the setCellValueExplicit method of a
|
setValueExplicit method, or the setCellValueExplicit method of a
|
||||||
worksheet. Here's an example:
|
worksheet. Here's an example:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getCell('A1')
|
$spreadsheet->getActiveSheet()->getCell('A1')
|
||||||
->setValueExplicit(
|
->setValueExplicit(
|
||||||
'25',
|
'25',
|
||||||
|
@ -273,7 +273,7 @@ $spreadsheet->getActiveSheet()->getCell('A1')
|
||||||
|
|
||||||
You can make a cell a clickable URL by setting its hyperlink property:
|
You can make a cell a clickable URL by setting its hyperlink property:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');
|
$spreadsheet->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');
|
||||||
$spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('https://www.example.com');
|
$spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('https://www.example.com');
|
||||||
```
|
```
|
||||||
|
@ -281,7 +281,7 @@ $spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('https://
|
||||||
If you want to make a hyperlink to another worksheet/cell, use the
|
If you want to make a hyperlink to another worksheet/cell, use the
|
||||||
following code:
|
following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');
|
$spreadsheet->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');
|
||||||
$spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl("sheet://'Sheetname'!A1");
|
$spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl("sheet://'Sheetname'!A1");
|
||||||
```
|
```
|
||||||
|
@ -293,7 +293,7 @@ $spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl("sheet://
|
||||||
Setting a worksheet's page orientation and size can be done using the
|
Setting a worksheet's page orientation and size can be done using the
|
||||||
following lines of code:
|
following lines of code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getPageSetup()
|
$spreadsheet->getActiveSheet()->getPageSetup()
|
||||||
->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE);
|
->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE);
|
||||||
$spreadsheet->getActiveSheet()->getPageSetup()
|
$spreadsheet->getActiveSheet()->getPageSetup()
|
||||||
|
@ -324,7 +324,7 @@ setFitToHeight(...) | 1 | setFitToPage(TRUE) | value 0 mean
|
||||||
|
|
||||||
Here is how to fit to 1 page wide by infinite pages tall:
|
Here is how to fit to 1 page wide by infinite pages tall:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getPageSetup()->setFitToWidth(1);
|
$spreadsheet->getActiveSheet()->getPageSetup()->setFitToWidth(1);
|
||||||
$spreadsheet->getActiveSheet()->getPageSetup()->setFitToHeight(0);
|
$spreadsheet->getActiveSheet()->getPageSetup()->setFitToHeight(0);
|
||||||
```
|
```
|
||||||
|
@ -340,7 +340,7 @@ the initial values.
|
||||||
|
|
||||||
To set page margins for a worksheet, use this code:
|
To set page margins for a worksheet, use this code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getPageMargins()->setTop(1);
|
$spreadsheet->getActiveSheet()->getPageMargins()->setTop(1);
|
||||||
$spreadsheet->getActiveSheet()->getPageMargins()->setRight(0.75);
|
$spreadsheet->getActiveSheet()->getPageMargins()->setRight(0.75);
|
||||||
$spreadsheet->getActiveSheet()->getPageMargins()->setLeft(0.75);
|
$spreadsheet->getActiveSheet()->getPageMargins()->setLeft(0.75);
|
||||||
|
@ -356,7 +356,7 @@ Note that the margin values are specified in inches.
|
||||||
To center a page horizontally/vertically, you can use the following
|
To center a page horizontally/vertically, you can use the following
|
||||||
code:
|
code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getPageSetup()->setHorizontalCentered(true);
|
$spreadsheet->getActiveSheet()->getPageSetup()->setHorizontalCentered(true);
|
||||||
$spreadsheet->getActiveSheet()->getPageSetup()->setVerticalCentered(false);
|
$spreadsheet->getActiveSheet()->getPageSetup()->setVerticalCentered(false);
|
||||||
```
|
```
|
||||||
|
@ -366,7 +366,7 @@ $spreadsheet->getActiveSheet()->getPageSetup()->setVerticalCentered(false);
|
||||||
Setting a worksheet's print header and footer can be done using the
|
Setting a worksheet's print header and footer can be done using the
|
||||||
following lines of code:
|
following lines of code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getHeaderFooter()
|
$spreadsheet->getActiveSheet()->getHeaderFooter()
|
||||||
->setOddHeader('&C&HPlease treat this document as confidential!');
|
->setOddHeader('&C&HPlease treat this document as confidential!');
|
||||||
$spreadsheet->getActiveSheet()->getHeaderFooter()
|
$spreadsheet->getActiveSheet()->getHeaderFooter()
|
||||||
|
@ -460,13 +460,13 @@ $spreadsheet->getActiveSheet()->getHeaderFooter()->addImage($drawing, \PhpOffice
|
||||||
To set a print break, use the following code, which sets a row break on
|
To set a print break, use the following code, which sets a row break on
|
||||||
row 10.
|
row 10.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->setBreak('A10', \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::BREAK_ROW);
|
$spreadsheet->getActiveSheet()->setBreak('A10', \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::BREAK_ROW);
|
||||||
```
|
```
|
||||||
|
|
||||||
The following line of code sets a print break on column D:
|
The following line of code sets a print break on column D:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->setBreak('D10', \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::BREAK_COLUMN);
|
$spreadsheet->getActiveSheet()->setBreak('D10', \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::BREAK_COLUMN);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -484,7 +484,7 @@ PhpSpreadsheet can repeat specific rows/cells at top/left of a page. The
|
||||||
following code is an example of how to repeat row 1 to 5 on each printed
|
following code is an example of how to repeat row 1 to 5 on each printed
|
||||||
page of a specific worksheet:
|
page of a specific worksheet:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 5);
|
$spreadsheet->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 5);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -492,13 +492,13 @@ $spreadsheet->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEn
|
||||||
|
|
||||||
To specify a worksheet's printing area, use the following code:
|
To specify a worksheet's printing area, use the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getPageSetup()->setPrintArea('A1:E5');
|
$spreadsheet->getActiveSheet()->getPageSetup()->setPrintArea('A1:E5');
|
||||||
```
|
```
|
||||||
|
|
||||||
There can also be multiple printing areas in a single worksheet:
|
There can also be multiple printing areas in a single worksheet:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getPageSetup()->setPrintArea('A1:E5,G4:M20');
|
$spreadsheet->getActiveSheet()->getPageSetup()->setPrintArea('A1:E5,G4:M20');
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -511,7 +511,7 @@ For example, one can set the foreground colour of a cell to red, aligned
|
||||||
to the right, and the border to black and thick border style. Let's do
|
to the right, and the border to black and thick border style. Let's do
|
||||||
that on cell B2:
|
that on cell B2:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getStyle('B2')
|
$spreadsheet->getActiveSheet()->getStyle('B2')
|
||||||
->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED);
|
->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED);
|
||||||
$spreadsheet->getActiveSheet()->getStyle('B2')
|
$spreadsheet->getActiveSheet()->getStyle('B2')
|
||||||
|
@ -533,7 +533,7 @@ $spreadsheet->getActiveSheet()->getStyle('B2')
|
||||||
`getStyle()` also accepts a cell range as a parameter. For example, you
|
`getStyle()` also accepts a cell range as a parameter. For example, you
|
||||||
can set a red background color on a range of cells:
|
can set a red background color on a range of cells:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getStyle('B3:B7')->getFill()
|
$spreadsheet->getActiveSheet()->getStyle('B3:B7')->getFill()
|
||||||
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
|
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
|
||||||
->getStartColor()->setARGB('FFFF0000');
|
->getStartColor()->setARGB('FFFF0000');
|
||||||
|
@ -548,7 +548,7 @@ There is also an alternative manner to set styles. The following code
|
||||||
sets a cell's style to font bold, alignment right, top border thin and a
|
sets a cell's style to font bold, alignment right, top border thin and a
|
||||||
gradient fill:
|
gradient fill:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$styleArray = [
|
$styleArray = [
|
||||||
'font' => [
|
'font' => [
|
||||||
'bold' => true,
|
'bold' => true,
|
||||||
|
@ -578,7 +578,7 @@ $spreadsheet->getActiveSheet()->getStyle('A3')->applyFromArray($styleArray);
|
||||||
|
|
||||||
Or with a range of cells:
|
Or with a range of cells:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getStyle('B3:B7')->applyFromArray($styleArray);
|
$spreadsheet->getActiveSheet()->getStyle('B3:B7')->applyFromArray($styleArray);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -602,7 +602,7 @@ number format code unless you need a custom number format.
|
||||||
In PhpSpreadsheet, you can also apply various predefined number formats.
|
In PhpSpreadsheet, you can also apply various predefined number formats.
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()
|
$spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()
|
||||||
->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
||||||
```
|
```
|
||||||
|
@ -614,7 +614,7 @@ up as 1.587,20)
|
||||||
|
|
||||||
You can achieve exactly the same as the above by using this:
|
You can achieve exactly the same as the above by using this:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()
|
$spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()
|
||||||
->setFormatCode('#,##0.00');
|
->setFormatCode('#,##0.00');
|
||||||
```
|
```
|
||||||
|
@ -623,7 +623,7 @@ In Microsoft Office Excel, as well as in PhpSpreadsheet, you will have
|
||||||
to interact with raw number format codes whenever you need some special
|
to interact with raw number format codes whenever you need some special
|
||||||
custom number format. Example:
|
custom number format. Example:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()
|
$spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()
|
||||||
->setFormatCode('[Blue][>=3000]$#,##0;[Red][<0]$#,##0;$#,##0');
|
->setFormatCode('[Blue][>=3000]$#,##0;[Red][<0]$#,##0;$#,##0');
|
||||||
```
|
```
|
||||||
|
@ -631,7 +631,7 @@ $spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()
|
||||||
Another example is when you want numbers zero-padded with leading zeros
|
Another example is when you want numbers zero-padded with leading zeros
|
||||||
to a fixed length:
|
to a fixed length:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getCell('A1')->setValue(19);
|
$spreadsheet->getActiveSheet()->getCell('A1')->setValue(19);
|
||||||
$spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()
|
$spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()
|
||||||
->setFormatCode('0000'); // will show as 0019 in Excel
|
->setFormatCode('0000'); // will show as 0019 in Excel
|
||||||
|
@ -646,7 +646,7 @@ The readers shipped with PhpSpreadsheet come to the rescue. Load your
|
||||||
template workbook using e.g. Xlsx reader to reveal the number format
|
template workbook using e.g. Xlsx reader to reveal the number format
|
||||||
code. Example how read a number format code for cell A1:
|
code. Example how read a number format code for cell A1:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
|
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
|
||||||
$spreadsheet = $reader->load('template.xlsx');
|
$spreadsheet = $reader->load('template.xlsx');
|
||||||
var_dump($spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()->getFormatCode());
|
var_dump($spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()->getFormatCode());
|
||||||
|
@ -661,14 +661,14 @@ code in *xl/styles.xml*.
|
||||||
|
|
||||||
Let's set vertical alignment to the top for cells A1:D4
|
Let's set vertical alignment to the top for cells A1:D4
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getStyle('A1:D4')
|
$spreadsheet->getActiveSheet()->getStyle('A1:D4')
|
||||||
->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
|
->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
|
||||||
```
|
```
|
||||||
|
|
||||||
Here is how to achieve wrap text:
|
Here is how to achieve wrap text:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getStyle('A1:D4')
|
$spreadsheet->getActiveSheet()->getStyle('A1:D4')
|
||||||
->getAlignment()->setWrapText(true);
|
->getAlignment()->setWrapText(true);
|
||||||
```
|
```
|
||||||
|
@ -678,7 +678,7 @@ $spreadsheet->getActiveSheet()->getStyle('A1:D4')
|
||||||
It is possible to set the default style of a workbook. Let's set the
|
It is possible to set the default style of a workbook. Let's set the
|
||||||
default font to Arial size 8:
|
default font to Arial size 8:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getDefaultStyle()->getFont()->setName('Arial');
|
$spreadsheet->getDefaultStyle()->getFont()->setName('Arial');
|
||||||
$spreadsheet->getDefaultStyle()->getFont()->setSize(8);
|
$spreadsheet->getDefaultStyle()->getFont()->setSize(8);
|
||||||
```
|
```
|
||||||
|
@ -689,7 +689,7 @@ In PhpSpreadsheet it is easy to apply various borders on a rectangular
|
||||||
selection. Here is how to apply a thick red border outline around cells
|
selection. Here is how to apply a thick red border outline around cells
|
||||||
B2:G8.
|
B2:G8.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$styleArray = [
|
$styleArray = [
|
||||||
'borders' => [
|
'borders' => [
|
||||||
'outline' => [
|
'outline' => [
|
||||||
|
@ -839,7 +839,7 @@ is below zero, and to green if its value is zero or more.
|
||||||
One can set a conditional style ruleset to a cell using the following
|
One can set a conditional style ruleset to a cell using the following
|
||||||
code:
|
code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$conditional1 = new \PhpOffice\PhpSpreadsheet\Style\Conditional();
|
$conditional1 = new \PhpOffice\PhpSpreadsheet\Style\Conditional();
|
||||||
$conditional1->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS);
|
$conditional1->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS);
|
||||||
$conditional1->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHAN);
|
$conditional1->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHAN);
|
||||||
|
@ -864,7 +864,7 @@ $spreadsheet->getActiveSheet()->getStyle('B2')->setConditionalStyles($conditiona
|
||||||
If you want to copy the ruleset to other cells, you can duplicate the
|
If you want to copy the ruleset to other cells, you can duplicate the
|
||||||
style object:
|
style object:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()
|
$spreadsheet->getActiveSheet()
|
||||||
->duplicateStyle(
|
->duplicateStyle(
|
||||||
$spreadsheet->getActiveSheet()->getStyle('B2'),
|
$spreadsheet->getActiveSheet()->getStyle('B2'),
|
||||||
|
@ -877,7 +877,7 @@ $spreadsheet->getActiveSheet()
|
||||||
To add a comment to a cell, use the following code. The example below
|
To add a comment to a cell, use the following code. The example below
|
||||||
adds a comment to cell E11:
|
adds a comment to cell E11:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()
|
$spreadsheet->getActiveSheet()
|
||||||
->getComment('E11')
|
->getComment('E11')
|
||||||
->setAuthor('Mark Baker');
|
->setAuthor('Mark Baker');
|
||||||
|
@ -899,7 +899,7 @@ $spreadsheet->getActiveSheet()
|
||||||
|
|
||||||
To apply an autofilter to a range of cells, use the following code:
|
To apply an autofilter to a range of cells, use the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->setAutoFilter('A1:C9');
|
$spreadsheet->getActiveSheet()->setAutoFilter('A1:C9');
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -923,7 +923,7 @@ the internal formula.
|
||||||
worksheet or cell protection features!** This can be done using the following
|
worksheet or cell protection features!** This can be done using the following
|
||||||
code:
|
code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getProtection()->setSheet(true);
|
$spreadsheet->getActiveSheet()->getProtection()->setSheet(true);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -931,7 +931,7 @@ $spreadsheet->getActiveSheet()->getProtection()->setSheet(true);
|
||||||
|
|
||||||
An example on setting document security:
|
An example on setting document security:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$security = $spreadsheet->getSecurity();
|
$security = $spreadsheet->getSecurity();
|
||||||
$security->setLockWindows(true);
|
$security->setLockWindows(true);
|
||||||
$security->setLockStructure(true);
|
$security->setLockStructure(true);
|
||||||
|
@ -942,7 +942,7 @@ $security->setWorkbookPassword("PhpSpreadsheet");
|
||||||
|
|
||||||
An example on setting worksheet security:
|
An example on setting worksheet security:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$protection = $spreadsheet->getActiveSheet()->getProtection();
|
$protection = $spreadsheet->getActiveSheet()->getProtection();
|
||||||
$protection->setPassword('PhpSpreadsheet');
|
$protection->setPassword('PhpSpreadsheet');
|
||||||
$protection->setSheet(true);
|
$protection->setSheet(true);
|
||||||
|
@ -968,7 +968,7 @@ when setting a new password.
|
||||||
|
|
||||||
An example on setting cell security:
|
An example on setting cell security:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getStyle('B1')
|
$spreadsheet->getActiveSheet()->getStyle('B1')
|
||||||
->getProtection()
|
->getProtection()
|
||||||
->setLocked(\PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED);
|
->setLocked(\PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED);
|
||||||
|
@ -1008,7 +1008,7 @@ filter can be a range (i.e. value must be between 0 and 10), a list
|
||||||
The following piece of code only allows numbers between 10 and 20 to be
|
The following piece of code only allows numbers between 10 and 20 to be
|
||||||
entered in cell B3:
|
entered in cell B3:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$validation = $spreadsheet->getActiveSheet()->getCell('B3')
|
$validation = $spreadsheet->getActiveSheet()->getCell('B3')
|
||||||
->getDataValidation();
|
->getDataValidation();
|
||||||
$validation->setType( \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_WHOLE );
|
$validation->setType( \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_WHOLE );
|
||||||
|
@ -1027,7 +1027,7 @@ $validation->setFormula2(20);
|
||||||
The following piece of code only allows an item picked from a list of
|
The following piece of code only allows an item picked from a list of
|
||||||
data to be entered in cell B5:
|
data to be entered in cell B5:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$validation = $spreadsheet->getActiveSheet()->getCell('B5')
|
$validation = $spreadsheet->getActiveSheet()->getCell('B5')
|
||||||
->getDataValidation();
|
->getDataValidation();
|
||||||
$validation->setType( \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST );
|
$validation->setType( \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST );
|
||||||
|
@ -1057,7 +1057,7 @@ the item values themselves can contain the comma `,` character itself.
|
||||||
If you need data validation on multiple cells, one can clone the
|
If you need data validation on multiple cells, one can clone the
|
||||||
ruleset:
|
ruleset:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getCell('B8')->setDataValidation(clone $validation);
|
$spreadsheet->getActiveSheet()->getCell('B8')->setDataValidation(clone $validation);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1065,7 +1065,7 @@ $spreadsheet->getActiveSheet()->getCell('B8')->setDataValidation(clone $validati
|
||||||
|
|
||||||
A column's width can be set using the following code:
|
A column's width can be set using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(12);
|
$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(12);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1073,7 +1073,7 @@ If you want PhpSpreadsheet to perform an automatic width calculation,
|
||||||
use the following code. PhpSpreadsheet will approximate the column with
|
use the following code. PhpSpreadsheet will approximate the column with
|
||||||
to the width of the widest column value.
|
to the width of the widest column value.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
|
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1110,7 +1110,7 @@ To set a worksheet's column visibility, you can use the following code.
|
||||||
The first line explicitly shows the column C, the second line hides
|
The first line explicitly shows the column C, the second line hides
|
||||||
column D.
|
column D.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getColumnDimension('C')->setVisible(true);
|
$spreadsheet->getActiveSheet()->getColumnDimension('C')->setVisible(true);
|
||||||
$spreadsheet->getActiveSheet()->getColumnDimension('D')->setVisible(false);
|
$spreadsheet->getActiveSheet()->getColumnDimension('D')->setVisible(false);
|
||||||
```
|
```
|
||||||
|
@ -1119,7 +1119,7 @@ $spreadsheet->getActiveSheet()->getColumnDimension('D')->setVisible(false);
|
||||||
|
|
||||||
To group/outline a column, you can use the following code:
|
To group/outline a column, you can use the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1);
|
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1127,7 +1127,7 @@ You can also collapse the column. Note that you should also set the
|
||||||
column invisible, otherwise the collapse will not be visible in Excel
|
column invisible, otherwise the collapse will not be visible in Excel
|
||||||
2007.
|
2007.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setCollapsed(true);
|
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setCollapsed(true);
|
||||||
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setVisible(false);
|
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setVisible(false);
|
||||||
```
|
```
|
||||||
|
@ -1138,7 +1138,7 @@ on collapsing.
|
||||||
You can instruct PhpSpreadsheet to add a summary to the right (default),
|
You can instruct PhpSpreadsheet to add a summary to the right (default),
|
||||||
or to the left. The following code adds the summary to the left:
|
or to the left. The following code adds the summary to the left:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->setShowSummaryRight(false);
|
$spreadsheet->getActiveSheet()->setShowSummaryRight(false);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1146,7 +1146,7 @@ $spreadsheet->getActiveSheet()->setShowSummaryRight(false);
|
||||||
|
|
||||||
A row's height can be set using the following code:
|
A row's height can be set using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getRowDimension('10')->setRowHeight(100);
|
$spreadsheet->getActiveSheet()->getRowDimension('10')->setRowHeight(100);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1159,7 +1159,7 @@ of values is between 0 and 409 pts, where 0 pts is a hidden row.
|
||||||
To set a worksheet''s row visibility, you can use the following code.
|
To set a worksheet''s row visibility, you can use the following code.
|
||||||
The following example hides row number 10.
|
The following example hides row number 10.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getRowDimension('10')->setVisible(false);
|
$spreadsheet->getActiveSheet()->getRowDimension('10')->setVisible(false);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1171,21 +1171,21 @@ AutoFilter range if you save the file.
|
||||||
|
|
||||||
To group/outline a row, you can use the following code:
|
To group/outline a row, you can use the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getRowDimension('5')->setOutlineLevel(1);
|
$spreadsheet->getActiveSheet()->getRowDimension('5')->setOutlineLevel(1);
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also collapse the row. Note that you should also set the row
|
You can also collapse the row. Note that you should also set the row
|
||||||
invisible, otherwise the collapse will not be visible in Excel 2007.
|
invisible, otherwise the collapse will not be visible in Excel 2007.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getRowDimension('5')->setCollapsed(true);
|
$spreadsheet->getActiveSheet()->getRowDimension('5')->setCollapsed(true);
|
||||||
$spreadsheet->getActiveSheet()->getRowDimension('5')->setVisible(false);
|
$spreadsheet->getActiveSheet()->getRowDimension('5')->setVisible(false);
|
||||||
```
|
```
|
||||||
|
|
||||||
Here's an example which collapses rows 50 to 80:
|
Here's an example which collapses rows 50 to 80:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
for ($i = 51; $i <= 80; $i++) {
|
for ($i = 51; $i <= 80; $i++) {
|
||||||
$spreadsheet->getActiveSheet()->setCellValue('A' . $i, "FName $i");
|
$spreadsheet->getActiveSheet()->setCellValue('A' . $i, "FName $i");
|
||||||
$spreadsheet->getActiveSheet()->setCellValue('B' . $i, "LName $i");
|
$spreadsheet->getActiveSheet()->setCellValue('B' . $i, "LName $i");
|
||||||
|
@ -1202,7 +1202,7 @@ $spreadsheet->getActiveSheet()->getRowDimension(81)->setCollapsed(true);
|
||||||
You can instruct PhpSpreadsheet to add a summary below the collapsible
|
You can instruct PhpSpreadsheet to add a summary below the collapsible
|
||||||
rows (default), or above. The following code adds the summary above:
|
rows (default), or above. The following code adds the summary above:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->setShowSummaryBelow(false);
|
$spreadsheet->getActiveSheet()->setShowSummaryBelow(false);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1212,13 +1212,13 @@ If you have a big piece of data you want to display in a worksheet, you
|
||||||
can merge two or more cells together, to become one cell. This can be
|
can merge two or more cells together, to become one cell. This can be
|
||||||
done using the following code:
|
done using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->mergeCells('A18:E22');
|
$spreadsheet->getActiveSheet()->mergeCells('A18:E22');
|
||||||
```
|
```
|
||||||
|
|
||||||
Removing a merge can be done using the unmergeCells method:
|
Removing a merge can be done using the unmergeCells method:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->unmergeCells('A18:E22');
|
$spreadsheet->getActiveSheet()->unmergeCells('A18:E22');
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1227,7 +1227,7 @@ $spreadsheet->getActiveSheet()->unmergeCells('A18:E22');
|
||||||
You can insert/remove rows/columns at a specific position. The following
|
You can insert/remove rows/columns at a specific position. The following
|
||||||
code inserts 2 new rows, right before row 7:
|
code inserts 2 new rows, right before row 7:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->insertNewRowBefore(7, 2);
|
$spreadsheet->getActiveSheet()->insertNewRowBefore(7, 2);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1238,7 +1238,7 @@ to a worksheet. Therefore, you must first instantiate a new
|
||||||
`\PhpOffice\PhpSpreadsheet\Worksheet\Drawing`, and assign its properties a
|
`\PhpOffice\PhpSpreadsheet\Worksheet\Drawing`, and assign its properties a
|
||||||
meaningful value:
|
meaningful value:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
|
$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
|
||||||
$drawing->setName('Logo');
|
$drawing->setName('Logo');
|
||||||
$drawing->setDescription('Logo');
|
$drawing->setDescription('Logo');
|
||||||
|
@ -1250,13 +1250,13 @@ To add the above drawing to the worksheet, use the following snippet of
|
||||||
code. PhpSpreadsheet creates the link between the drawing and the
|
code. PhpSpreadsheet creates the link between the drawing and the
|
||||||
worksheet:
|
worksheet:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$drawing->setWorksheet($spreadsheet->getActiveSheet());
|
$drawing->setWorksheet($spreadsheet->getActiveSheet());
|
||||||
```
|
```
|
||||||
|
|
||||||
You can set numerous properties on a drawing, here are some examples:
|
You can set numerous properties on a drawing, here are some examples:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$drawing->setName('Paid');
|
$drawing->setName('Paid');
|
||||||
$drawing->setDescription('Paid');
|
$drawing->setDescription('Paid');
|
||||||
$drawing->setPath('./images/paid.png');
|
$drawing->setPath('./images/paid.png');
|
||||||
|
@ -1270,7 +1270,7 @@ $drawing->getShadow()->setDirection(45);
|
||||||
You can also add images created using GD functions without needing to
|
You can also add images created using GD functions without needing to
|
||||||
save them to disk first as In-Memory drawings.
|
save them to disk first as In-Memory drawings.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Use GD to create an in-memory image
|
// Use GD to create an in-memory image
|
||||||
$gdImage = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream');
|
$gdImage = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream');
|
||||||
$textColor = imagecolorallocate($gdImage, 255, 255, 255);
|
$textColor = imagecolorallocate($gdImage, 255, 255, 255);
|
||||||
|
@ -1298,7 +1298,7 @@ that has been loaded, and save them as individual image files to disk.
|
||||||
The following code extracts images from the current active worksheet,
|
The following code extracts images from the current active worksheet,
|
||||||
and writes each as a separate file.
|
and writes each as a separate file.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($spreadsheet->getActiveSheet()->getDrawingCollection() as $drawing) {
|
foreach ($spreadsheet->getActiveSheet()->getDrawingCollection() as $drawing) {
|
||||||
if ($drawing instanceof \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing) {
|
if ($drawing instanceof \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing) {
|
||||||
|
@ -1343,7 +1343,7 @@ creates the following rich text string:
|
||||||
> This invoice is ***payable within thirty days after the end of the
|
> This invoice is ***payable within thirty days after the end of the
|
||||||
> month*** unless specified otherwise on the invoice.
|
> month*** unless specified otherwise on the invoice.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$richText = new \PhpOffice\PhpSpreadsheet\RichText\RichText();
|
$richText = new \PhpOffice\PhpSpreadsheet\RichText\RichText();
|
||||||
$richText->createText('This invoice is ');
|
$richText->createText('This invoice is ');
|
||||||
$payable = $richText->createTextRun('payable within thirty days after the end of the month');
|
$payable = $richText->createTextRun('payable within thirty days after the end of the month');
|
||||||
|
@ -1359,7 +1359,7 @@ $spreadsheet->getActiveSheet()->getCell('A18')->setValue($richText);
|
||||||
PhpSpreadsheet supports the definition of named ranges. These can be
|
PhpSpreadsheet supports the definition of named ranges. These can be
|
||||||
defined using the following code:
|
defined using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Add some data
|
// Add some data
|
||||||
$spreadsheet->setActiveSheetIndex(0);
|
$spreadsheet->setActiveSheetIndex(0);
|
||||||
$spreadsheet->getActiveSheet()->setCellValue('A1', 'Firstname:');
|
$spreadsheet->getActiveSheet()->setCellValue('A1', 'Firstname:');
|
||||||
|
@ -1402,7 +1402,7 @@ your document is needed, it is recommended not to use `php://output`.
|
||||||
Example of a script redirecting an Excel 2007 file to the client's
|
Example of a script redirecting an Excel 2007 file to the client's
|
||||||
browser:
|
browser:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
/* Here there will be some code where you create $spreadsheet */
|
/* Here there will be some code where you create $spreadsheet */
|
||||||
|
|
||||||
// redirect output to client browser
|
// redirect output to client browser
|
||||||
|
@ -1416,7 +1416,7 @@ $writer->save('php://output');
|
||||||
|
|
||||||
Example of a script redirecting an Xls file to the client's browser:
|
Example of a script redirecting an Xls file to the client's browser:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
/* Here there will be some code where you create $spreadsheet */
|
/* Here there will be some code where you create $spreadsheet */
|
||||||
|
|
||||||
// redirect output to client browser
|
// redirect output to client browser
|
||||||
|
@ -1444,7 +1444,7 @@ at the client browser, and/or that headers cannot be set by PHP
|
||||||
|
|
||||||
Default column width can be set using the following code:
|
Default column width can be set using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getDefaultColumnDimension()->setWidth(12);
|
$spreadsheet->getActiveSheet()->getDefaultColumnDimension()->setWidth(12);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1452,7 +1452,7 @@ $spreadsheet->getActiveSheet()->getDefaultColumnDimension()->setWidth(12);
|
||||||
|
|
||||||
Default row height can be set using the following code:
|
Default row height can be set using the following code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15);
|
$spreadsheet->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1465,7 +1465,7 @@ file to a temporary location.
|
||||||
Here''s an example which generates an image in memory and adds it to the
|
Here''s an example which generates an image in memory and adds it to the
|
||||||
active worksheet:
|
active worksheet:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Generate an image
|
// Generate an image
|
||||||
$gdImage = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream');
|
$gdImage = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream');
|
||||||
$textColor = imagecolorallocate($gdImage, 255, 255, 255);
|
$textColor = imagecolorallocate($gdImage, 255, 255, 255);
|
||||||
|
@ -1486,7 +1486,7 @@ $drawing->setWorksheet($spreadsheet->getActiveSheet());
|
||||||
|
|
||||||
To set a worksheet's zoom level, the following code can be used:
|
To set a worksheet's zoom level, the following code can be used:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()->getSheetView()->setZoomScale(75);
|
$spreadsheet->getActiveSheet()->getSheetView()->setZoomScale(75);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1497,7 +1497,7 @@ Note that zoom level should be in range 10 - 400.
|
||||||
Sometimes you want to set a color for sheet tab. For example you can
|
Sometimes you want to set a color for sheet tab. For example you can
|
||||||
have a red sheet tab:
|
have a red sheet tab:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet->getTabColor()->setRGB('FF0000');
|
$worksheet->getTabColor()->setRGB('FF0000');
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1505,7 +1505,7 @@ $worksheet->getTabColor()->setRGB('FF0000');
|
||||||
|
|
||||||
If you need to create more worksheets in the workbook, here is how:
|
If you need to create more worksheets in the workbook, here is how:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$worksheet1 = $spreadsheet->createSheet();
|
$worksheet1 = $spreadsheet->createSheet();
|
||||||
$worksheet1->setTitle('Another sheet');
|
$worksheet1->setTitle('Another sheet');
|
||||||
```
|
```
|
||||||
|
@ -1518,7 +1518,7 @@ worksheets in the workbook.
|
||||||
|
|
||||||
Set a worksheet to be **hidden** using this code:
|
Set a worksheet to be **hidden** using this code:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->getActiveSheet()
|
$spreadsheet->getActiveSheet()
|
||||||
->setSheetState(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::SHEETSTATE_HIDDEN);
|
->setSheetState(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::SHEETSTATE_HIDDEN);
|
||||||
```
|
```
|
||||||
|
@ -1540,7 +1540,7 @@ Worksheets can be set individually whether column `A` should start at
|
||||||
left or right side. Default is left. Here is how to set columns from
|
left or right side. Default is left. Here is how to set columns from
|
||||||
right-to-left.
|
right-to-left.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// right-to-left worksheet
|
// right-to-left worksheet
|
||||||
$spreadsheet->getActiveSheet()->setRightToLeft(true);
|
$spreadsheet->getActiveSheet()->setRightToLeft(true);
|
||||||
```
|
```
|
||||||
|
|
|
@ -13,7 +13,7 @@ Read more about [memory saving](./memory_saving.md).
|
||||||
|
|
||||||
To enable cell caching, you must provide your own implementation of cache like so:
|
To enable cell caching, you must provide your own implementation of cache like so:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$cache = new MyCustomPsr16Implementation();
|
$cache = new MyCustomPsr16Implementation();
|
||||||
|
|
||||||
\PhpOffice\PhpSpreadsheet\Settings::setCache($cache);
|
\PhpOffice\PhpSpreadsheet\Settings::setCache($cache);
|
||||||
|
@ -25,7 +25,7 @@ Some localisation elements have been included in PhpSpreadsheet. You can
|
||||||
set a locale by changing the settings. To set the locale to Brazilian
|
set a locale by changing the settings. To set the locale to Brazilian
|
||||||
Portuguese you would use:
|
Portuguese you would use:
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$locale = 'pt_br';
|
$locale = 'pt_br';
|
||||||
$validLocale = \PhpOffice\PhpSpreadsheet\Settings::setLocale($locale);
|
$validLocale = \PhpOffice\PhpSpreadsheet\Settings::setLocale($locale);
|
||||||
if (!$validLocale) {
|
if (!$validLocale) {
|
||||||
|
|
|
@ -25,7 +25,7 @@ each worksheet "tab" is shown when the workbook is opened in MS Excel
|
||||||
(or other appropriate Spreadsheet program). To access a sheet by its
|
(or other appropriate Spreadsheet program). To access a sheet by its
|
||||||
index, use the `getSheet()` method.
|
index, use the `getSheet()` method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Get the second sheet in the workbook
|
// Get the second sheet in the workbook
|
||||||
// Note that sheets are indexed from 0
|
// Note that sheets are indexed from 0
|
||||||
$spreadsheet->getSheet(1);
|
$spreadsheet->getSheet(1);
|
||||||
|
@ -38,7 +38,7 @@ workbook.
|
||||||
To access a sheet by name, use the `getSheetByName()` method, specifying
|
To access a sheet by name, use the `getSheetByName()` method, specifying
|
||||||
the name of the worksheet that you want to access.
|
the name of the worksheet that you want to access.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Retrieve the worksheet called 'Worksheet 1'
|
// Retrieve the worksheet called 'Worksheet 1'
|
||||||
$spreadsheet->getSheetByName('Worksheet 1');
|
$spreadsheet->getSheetByName('Worksheet 1');
|
||||||
```
|
```
|
||||||
|
@ -48,7 +48,7 @@ and you can access that directly. The currently active worksheet is the
|
||||||
one that will be active when the workbook is opened in MS Excel (or
|
one that will be active when the workbook is opened in MS Excel (or
|
||||||
other appropriate Spreadsheet program).
|
other appropriate Spreadsheet program).
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Retrieve the current active worksheet
|
// Retrieve the current active worksheet
|
||||||
$spreadsheet->getActiveSheet();
|
$spreadsheet->getActiveSheet();
|
||||||
```
|
```
|
||||||
|
@ -64,7 +64,7 @@ a new "last" sheet; but you can also specify an index position as an
|
||||||
argument, and the worksheet will be inserted at that position, shuffling
|
argument, and the worksheet will be inserted at that position, shuffling
|
||||||
all subsequent worksheets in the collection down a place.
|
all subsequent worksheets in the collection down a place.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$spreadsheet->createSheet();
|
$spreadsheet->createSheet();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ Alternatively, you can instantiate a new worksheet (setting the title to
|
||||||
whatever you choose) and then insert it into your workbook using the
|
whatever you choose) and then insert it into your workbook using the
|
||||||
`addSheet()` method.
|
`addSheet()` method.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
// Create a new worksheet called "My Data"
|
// Create a new worksheet called "My Data"
|
||||||
$myWorkSheet = new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet($spreadsheet, 'My Data');
|
$myWorkSheet = new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet($spreadsheet, 'My Data');
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ Sheets within the same workbook can be copied by creating a clone of the
|
||||||
worksheet you wish to copy, and then using the `addSheet()` method to
|
worksheet you wish to copy, and then using the `addSheet()` method to
|
||||||
insert the clone into the workbook.
|
insert the clone into the workbook.
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$clonedWorksheet = clone $spreadsheet->getSheetByName('Worksheet 1');
|
$clonedWorksheet = clone $spreadsheet->getSheetByName('Worksheet 1');
|
||||||
$clonedWorksheet->setTitle('Copy of Worksheet 1');
|
$clonedWorksheet->setTitle('Copy of Worksheet 1');
|
||||||
$spreadsheet->addSheet($clonedWorksheet);
|
$spreadsheet->addSheet($clonedWorksheet);
|
||||||
|
@ -117,7 +117,7 @@ duplicate name.
|
||||||
You can delete a worksheet from a workbook, identified by its index
|
You can delete a worksheet from a workbook, identified by its index
|
||||||
position, using the `removeSheetByIndex()` method
|
position, using the `removeSheetByIndex()` method
|
||||||
|
|
||||||
``` php
|
```php
|
||||||
$sheetIndex = $spreadsheet->getIndex(
|
$sheetIndex = $spreadsheet->getIndex(
|
||||||
$spreadsheet->getSheetByName('Worksheet 1')
|
$spreadsheet->getSheetByName('Worksheet 1')
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue