Commit Graph
178 Commits
Author SHA1 Message Date
Alexander Hofstede 615c07649c Merge branch 'master' into custom-column-widths
# Conflicts:
#	src/Spout/Writer/ODS/Manager/WorksheetManager.php
#	src/Spout/Writer/XLSX/Manager/WorksheetManager.php
2021-04-05 11:30:34 +02:00
Antoine Lamirault eb84ec9364 Rename ManagedStyle to PossiblyUpdatedStyle and add documentation 2021-03-30 19:42:21 +02:00
Antoine Lamirault 11d91e1740 Code review changes 2021-03-30 19:42:21 +02:00
Antoine Lamirault 197fb9987a Register style can be skipped when already registered 2021-03-30 19:42:21 +02:00
jmsche c29d1877b8 Fixed code style (probably due to recent php-cs-fixer version) 2021-02-08 22:03:03 +01:00
Petr Skoda 816596183f Add full support for PHP 8.0
Unfortunately due to PHPUnit 8.5 dependency
this also drops support for PHP 7.1
2021-02-08 14:31:55 +01:00
Alexander Hofstede 73f2a522c0 Satisfy php-cs-fixer 2020-10-30 07:53:17 +01:00
Martin Wind 9727bec850 Fix ODS column widths 2020-06-13 20:43:55 +02:00
Alexander Hofstede c1757d23bf Merge branch 'master' into custom-column-widths 2019-12-20 23:35:10 +01:00
Alexander Hofstede ffec80422b Attempt to satisfy php-cs-fixer 2019-12-20 23:33:28 +01:00
madflow ab973cab34 use existing base folder 2019-12-19 23:24:24 +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 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 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
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
Adrien Loison 6a6d1df9df Fix typo - Boder => Border 2019-10-17 07:37:37 +00:00
Alexander Rakushin 52312b7045 Added tests for StyleRegistry and StyleMerger 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 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 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
madflow e8693834a0 perf tests in development branch 2019-03-24 22:53:28 +01:00
Adrien Loison 171a2fab10 Fix test failure message 2019-02-02 09:55:16 +01: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 738ea30f35 use expectNotToPerformAssertions 2018-10-08 10:09:47 +02:00
madflow 8a1c48b6b0 rename EntityFactory for writers and readers #526 2018-09-03 11:15:09 +02:00
madflow b105d15f08 some migrations to PHP 7.1 2018-06-12 18:28:04 +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 01ad5af2c5 fix risky tests and assert true for silent tests 2018-03-25 15:35:19 +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
Gabriel Caruso 4c7adbb33f Refactoring tests 2017-12-15 10:09:18 +01:00
Gabriel Caruso 0efdf48119 Support PHPUnit 6 2017-11-27 00:24:13 +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
Adrien Loison c826d15472 Fix charachters escaping with CSV reader/writer
PHP's built-in functions fputcsv and fgetcsv are not RFC-4180 compliant and include an escape character that's not defined in the spec.
This results in escaping characters that should not be escaped.
This commit disables this escaping mechanism.
2017-11-11 16:21:05 +01:00
Adrien Loison e2b519d6f9 Fetch XML file paths from Workbook Relationships 2017-11-11 15:25:12 +01:00