Commit Graph

1224 Commits

Author SHA1 Message Date
Crzyrndm
dc8ab8dce6 add more tests for worksheet iterator, add operator--
* operator-- completes the naive bidirectional iterator requirements
* tests for various construction and assignment behaviours
* tests for iteration and dereferencing behaviours
2018-06-18 22:38:40 +12:00
Crzyrndm
8b885c6a8d worksheet_iterator - operator* const overloads
Users may still want to dereference a const iterator (note: not a const_iterator).
Also use the "reference" typedef to ensure there is only 1 source of information
2018-06-18 22:38:38 +12:00
Crzyrndm
91d298abd4 worksheet_iterator - rule of 5/0
For rule of 5/0, where no implementation is required, all 5 operations have been declared as defaulted. This is less likely to forget definitions for all 5 if required
- removed forwarding of copy ctor to assignment (which was defaulted already) in favour of defaulted copy ctor
- added defaulted move assignment/ctor and destructor

Changed workbook reference to a pointer to allow tests to compile (reference isn't rebindable so defaulted assignment is equivalent to deleted)
2018-06-18 22:38:37 +12:00
Crzyrndm
62f7eecf65 Remove double definition 2018-06-18 22:38:36 +12:00
Crzyrndm
b6e44f1faa Revert "cell iterator - add operator->"
This reverts commit 1b705ae043ae1b43d0ecbc93da04c944383bb296.
2018-06-18 22:38:34 +12:00
Crzyrndm
2169d24714 range_iterator - operator* const overloads
Users may still want to dereference a const iterator (note: not a const_iterator).
Also use the "reference" typedef to ensure there is only 1 source of information
2018-06-18 22:38:33 +12:00
Crzyrndm
89e44f20c8 range_iterator - rule of 5/0
For rule of 5/0, where no implementation is required, all 5 operations have been declared as defaulted. This is less likely to forget definitions for all 5 if required
- removed forwarding of copy ctor to assignment (which was defaulted already) in favour of defaulted copy ctor
- added defaulted move assignment/ctor and destructor
2018-06-18 22:38:32 +12:00
Crzyrndm
266016b685 cell iterator - move parameters aren't const
copy/paste error
2018-06-18 22:38:31 +12:00
Crzyrndm
fcca46012e cell iterator - add operator->
Implementation just forwards to operator*, but this is a typical operator in the iterator API and is suprising and inconvenient that it is not present
2018-06-18 22:38:30 +12:00
Crzyrndm
45acf665e3 cell_iterator - operator* const overloads
Users may still want to derederence a const iterator (note: not a const_iterator).
Also use the "reference" typedef to ensure there is only 1 source of information
2018-06-18 22:38:28 +12:00
Crzyrndm
098b0d8044 cell_iterator - rule of 5/0
For rule of 5/0, where no implementation is required, all 5 operations have been declared as defaulted. This is less likely to forget definitions for all 5 if required
- removed forwarding of copy to assignment (which was defaulted already) in favour of defaulted copy ctor
- added defaulted move assignment/ctor and destructor
2018-06-18 22:38:27 +12:00
Joshua
e9071432e1 Remove uses of std::iterator (deprecated in C++17)
Detailed reasoning for the deprecation is provided by the paper proposing deprecation (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html) and a related LWG issue (https://cplusplus.github.io/LWG/issue2438).

This was the only issue preventing a clean compile with VS 15.7.2 with c++17/c++latest set as the target language

The issue could be resolved in two ways. Providing a custom replacement to std::iterator (a very simple structure) or by providing the 5 required typedefs. The only functional difference from my reading is that the typedefs are not immediately available to the implementer with the inheritance. I find the inline typedefs to be clearer hence the selection in this commit
2018-06-18 22:38:26 +12:00
Thomas Fussell
e350a7734d implement abspath and archid flags, fixes some serialization problems 2018-05-28 23:13:57 -04:00
Thomas Fussell
6eb16243ca work on round-tripping for #230 2018-04-24 19:43:34 -04:00
Thomas Fussell
78ae9bbb89 specify path return value namespace to fix compiler error, closes #269 2018-04-24 18:06:30 -04:00
Thomas Fussell
ec1584240c specify relationship member namespace to fix compiler error, closes #268 2018-04-24 18:03:55 -04:00
Thomas Fussell
50850ffb8a work on round-tripping for #230 2018-04-24 17:58:17 -04:00
Thomas Fussell
617f7a2525 improve hyperlinks and style round tripping 2018-03-21 09:03:37 -04:00
Thomas Fussell
410e73d594 work on hyperlinks, x14 extentions, other round tripping silliness 2018-03-16 21:21:16 -04:00
Thomas Fussell
2426215801 implement sheet view serialization 2018-03-14 20:12:07 -04:00
Thomas Fussell
0f0d3de75f implement sheetFormatPr, x14ac:dyDescent, reordering workbook rels so sheets come first after insertions 2018-01-26 14:32:00 -05:00
Thomas Fussell
90633d0e8e copyright year bump (2018) 2018-01-22 09:38:48 -05:00
Thomas Fussell
c960453ff4 prevent supression of failing round-trip tests 2017-12-10 15:03:03 -05:00
Thomas Fussell
44a8c8e79e minor reformatting 2017-12-09 16:04:44 -05:00
Thomas Fussell
675a8fad8a Merge branch 'sukoi26-dev' into dev 2017-12-09 15:46:10 -05:00
Thomas Fussell
1c85188ec6 Merge branch 'dev' of https://github.com/sukoi26/xlnt into sukoi26-dev 2017-12-09 15:45:49 -05:00
Thomas Fussell
a653a39544 reformat a little 2017-12-08 15:31:25 -05:00
Thomas Fussell
182dea155b Merge branch 'dev' of github.com:tfussell/xlnt into dev 2017-12-08 15:20:36 -05:00
Thomas Fussell
842eedae8c Merge branch 'TataMata-master' into dev 2017-12-08 15:13:49 -05:00
Thomas Fussell
20c7d3437c
Merge pull request #248 from tlanc007/cellPropertyColors
custom_value_traits.hpp: pattern_fill from_string() ignores case
2017-12-08 14:37:24 -05:00
Thomas Fussell
e261743032
Merge pull request #243 from Erroneous1/bug/miniz_const
fix -Wcast-qual in miniz
2017-12-08 13:59:32 -05:00
tal
b008eacd89 custom_value_traits.hpp: pattern_fill from_string() ignores case
Values like lightGray will match with lightgray.  Unexpected inputs will
be ignored and return none.

Needs prama to clang to be happy.
2017-11-22 12:44:49 -07:00
TataMata
d0bacf548c
Reformatted source
Reformatted pull request to match the library formatting style.
2017-11-12 10:34:51 +01:00
TataMata
8f9722686b
Delete CMakeLists.txt.user 2017-11-06 16:50:18 +01:00
Bernard Čupić
7cae301039 Added forgotten implementataion of const cell operator[std::size_t cell_index] const 2017-11-06 16:15:38 +01:00
sukoi26
4f07495abb
optimize latest commit missing a test 2017-11-06 14:12:08 +01:00
TataMata
6b668fd04e
Fix for the "index out of bounds" exception while reading styles
There was a bug introduced in version 1.2 in reading styles. As from the Office Open XML documentation:
Every cell will have a reference to one <xf> in the <cellXfs> collection. This is direct formatting for the cell. To apply a style to the cell, the <xf> references the style using the xfId attribute. The xfId attribute is an index into the <cellStyleXFs> collection, which collects the cell styles available to the user. The <cellStyleXFs> contains one <xf> for each style. Each such <xf> is tied to its name via an index (in its xfId attribute) from the <cellStyles> collection. 
Existing implementation simply tried to fetch a style name by using index in the styles vector causing an index_out_of_range exception for each xfId that was ot of bounds of cellStyles collection. What was needed is to match the xfId attribute of the cellStyle element.
2017-11-06 12:00:51 +01:00
TataMata
b899c9db5c
Fix bug in cell style assingment
There was a bug introduced in version 1.2 in reading styles. As from the Office Open XML documentation:
2017-11-06 11:55:06 +01:00
sukoi26
caeadfc83c optimize code empty row cell 2017-11-04 23:41:48 +01:00
sukoi26
4a3e711a1b bug introduce by the commit continue work on #230, improves style/xf handling
as the style exist it is rewritten in cellStyleXfs and cellXfs,
with  the fillId test for format and style. remove the test and use only the format.
2017-11-04 18:12:38 +01:00
Aaron Bishop
0201f22237 fix const correctness error 2017-11-02 17:07:01 -04:00
Thomas Fussell
c4a2bb8c6d Revert "add row height and column width serialization tests"
This reverts commit dc4befd867.
2017-10-30 19:53:39 -04:00
Thomas Fussell
29abdfa702 Merge branch 'master' into dev 2017-10-30 19:44:32 -04:00
Thomas Fussell
5b8820d2cd
Merge pull request #240 from shamanas/master
Setting the height of a row now produces the expected result.
2017-10-30 19:41:05 -04:00
Thomas Fussell
470c655df6 fix empty row height/cell width, #235 2017-10-30 19:36:24 -04:00
Thomas Fussell
dc4befd867 add row height and column width serialization tests 2017-10-30 17:23:14 -04:00
Thomas Fussell
06b315b352 add interface to worksheet and range for clearing cells entirely, not just their values, for #232 2017-10-26 13:45:56 -04:00
Thomas Fussell
0e0bf0f8a1 continue work on #230, improves style/xf handling 2017-10-26 12:54:54 -04:00
Alexandros Naskos
7f08c77a90 Empty row properties are now written correctly. Setting a row's height now also causes customHeight to be emitted. 2017-10-25 15:04:51 +03:00
Thomas Fussell
0dcd56ebc9 (xlntpyarrow) check builder append return status and use double cell values instead of long double 2017-09-28 09:05:23 -04:00