Improve doc formatting with backticks
This commit is contained in:
parent
fec674e797
commit
8e8d0e4a30
22
docs/faq.md
22
docs/faq.md
|
@ -1,21 +1,18 @@
|
||||||
# Frequently asked questions
|
# Frequently asked questions
|
||||||
|
|
||||||
The up-to-date F.A.Q. page for PHPExcel can be found on
|
|
||||||
<http://www.codeplex.com/PHPExcel/Wiki/View.aspx?title=FAQ&referringTitle=Requirements>.
|
|
||||||
|
|
||||||
## There seems to be a problem with character encoding...
|
## There seems to be a problem with character encoding...
|
||||||
|
|
||||||
It is necessary to use UTF-8 encoding for all texts in PhpSpreadsheet.
|
It is necessary to use UTF-8 encoding for all texts in PhpSpreadsheet.
|
||||||
If the script uses different encoding then you can convert those texts
|
If the script uses different encoding then you can convert those texts
|
||||||
with PHP's iconv() or mb\_convert\_encoding() functions.
|
with PHP's `iconv()` or `mb_convert_encoding()` functions.
|
||||||
|
|
||||||
## Fatal error: Allowed memory size of xxx bytes exhausted (tried to allocate yyy bytes) in zzz on line aaa
|
## Fatal error: Allowed memory size of xxx bytes exhausted (tried to allocate yyy bytes) in zzz on line aaa
|
||||||
|
|
||||||
PhpSpreadsheet holds an "in memory" representation of a spreadsheet, so
|
PhpSpreadsheet holds an "in memory" representation of a spreadsheet, so
|
||||||
it is susceptible to PHP's memory limitations. The memory made available
|
it is susceptible to PHP's memory limitations. The memory made available
|
||||||
to PHP can be increased by editing the value of the memory\_limit
|
to PHP can be increased by editing the value of the `memory_limit`
|
||||||
directive in your php.ini file, or by using ini\_set('memory\_limit',
|
directive in your php.ini file, or by using
|
||||||
'128M') within your code (ISP permitting).
|
`ini_set('memory_limit', '128M')` within your code.
|
||||||
|
|
||||||
Some Readers and Writers are faster than others, and they also use
|
Some Readers and Writers are faster than others, and they also use
|
||||||
differing amounts of memory. You can find some indication of the
|
differing amounts of memory. You can find some indication of the
|
||||||
|
@ -56,8 +53,8 @@ reference](./references/features-cross-reference.md).
|
||||||
|
|
||||||
## Formulas don't seem to be calculated in Excel2003 using compatibility pack?
|
## Formulas don't seem to be calculated in Excel2003 using compatibility pack?
|
||||||
|
|
||||||
This is normal behaviour of the compatibility pack, Xlsx displays this
|
This is normal behaviour of the compatibility pack, `Xlsx` displays this
|
||||||
correctly. Use \PhpOffice\PhpSpreadsheet\Writer\Xls if you really need
|
correctly. Use `\PhpOffice\PhpSpreadsheet\Writer\Xls` if you really need
|
||||||
calculated values, or force recalculation in Excel2003.
|
calculated values, or force recalculation in Excel2003.
|
||||||
|
|
||||||
## Setting column width is not 100% accurate
|
## Setting column width is not 100% accurate
|
||||||
|
@ -66,7 +63,8 @@ Trying to set column width, I experience one problem. When I open the
|
||||||
file in Excel, the actual width is 0.71 less than it should be.
|
file in Excel, the actual width is 0.71 less than it should be.
|
||||||
|
|
||||||
The short answer is that PhpSpreadsheet uses a measure where padding is
|
The short answer is that PhpSpreadsheet uses a measure where padding is
|
||||||
included. See section: "Setting a column's width" for more details.
|
included. See [how to seta column's width](./topics/recipes.md#setting-a-columns-width)
|
||||||
|
for more details.
|
||||||
|
|
||||||
## How do I use PhpSpreadsheet with my framework
|
## How do I use PhpSpreadsheet with my framework
|
||||||
|
|
||||||
|
@ -81,8 +79,8 @@ included. See section: "Setting a column's width" for more details.
|
||||||
within CakePHP
|
within CakePHP
|
||||||
- Integrating [PhpSpreadsheet into Kohana
|
- Integrating [PhpSpreadsheet into Kohana
|
||||||
3](http://www.flynsarmy.com/2010/07/phpexcel-module-for-kohana-3/)
|
3](http://www.flynsarmy.com/2010/07/phpexcel-module-for-kohana-3/)
|
||||||
and \[Интеграция PHPExcel и Kohana
|
and [Интеграция PHPExcel и Kohana
|
||||||
Framework\]\[http://szpargalki.blogspot.com/2011/02/phpexcel-kohana-framework.html\]
|
Framework](http://szpargalki.blogspot.com/2011/02/phpexcel-kohana-framework.html)
|
||||||
- Using [PhpSpreadsheet with
|
- Using [PhpSpreadsheet with
|
||||||
TYPO3](http://typo3.org/documentation/document-library/extension-manuals/phpexcel_library/1.1.1/view/toc/0/)
|
TYPO3](http://typo3.org/documentation/document-library/extension-manuals/phpexcel_library/1.1.1/view/toc/0/)
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,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()
|
||||||
|
@ -275,8 +275,8 @@ Setting a cell value by coordinate can be done using the worksheet's
|
||||||
$spreadsheet->getActiveSheet()->setCellValueByColumnAndRow(1, 5, 'PhpSpreadsheet');
|
$spreadsheet->getActiveSheet()->setCellValueByColumnAndRow(1, 5, 'PhpSpreadsheet');
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note** that column references start with '0' for column 'A', rather
|
**Note** that column references start with `0` for column `A`, rather
|
||||||
than from '1'.
|
than from `1`.
|
||||||
|
|
||||||
## Retrieving a cell value by column and row
|
## Retrieving a cell value by column and row
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@ $columnFilter->createRule()
|
||||||
```
|
```
|
||||||
|
|
||||||
This creates two filter rules: the column will be filtered by values
|
This creates two filter rules: the column will be filtered by values
|
||||||
that match “France” OR “Germany”. For Simple Filters, you can create as
|
that match "France" OR "Germany". For Simple Filters, you can create as
|
||||||
many rules as you want
|
many rules as you want
|
||||||
|
|
||||||
Simple filters are always a comparison match of EQUALS, and multiple
|
Simple filters are always a comparison match of EQUALS, and multiple
|
||||||
|
@ -238,7 +238,7 @@ $columnFilter->setFilterType(
|
||||||
And then define our rules.
|
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()
|
||||||
|
@ -487,7 +487,7 @@ saved.
|
||||||
### Applying the Filter
|
### Applying the Filter
|
||||||
|
|
||||||
If you wish to execute your filter from within a script, you need to do
|
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
|
||||||
|
|
|
@ -11,7 +11,7 @@ which can be evaluated). For example, the formula `=SUM(A1:A10)`
|
||||||
evaluates to the sum of values in A1, A2, ..., A10.
|
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();
|
||||||
|
@ -57,7 +57,7 @@ Not all functions are supported, for a comprehensive list, read the
|
||||||
|
|
||||||
#### Operator precedence
|
#### Operator precedence
|
||||||
|
|
||||||
In Excel '+' wins over '&', just like '\*' wins over '+' in ordinary
|
In Excel `+` wins over `&`, just like `*` wins over `+` in ordinary
|
||||||
algebra. The former rule is not what one finds using the calculation
|
algebra. The former rule is not what one finds using the calculation
|
||||||
engine shipped with PhpSpreadsheet.
|
engine shipped with PhpSpreadsheet.
|
||||||
|
|
||||||
|
@ -94,14 +94,14 @@ return either an Excel timestamp or a PHP timestamp or date object.
|
||||||
|
|
||||||
It is possible for scripts to change the data type used for returning
|
It is possible for scripts to change the data type used for returning
|
||||||
date values by calling the
|
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);
|
||||||
```
|
```
|
||||||
|
|
||||||
where the following constants can be used for \$returnDateType
|
where the following constants can be used for `$returnDateType`:
|
||||||
|
|
||||||
- `\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_PHP_NUMERIC`
|
- `\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_PHP_NUMERIC`
|
||||||
- `\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_PHP_OBJECT`
|
- `\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_PHP_OBJECT`
|
||||||
|
@ -155,7 +155,7 @@ Excel date values by calling the
|
||||||
\PhpOffice\PhpSpreadsheet\Shared\Date::setExcelCalendar($baseDate);
|
\PhpOffice\PhpSpreadsheet\Shared\Date::setExcelCalendar($baseDate);
|
||||||
```
|
```
|
||||||
|
|
||||||
where the following constants can be used for \$baseDate
|
where the following constants can be used for `$baseDate`:
|
||||||
|
|
||||||
- \PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR\_WINDOWS\_1900
|
- \PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR\_WINDOWS\_1900
|
||||||
- \PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR\_MAC\_1904
|
- \PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR\_MAC\_1904
|
||||||
|
@ -202,9 +202,9 @@ However, if you pass through a value such as '31/12/2008' that would be
|
||||||
considered an error by a US-based server, but which is not ambiguous,
|
considered an error by a US-based server, but which is not ambiguous,
|
||||||
then PhpSpreadsheet will attempt to correct this to 31st December 2008.
|
then PhpSpreadsheet will attempt to correct this to 31st December 2008.
|
||||||
If the content of the string doesn’t match any of the formats recognised
|
If the content of the string doesn’t match any of the formats recognised
|
||||||
by the php date/time object implementation of strtotime() (which can
|
by the php date/time object implementation of `strtotime()` (which can
|
||||||
handle a wider range of formats than the normal strtotime() function),
|
handle a wider range of formats than the normal `strtotime()` function),
|
||||||
then the function will return a '\#VALUE' error. However, Excel
|
then the function will return a `#VALUE` error. However, Excel
|
||||||
recommends that you should always use date/timestamps for your date
|
recommends that you should always use date/timestamps for your date
|
||||||
functions, and the recommendation for PhpSpreadsheet is the same: avoid
|
functions, and the recommendation for PhpSpreadsheet is the same: avoid
|
||||||
strings because the result is not predictable.
|
strings because the result is not predictable.
|
||||||
|
@ -238,12 +238,12 @@ rather than converted to Excel date timestamp values.
|
||||||
|
|
||||||
### Helper Methods
|
### Helper Methods
|
||||||
|
|
||||||
In addition to the setExcelCalendar() and getExcelCalendar() methods, a
|
In addition to the `setExcelCalendar()` and `getExcelCalendar()` methods, a
|
||||||
number of other methods are available in the
|
number of other methods are available in the
|
||||||
\PhpOffice\PhpSpreadsheet\Shared\Date class that can help when working
|
\PhpOffice\PhpSpreadsheet\Shared\Date class that can help when working
|
||||||
with dates:
|
with dates:
|
||||||
|
|
||||||
#### \PhpOffice\PhpSpreadsheet\Shared\Date::ExcelToPHP(\$excelDate)
|
#### \PhpOffice\PhpSpreadsheet\Shared\Date::ExcelToPHP($excelDate)
|
||||||
|
|
||||||
Converts a date/time from an Excel date timestamp to return a PHP
|
Converts a date/time from an Excel date timestamp to return a PHP
|
||||||
serialized date/timestamp.
|
serialized date/timestamp.
|
||||||
|
@ -251,17 +251,17 @@ serialized date/timestamp.
|
||||||
Note that this method does not trap for Excel dates that fall outside of
|
Note that this method does not trap for Excel dates that fall outside of
|
||||||
the valid range for a PHP date timestamp.
|
the valid range for a PHP date timestamp.
|
||||||
|
|
||||||
#### \PhpOffice\PhpSpreadsheet\Shared\Date::ExcelToPHPObject(\$excelDate)
|
#### \PhpOffice\PhpSpreadsheet\Shared\Date::ExcelToPHPObject($excelDate)
|
||||||
|
|
||||||
Converts a date from an Excel date/timestamp to return a PHP DateTime
|
Converts a date from an Excel date/timestamp to return a PHP DateTime
|
||||||
object.
|
object.
|
||||||
|
|
||||||
#### \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(\$PHPDate)
|
#### \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($PHPDate)
|
||||||
|
|
||||||
Converts a PHP serialized date/timestamp or a PHP DateTime object to
|
Converts a PHP serialized date/timestamp or a PHP DateTime object to
|
||||||
return an Excel date timestamp.
|
return an Excel date timestamp.
|
||||||
|
|
||||||
#### \PhpOffice\PhpSpreadsheet\Shared\Date::FormattedPHPToExcel(\$year, \$month, \$day, \$hours=0, \$minutes=0, \$seconds=0)
|
#### \PhpOffice\PhpSpreadsheet\Shared\Date::FormattedPHPToExcel($year, $month, $day, $hours=0, $minutes=0, $seconds=0)
|
||||||
|
|
||||||
Takes year, month and day values (and optional hour, minute and second
|
Takes year, month and day values (and optional hour, minute and second
|
||||||
values) and returns an Excel date timestamp value.
|
values) and returns an Excel date timestamp value.
|
||||||
|
@ -1114,7 +1114,7 @@ ym | Months Excluding Years | Complete calendar months between the da
|
||||||
yd | Days Excluding Years | Complete calendar days between the dates as if they were of the same year.
|
yd | Days Excluding Years | Complete calendar days between the dates as if they were of the same year.
|
||||||
md | Days Excluding Years And Months | Complete calendar days between the dates as if they were of the same month and same year.
|
md | Days Excluding Years And Months | Complete calendar days between the dates as if they were of the same month and same year.
|
||||||
|
|
||||||
The unit value is not case sensitive, and defaults to "d".
|
The unit value is not case sensitive, and defaults to `d`.
|
||||||
|
|
||||||
##### Return Value
|
##### Return Value
|
||||||
|
|
||||||
|
@ -1290,8 +1290,8 @@ $retVal = call_user_func_array(
|
||||||
|
|
||||||
##### Notes
|
##### Notes
|
||||||
|
|
||||||
DATEVALUE uses the php date/time object implementation of strtotime()
|
DATEVALUE uses the php date/time object implementation of `strtotime()`
|
||||||
(which can handle a wider range of formats than the normal strtotime()
|
(which can handle a wider range of formats than the normal `strtotime()`
|
||||||
function), and it is also called for any date parameter passed to other
|
function), and it is also called for any date parameter passed to other
|
||||||
date functions (such as DATEDIF) when the parameter value is a string.
|
date functions (such as DATEDIF) when the parameter value is a string.
|
||||||
|
|
||||||
|
@ -1449,7 +1449,7 @@ $retVal = call_user_func_array(
|
||||||
when a PHP Boolean is used for the third (optional) parameter (as shown
|
when a PHP Boolean is used for the third (optional) parameter (as shown
|
||||||
in the example above), and the writer will generate and error. It will
|
in the example above), and the writer will generate and error. It will
|
||||||
work if a numeric 0 or 1 is used for the method parameter; or if the
|
work if a numeric 0 or 1 is used for the method parameter; or if the
|
||||||
Excel TRUE() and FALSE() functions are used instead.
|
Excel `TRUE()` and `FALSE()` functions are used instead.
|
||||||
|
|
||||||
#### EDATE
|
#### EDATE
|
||||||
|
|
||||||
|
@ -1824,7 +1824,7 @@ The NOW function returns the current date and time.
|
||||||
|
|
||||||
##### Parameters
|
##### Parameters
|
||||||
|
|
||||||
There are now parameters for the NOW() function.
|
There are no parameters for the `NOW()` function.
|
||||||
|
|
||||||
##### Return Value
|
##### Return Value
|
||||||
|
|
||||||
|
|
|
@ -44,13 +44,13 @@ A new workbook will always be created with a single worksheet.
|
||||||
The PhpSpreadsheet object contains cyclic references (e.g. the workbook
|
The PhpSpreadsheet object contains cyclic references (e.g. the workbook
|
||||||
is linked to the worksheets, and the worksheets are linked to their
|
is linked to the worksheets, and the worksheets are linked to their
|
||||||
parent workbook) which cause problems when PHP tries to clear the
|
parent workbook) which cause problems when PHP tries to clear the
|
||||||
objects from memory when they are unset(), or at the end of a function
|
objects from memory when they are `unset()`, or at the end of a function
|
||||||
when they are in local scope. The result of this is "memory leaks",
|
when they are in local scope. The result of this is "memory leaks",
|
||||||
which can easily use a large amount of PHP's limited memory.
|
which can easily use a large amount of PHP's limited memory.
|
||||||
|
|
||||||
This can only be resolved manually: if you need to unset a workbook,
|
This can only be resolved manually: if you need to unset a workbook,
|
||||||
then you also need to "break" these cyclic references before doing so.
|
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
|
||||||
|
|
|
@ -78,10 +78,10 @@ library.
|
||||||
Comma Separated Value (CSV) file format is a common structuring strategy
|
Comma Separated Value (CSV) file format is a common structuring strategy
|
||||||
for text format files. In CSV flies, each line in the file represents a
|
for text format files. In CSV flies, each line in the file represents a
|
||||||
row of data and (within each line of the file) the different data fields
|
row of data and (within each line of the file) the different data fields
|
||||||
(or columns) are separated from one another using a comma (","). If a
|
(or columns) are separated from one another using a comma (`,`). If a
|
||||||
data field contains a comma, then it should be enclosed (typically in
|
data field contains a comma, then it should be enclosed (typically in
|
||||||
quotation marks ("). Sometimes tabs "\t", or the pipe symbol ("|"), or a
|
quotation marks (`"`). Sometimes tabs `\t`, or the pipe symbol (`|`), or a
|
||||||
semi-colon (";") are used as separators instead of a comma, although
|
semi-colon (`;`) are used as separators instead of a comma, although
|
||||||
other symbols can be used. Because CSV is a text-only format, it doesn't
|
other symbols can be used. Because CSV is a text-only format, it doesn't
|
||||||
support any data formatting options.
|
support any data formatting options.
|
||||||
|
|
||||||
|
|
|
@ -435,7 +435,7 @@ $spreadsheet = $reader->load("sample.csv");
|
||||||
|
|
||||||
#### Setting CSV options
|
#### Setting CSV options
|
||||||
|
|
||||||
Often, CSV files are not really “comma separated”, or use semicolon (;)
|
Often, CSV files are not really "comma separated", or use semicolon (;)
|
||||||
as a separator. You can instruct
|
as a separator. You can instruct
|
||||||
\PhpOffice\PhpSpreadsheet\Reader\Csv some options before reading a CSV
|
\PhpOffice\PhpSpreadsheet\Reader\Csv some options before reading a CSV
|
||||||
file.
|
file.
|
||||||
|
@ -470,7 +470,7 @@ $reader->setSheetIndex(0);
|
||||||
|
|
||||||
When working with CSV files, it might occur that you want to import CSV
|
When working with CSV files, it might occur that you want to import CSV
|
||||||
data into an existing `Spreadsheet` object. The following code loads a
|
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
|
||||||
|
@ -496,7 +496,7 @@ $writer->save("05featuredemo.csv");
|
||||||
|
|
||||||
#### Setting CSV options
|
#### Setting CSV options
|
||||||
|
|
||||||
Often, CSV files are not really “comma separated”, or use semicolon (;)
|
Often, CSV files are not really "comma separated", or use semicolon (`;`)
|
||||||
as a separator. You can instruct
|
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:
|
||||||
|
@ -672,10 +672,10 @@ you to use these parts in your website.
|
||||||
|
|
||||||
Supported methods:
|
Supported methods:
|
||||||
|
|
||||||
- generateHTMLHeader()
|
- `generateHTMLHeader()`
|
||||||
- generateStyles()
|
- `generateStyles()`
|
||||||
- generateSheetData()
|
- `generateSheetData()`
|
||||||
- generateHTMLFooter()
|
- `generateHTMLFooter()`
|
||||||
|
|
||||||
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:
|
||||||
|
|
|
@ -17,8 +17,8 @@ To prevent this, by default every XML-based Reader looks for XML entities declar
|
||||||
## Loading a Spreadsheet File
|
## Loading a Spreadsheet File
|
||||||
|
|
||||||
The simplest way to load a workbook file is to let PhpSpreadsheet's IO
|
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';
|
||||||
|
@ -30,7 +30,7 @@ $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);
|
||||||
> See Examples/Reader/exampleReader01.php for a working example of this
|
> See Examples/Reader/exampleReader01.php for a working example of this
|
||||||
> code.
|
> code.
|
||||||
|
|
||||||
The load() method will attempt to identify the file type, and
|
The `load()` method will attempt to identify the file type, and
|
||||||
instantiate a loader for that file type; using it to load the file and
|
instantiate a loader for that file type; using it to load the file and
|
||||||
store the data and any formatting in a `Spreadsheet` object.
|
store the data and any formatting in a `Spreadsheet` object.
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ actually reading the file into a `Spreadsheet` object.
|
||||||
|
|
||||||
If you know the file type of the spreadsheet file that you need to load,
|
If you know the file type of the spreadsheet file that you need to load,
|
||||||
you can instantiate a new reader object for that file type, then use the
|
you can instantiate a new reader object for that file type, then use the
|
||||||
reader's load() method to read the file to a `Spreadsheet` object. It is
|
reader's `load()` method to read the file to a `Spreadsheet` object. It is
|
||||||
possible to instantiate the reader objects for each of the different
|
possible to instantiate the reader objects for each of the different
|
||||||
supported filetype by name. However, you may get unpredictable results
|
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
|
||||||
|
@ -75,7 +75,7 @@ $spreadsheet = $reader->load($inputFileName);
|
||||||
> See Examples/Reader/exampleReader02.php for a working example of this
|
> See Examples/Reader/exampleReader02.php for a working example of this
|
||||||
> code.
|
> code.
|
||||||
|
|
||||||
Alternatively, you can use the IO Factory's createReader() method to
|
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.
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ $spreadsheet = $reader->load($inputFileName);
|
||||||
|
|
||||||
Once you have created a reader object for the workbook that you want to
|
Once you have created a reader object for the workbook that you want to
|
||||||
load, you have the opportunity to set additional options before
|
load, you have the opportunity to set additional options before
|
||||||
executing the load() method.
|
executing the `load()` method.
|
||||||
|
|
||||||
### Reading Only Data from a Spreadsheet File
|
### Reading Only Data from a Spreadsheet File
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ setLoadSheetsOnly() method to identify those sheets you are interested
|
||||||
in reading.
|
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';
|
||||||
|
@ -191,7 +191,7 @@ $spreadsheet = $reader->load($inputFileName);
|
||||||
> code.
|
> 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';
|
||||||
|
@ -209,7 +209,7 @@ $spreadsheet = $reader->load($inputFileName);
|
||||||
> See Examples/Reader/exampleReader08.php for a working example of this
|
> See Examples/Reader/exampleReader08.php for a working example of this
|
||||||
> code.
|
> 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
|
||||||
|
@ -241,8 +241,8 @@ If you are only interested in reading part of a worksheet, then you can
|
||||||
write a filter class that identifies whether or not individual cells
|
write a filter class that identifies whether or not individual cells
|
||||||
should be read by the loader. A read filter must implement the
|
should be read by the loader. A read filter must implement the
|
||||||
\PhpOffice\PhpSpreadsheet\Reader\IReadFilter interface, and contain a
|
\PhpOffice\PhpSpreadsheet\Reader\IReadFilter interface, and contain a
|
||||||
readCell() method that accepts arguments of \$column, \$row and
|
readCell() method that accepts arguments of `$column`, `$row` and
|
||||||
\$worksheetName, and return a boolean true or false that indicates
|
`$worksheetName`, and return a boolean true or false that indicates
|
||||||
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.
|
||||||
|
|
||||||
|
@ -319,7 +319,7 @@ $filterSubset = new MyReadFilter(9,15,range('G','K'));
|
||||||
> code.
|
> code.
|
||||||
|
|
||||||
This can be particularly useful for conserving memory, by allowing you
|
This can be particularly useful for conserving memory, by allowing you
|
||||||
to read and process a large workbook in “chunks”: an example of this
|
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.
|
||||||
|
|
||||||
|
@ -386,13 +386,13 @@ CSV | YES | HTML | NO | | |
|
||||||
### Combining Multiple Files into a Single Spreadsheet Object
|
### Combining Multiple Files into a Single Spreadsheet Object
|
||||||
|
|
||||||
While you can limit the number of worksheets that are read from a
|
While you can limit the number of worksheets that are read from a
|
||||||
workbook file using the setLoadSheetsOnly() method, certain readers also
|
workbook file using the `setLoadSheetsOnly()` method, certain readers also
|
||||||
allow you to combine several individual "sheets" from different files
|
allow you to combine several individual "sheets" from different files
|
||||||
into a single `Spreadsheet` object, where each individual file is a
|
into a single `Spreadsheet` object, where each individual file is a
|
||||||
single worksheet within that workbook. For each file that you read, you
|
single worksheet within that workbook. For each file that you read, you
|
||||||
need to indicate which worksheet index it should be loaded into using
|
need to indicate which worksheet index it should be loaded into using
|
||||||
the setSheetIndex() method of the \$reader, then use the
|
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
|
||||||
|
@ -450,9 +450,9 @@ Xlsx Microsoft Office Open XML SpreadsheetML .xlsx file is limited to
|
||||||
by available disk space. This means that we wouldn’t ordinarily be able
|
by available disk space. This means that we wouldn’t ordinarily be able
|
||||||
to read all the rows from a very large CSV file that exceeded those
|
to read all the rows from a very large CSV file that exceeded those
|
||||||
limits, and save it as an Xls or Xlsx file. However, by using Read
|
limits, and save it as an Xls or Xlsx file. However, by using Read
|
||||||
Filters to read the CSV file in “chunks” (using the chunkReadFilter
|
Filters to read the CSV file in "chunks" (using the chunkReadFilter
|
||||||
Class that we defined in [the above section](#reading-only-specific-columns-and-rows-from-a-file-read-filters),
|
Class that we defined in [the above section](#reading-only-specific-columns-and-rows-from-a-file-read-filters),
|
||||||
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
|
||||||
|
@ -503,7 +503,7 @@ for ($startRow = 2; $startRow <= 1000000; $startRow += $chunkSize) {
|
||||||
This code will read 65,530 rows at a time from the CSV file that we’re
|
This code will read 65,530 rows at a time from the CSV file that we’re
|
||||||
loading, and store each "chunk" in a new worksheet.
|
loading, and store each "chunk" in a new worksheet.
|
||||||
|
|
||||||
The setContiguous() method for the Reader is important here. It is
|
The `setContiguous()` method for the Reader is important here. It is
|
||||||
applicable only when working with a Read Filter, and identifies whether
|
applicable only when working with a Read Filter, and identifies whether
|
||||||
or not the cells should be stored by their position within the CSV file,
|
or not the cells should be stored by their position within the CSV file,
|
||||||
or their position relative to the filter.
|
or their position relative to the filter.
|
||||||
|
@ -525,7 +525,7 @@ CSV | YES | HTML | NO
|
||||||
|
|
||||||
The CSV loader defaults to loading a file where comma is used as the
|
The CSV loader defaults to loading a file where comma is used as the
|
||||||
separator, but you can modify this to load tab- or pipe-separated value
|
separator, but you can modify this to load tab- or pipe-separated value
|
||||||
files using the setDelimiter() method.
|
files using the `setDelimiter()` method.
|
||||||
|
|
||||||
``` php
|
``` php
|
||||||
$inputFileType = 'Csv';
|
$inputFileType = 'Csv';
|
||||||
|
@ -546,8 +546,11 @@ $spreadsheet = $reader->load($inputFileName);
|
||||||
In addition to the delimiter, you can also use the following methods to
|
In addition to the delimiter, you can also use the following methods to
|
||||||
set other attributes for the data load:
|
set other attributes for the data load:
|
||||||
|
|
||||||
setEnclosure() | default is " setLineEnding() | default is PHP\_EOL
|
Method | Default
|
||||||
setInputEncoding() | default is UTF-8
|
-------------------|----------
|
||||||
|
setEnclosure() | `"`
|
||||||
|
setLineEnding() | `PHP_EOL`
|
||||||
|
setInputEncoding() | `UTF-8`
|
||||||
|
|
||||||
Setting CSV delimiter applies to:
|
Setting CSV delimiter applies to:
|
||||||
|
|
||||||
|
|
|
@ -141,7 +141,7 @@ $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()
|
||||||
|
@ -239,7 +239,7 @@ $spreadsheet->getActiveSheet()->getStyle('A1')->getAlignment()->setWrapText(true
|
||||||
|
|
||||||
**Tip**
|
**Tip**
|
||||||
|
|
||||||
Read more about formatting cells using getStyle() elsewhere.
|
Read more about formatting cells using `getStyle()` elsewhere.
|
||||||
|
|
||||||
**Tip**
|
**Tip**
|
||||||
|
|
||||||
|
@ -332,7 +332,7 @@ $spreadsheet->getActiveSheet()->getPageSetup()->setFitToHeight(0);
|
||||||
As you can see, it is not necessary to call setFitToPage(TRUE) since
|
As you can see, it is not necessary to call setFitToPage(TRUE) since
|
||||||
setFitToWidth(...) and setFitToHeight(...) triggers this.
|
setFitToWidth(...) and setFitToHeight(...) triggers this.
|
||||||
|
|
||||||
If you use setFitToWidth() you should in general also specify
|
If you use `setFitToWidth()` you should in general also specify
|
||||||
setFitToHeight() explicitly like in the example. Be careful relying on
|
setFitToHeight() explicitly like in the example. Be careful relying on
|
||||||
the initial values.
|
the initial values.
|
||||||
|
|
||||||
|
@ -474,7 +474,9 @@ $spreadsheet->getActiveSheet()->setBreak( 'D10' , \PhpOffice\PhpSpreadsheet\Work
|
||||||
|
|
||||||
To show/hide gridlines when printing, use the following code:
|
To show/hide gridlines when printing, use the following code:
|
||||||
|
|
||||||
\$spreadsheet->getActiveSheet()->setShowGridlines(true);
|
```php
|
||||||
|
$spreadsheet->getActiveSheet()->setShowGridlines(true);
|
||||||
|
```
|
||||||
|
|
||||||
### Setting rows/columns to repeat at top/left
|
### Setting rows/columns to repeat at top/left
|
||||||
|
|
||||||
|
@ -738,7 +740,7 @@ vertical/horizontal, left/right/top/bottom/diagonal.
|
||||||
This border hierarchy can be utilized to achieve various effects in an
|
This border hierarchy can be utilized to achieve various effects in an
|
||||||
easy manner.
|
easy manner.
|
||||||
|
|
||||||
### Valid array keys for style applyFromArray()
|
### Valid array keys for style `applyFromArray()`
|
||||||
|
|
||||||
The following table lists the valid array keys for
|
The following table lists the valid array keys for
|
||||||
\PhpOffice\PhpSpreadsheet\Style applyFromArray() classes. If the "Maps
|
\PhpOffice\PhpSpreadsheet\Style applyFromArray() classes. If the "Maps
|
||||||
|
@ -1001,15 +1003,15 @@ $validation->setFormula1('"Item A,Item B,Item C"');
|
||||||
```
|
```
|
||||||
|
|
||||||
When using a data validation list like above, make sure you put the list
|
When using a data validation list like above, make sure you put the list
|
||||||
between " and " and that you split the items with a comma (,).
|
between `"` and `"` and that you split the items with a comma (`,`).
|
||||||
|
|
||||||
It is important to remember that any string participating in an Excel
|
It is important to remember that any string participating in an Excel
|
||||||
formula is allowed to be maximum 255 characters (not bytes). This sets a
|
formula is allowed to be maximum 255 characters (not bytes). This sets a
|
||||||
limit on how many items you can have in the string "Item A,Item B,Item
|
limit on how many items you can have in the string "Item A,Item B,Item
|
||||||
C". Therefore it is normally a better idea to type the item values
|
C". Therefore it is normally a better idea to type the item values
|
||||||
directly in some cell range, say A1:A3, and instead use, say,
|
directly in some cell range, say A1:A3, and instead use, say,
|
||||||
$validation->setFormula1('Sheet!$A$1:$A\$3');. Another benefit is that
|
`$validation->setFormula1('Sheet!$A$1:$A$3')`. Another benefit is that
|
||||||
the item values themselves can contain the comma "," character itself.
|
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:
|
||||||
|
@ -1493,7 +1495,7 @@ visible via the user interface.
|
||||||
|
|
||||||
## Right-to-left worksheet
|
## Right-to-left worksheet
|
||||||
|
|
||||||
Worksheets can be set individually whether column "A" should start at
|
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.
|
||||||
|
|
||||||
|
|
|
@ -193,7 +193,7 @@ if (!$validLocale) {
|
||||||
- If Brazilian Portuguese language files aren't available, then Portuguese
|
- If Brazilian Portuguese language files aren't available, then Portuguese
|
||||||
will be enabled instead
|
will be enabled instead
|
||||||
- If Portuguese language files aren't available,
|
- If Portuguese language files aren't available,
|
||||||
then the setLocale() method will return an error, and American English
|
then the `setLocale()` method will return an error, and American English
|
||||||
(en\_us) settings will be used throughout.
|
(en\_us) settings will be used throughout.
|
||||||
|
|
||||||
More details of the features available once a locale has been set,
|
More details of the features available once a locale has been set,
|
||||||
|
|
|
@ -92,7 +92,7 @@ new worksheet will be added after the last existing worksheet.
|
||||||
## Copying Worksheets
|
## Copying Worksheets
|
||||||
|
|
||||||
Sheets within the same workbook can be copied by creating a clone of the
|
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
|
||||||
|
@ -103,7 +103,7 @@ $spreadsheet->addSheet($clonedWorksheet);
|
||||||
|
|
||||||
You can also copy worksheets from one workbook to another, though this
|
You can also copy worksheets from one workbook to another, though this
|
||||||
is more complex as PhpSpreadsheet also has to replicate the styling
|
is more complex as PhpSpreadsheet also has to replicate the styling
|
||||||
between the two workbooks. The addExternalSheet() method is provided for
|
between the two workbooks. The `addExternalSheet()` method is provided for
|
||||||
this purpose.
|
this purpose.
|
||||||
|
|
||||||
$clonedWorksheet = clone $spreadsheet1->getSheetByName('Worksheet 1');
|
$clonedWorksheet = clone $spreadsheet1->getSheetByName('Worksheet 1');
|
||||||
|
@ -117,7 +117,7 @@ duplicate name.
|
||||||
## Removing a Worksheet
|
## Removing a Worksheet
|
||||||
|
|
||||||
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(
|
||||||
|
|
Loading…
Reference in New Issue