Commit Graph

331 Commits

Author SHA1 Message Date
Crzyrndm
665d6a1c41 Comment fixes and clarifications 2018-06-18 22:38:41 +12:00
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
78ae9bbb89 specify path return value namespace to fix compiler error, closes #269 2018-04-24 18:06:30 -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
470c655df6 fix empty row height/cell width, #235 2017-10-30 19:36:24 -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
81812d6e29 implement sheet view selection consumption, closes #164 2017-09-13 09:36:42 -04:00
Thomas Fussell
12007fe2d8 change cell numeric value type from long double to double, closes #201 2017-09-08 21:05:34 -04:00
pebble2015
f3d5d18035 fix xwindow bug
fix xwindow bug
2017-08-27 13:44:06 +08:00
Thomas Fussell
8801a0e352 figured out the problem 2017-07-30 20:32:37 -07:00
Thomas Fussell
eaaa310cef start implementing xlsx2arrow params 2017-07-19 17:21:55 -07:00
Thomas Fussell
abdd1be7c8 move arrow logic to xlntpyarrow for now 2017-07-18 14:20:46 -07:00
Thomas Fussell
33399a5390 now we're getting somewhere! xlntpyarrow.xlsx2arrow returns an Arrow table that can be converted to a pandas DataFrame now 2017-07-15 10:39:36 -07:00
Thomas Fussell
5b95b3d463 begin implementing xlsx2arrow, fix msvc warnings, other stuff 2017-07-14 22:18:11 -07:00
Thomas Fussell
0be7563f8b ignore arrow warnings and foward declare arrow 2017-07-12 00:03:26 -07:00
Thomas Fussell
5c033905fb I see no good reason to make the arrow interface a separate lib. Let's just make it optionally compiled in the main target. 2017-07-11 20:55:08 -07:00
Thomas Fussell
22325a2836 try to make windows and linux builds both work 2017-07-05 15:04:57 -07:00
Thomas Fussell
f97ad6c1bd start working on streaming write 2017-07-04 17:52:46 -07:00
Thomas Fussell
cf2dc9d7fb include streaming reader in xlnt.hpp 2017-06-25 13:14:29 -04:00
Thomas Fussell
6f716c6e89 work on streaming cell reading, using ugly copy-pasted code for now [ci
skip]
2017-06-24 11:39:48 -04:00
Thomas Fussell
72b8bd6b67 work out how to handle worksheet rels during streaming parsing 2017-06-21 09:17:06 -04:00
Thomas Fussell
a9fd6b064e minor fixes to get it to compile. lots of failing tests for now... 2017-06-20 13:29:50 -04:00
Thomas Fussell
d7e7526beb add failing tests and begin restructuring worksheet reading [ci skip] 2017-06-17 10:53:37 -04:00
Thomas Fussell
342184139f intermediate commit 2017-06-15 18:10:27 -04:00
Thomas Fussell
9d312ee7f4 make the code compile 2017-06-14 15:43:25 -04:00
Thomas Fussell
b3c044948f start architecting streaming read/write api 2017-06-12 10:34:35 -04:00
Thomas Fussell
d2be054b7c optimize shared strings and handle formula strings correctly 2017-05-10 08:44:25 -04:00
Thomas Fussell
be11002a93 fix clang warnings 2017-04-23 11:53:52 -04:00
Thomas Fussell
62f659b901 fix some rough edges 2017-04-13 14:57:27 -04:00
Thomas Fussell
835e36d6ae initial commit withou cxxtest 2017-04-13 14:51:35 -04:00
Thomas Fussell
46df18c12b improve unicode tests 2017-04-13 10:58:40 -04:00
Thomas Fussell
05fb40438c Merge branch 'master' of github.com:tfussell/xlnt 2017-04-11 17:57:56 -04:00
Thomas Fussell
c902af7e17 fix doxygen warnings 2017-04-11 17:27:41 -04:00