247 Commits

Author SHA1 Message Date
Martin Wind
de3241b57c Delay sheetData and add sheetDataStarted flag to worksheet 2020-03-29 20:32:24 +02:00
Martin Wind
26e5f966fb Use options manager for default row height and column width 2020-03-29 15:10:11 +02:00
Alexander Hofstede
36573eaa8a Satisfy php-cs-fixer 2019-12-20 23:59:27 +01:00
Alexander Hofstede
ffec80422b Attempt to satisfy php-cs-fixer 2019-12-20 23:33:28 +01:00
Alexander Hofstede
bb83904083 Remove null phpdoc where typehint is float 2019-12-20 22:47:16 +01:00
Alexander Hofstede
aa5ec507c2 Set empty array as default for column widths 2019-12-19 23:05:16 +01:00
Alexander Hofstede
49e621b822 Merge remote-tracking branch 'remotes/origin/master' into custom-column-widths
# Conflicts:
#	src/Spout/Writer/XLSX/Manager/WorksheetManager.php
2019-12-19 23:02:47 +01:00
Alexander Hofstede
db197de7f9 Add support for custom column widths in ODS exports 2019-12-19 22:35:55 +01:00
Alexander Hofstede
ceda150aa3 Rename default column style 2019-12-19 20:31:46 +01:00
Alexander Hofstede
26ad59033c Add support for default cell sizes for ODS files 2019-12-17 22:05:01 +01:00
Alexander Hofstede
6db9871722 Extract common functionality to trait for easier reuse, fix default row height for XLSX 2019-12-17 20:31:26 +01:00
Alexander Hofstede
09a624ef8e Avoid $previousValue if length is < 1 2019-12-16 20:01:48 +01:00
madflow
f54f7a400c add PHP 7.4 2019-12-16 13:42:24 +01:00
Alexander Hofstede
4b9eb5b031 PSR-2 code style 2019-12-13 12:43:36 +01:00
Alexander Hofstede
80487f1ac1 Add support for setting column width by range 2019-12-13 12:38:00 +01:00
Alexander Hofstede
82170a058b Add XLSX support for default column width/row height as well as custom column widths through writer or OptionsManager (and test for it) 2019-12-13 00:12:09 +01:00
Adrien Loison
7964dadc21 Add support for cells in error when writing XLSX and ODS
When appending data to an existing sheet, it was possible to get cells in error when reading (DIV/0 for instance). When trying to write them back, `addRow` would throw because `Cell`s in error were not supported by the writers.
2019-12-02 22:21:41 +01:00
drowe
eb88bb4c3a Automated native_function_invocation fixes 2019-11-18 12:17:27 +01:00
Adrien Loison
dbdf5f7f38 [ODS] Add support for whitespaces inside <text:span>
The `<text:p>` node can contain the string value directly or contain child elements. In this case, whitespaces contain in the child elements should be replaced by their XML equivalent:
 - space => `<text:s />`
 - tab => `<text:tab />`
 - line break => `<text:line-break />`

@see https://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1415200_253892949
2019-10-27 20:14:51 +01:00
Adrien Loison
9f4c094fa0 Cell alignment
This PR adds support for cell alignment for XLSX and ODS files.
You can now align the content of the cells this way:
```
use Box\Spout\Common\Entity\Style\CellAlignment;
use Box\Spout\Writer\Common\Creator\Style\StyleBuilder;

$style = (new StyleBuilder())
    ->setCellAlignment(CellAlignment::RIGHT)
    ->build();
...
```

Possible cell alignments are: LEFT, RIGHT, CENTER and JUSTIFY.
2019-10-27 18:58:56 +01:00
Alexander Rakushin
d4e12b1812 Simplification of the code 2019-10-01 20:08:54 +00:00
Alexander Rakushin
e8c6d83104 сode formatting (CS Fixer) 2019-10-01 20:08:54 +00:00
Alexander Rakushin
40aecd7b90 Added support for cell formats when writing Excel files 2019-10-01 20:08:54 +00:00
Adrien Loison
16a2f91a22 Cell indexes not being respected when rendering row
Fixes #682
When calling `Row::setCellIndex`, it's possible to create a Row with holes.
Instead of iterating over existing cells of a Row, we should instead use the cell indexes (from 0 to max cell index).
2019-09-28 14:02:23 +00:00
Adrien Loison
2716d7eeed [PHP 7.4] Updated way to disable the fgetcsv/fputcsv escape character
From PHP 7.4, the recommended way to disable the escape character for fgetcsv() and fputcsv() is an empty string, instead of "\0".
Discussed here: https://github.com/php/php-src/pull/3515
2019-07-21 23:15:34 +02:00
Adrien Loison
1bbfd45b82 Support for missing styles XML file in XLSX
Some files don't have a "styles.xml" file. Excel supports these files, Spout should do too.
2019-07-20 16:48:51 +02:00
Adrien Loison
6c4086cf97 Fix reading of 1904 dates option
Whether the spreadsheet is using 1904 dates or not is controlled by a XML property. Its value can be the string "false" that is not mapped to the boolean "false" but to the boolean "true"... Therefore Spout was previously using the wrong date system when this property was set.
2019-06-04 09:36:51 +02:00
Adrien Loison
3beaa32021 Fix docblock 2019-05-21 19:43:54 +02:00
Adrien Loison
5ce5a488d1 Force UTF-8 encoding in htmlspecialchars 2019-05-21 19:37:09 +02:00
Adrien Loison
69b0fb9eaf Add methods to SheetInterface
The SheetInterface was missing methods common to all Sheets (getIndex, getName, isActive, isVisible).
2019-05-17 21:38:29 +02:00
Adrien Loison
40ee386edd Add helper functions to create specific readers and writers
Removed the `ReaderEntityFactory::createReader(Type)` method and replaced it by 3 methods:
- `ReaderEntityFactory::createCSVReader()`
- `ReaderEntityFactory::createXLSXReader()`
- `ReaderEntityFactory::createODSReader()`

This has the advantage of enabling autocomplete in the IDE, as the return type is no longer the interface but the concrete type. Since readers may expose different options, this is pretty useful.

Similarly, removed the `WriterEntityFactory::createWriter(Type)` method and replaced it by 3 methods:
- `WriterEntityFactory::createCSVWriter()`
- `WriterEntityFactory::createXLSXWriter()`
- `WriterEntityFactory::createODSWriter()`

Since this is a breaking change, I also updated the Upgrade guide.
Finally, the doc is up to date too.
2019-05-17 21:22:03 +02:00
Adrien Loison
4a9d0398ad Update Reader/WriterEntityFactory
Add `WriterEntityFactory::createWriterFromFile`, working like `ReaderEntityFactory::createReaderFromFile` (guessing writer type from file name).
Use static functions when needed.
2019-05-17 13:22:27 +02:00
Adrien Loison
71cf0fe339 Fix sheet name escaping
Sheet names are stored as attributes of an XML entity. We therefore need a different escaping strategy, escaping quotes.
2019-01-26 16:14:15 +01:00
madflow
e99c80b3ad create a reader by file type #569 2018-10-23 13:33:39 +02:00
madflow
8a1c48b6b0 rename EntityFactory for writers and readers #526 2018-09-03 11:15:09 +02:00
madflow
b05ce01d3c delete unused ReaderOptions 2018-06-12 18:27:00 +02:00
Adrien Loison
f7c483adbd Better support for errored cells 2018-06-03 22:31:24 +02:00
Adrien Loison
1b64a06fbe Move ReaderFactory into Common/Creator 2018-06-03 21:13:38 +02:00
madflow
29cf6245a1 added Row::getCellAtIndex method 2018-02-14 21:32:10 +01:00
madflow
21e0e9e6b1 implement Cell:isDate() for unification 2018-01-16 14:22:37 +01:00
madflow
e135b71473 remove unused import 2018-01-16 14:22:10 +01:00
madflow
d84f5168ec RowManager constructor does not take any arguments 2018-01-16 14:22:10 +01:00
madflow
88eee3be72 wrong parameter count in method call 2018-01-16 14:22:10 +01:00
Gabriel Caruso
9f4e28b3fd Clean else 2017-12-15 10:06:19 +01:00
Adrien Loison
f5168114d0 Merge Reader and Writer entities
Merged Cell/Row/Style entities
2017-11-19 02:54:17 +01:00
Adrien Loison
4d1d1c1e87 various improvements 2017-11-19 02:41:07 +01:00
Adrien Loison
102e17159c Make ODS reader return Row object 2017-11-19 01:36:18 +01:00
Adrien Loison
68a96367a8 Remove StyleMerger from RowManager 2017-11-18 21:19:31 +01:00
Adrien Loison
78b6639480 Make XLSX reader return Row objects 2017-11-18 20:53:22 +01:00
Adrien Loison
a665b974fa Make CSV reader return Row objects 2017-11-18 19:08:27 +01:00