Commit Graph

358 Commits

Author SHA1 Message Date
Thomas Fussell
d2be054b7c optimize shared strings and handle formula strings correctly 2017-05-10 08:44:25 -04:00
Thomas Fussell
237fdcc84b ignore missing calcChain when comparing xlsx files during testing 2017-05-08 11:40:01 -04:00
Thomas Fussell
f32859b257 stop trying to read generated agile encryption info xml for now since it's not valid 2017-05-03 12:16:18 -04:00
Thomas Fussell
239c76659f work on writing a valid compound document 2017-05-02 22:22:22 -04:00
Thomas Fussell
ee642fc6c1 getting there 2017-04-30 20:21:47 -04:00
Thomas Fussell
b7bf16d47c implement input and output streambufs for compound document streams 2017-04-30 17:23:28 -04:00
Thomas Fussell
f42d3eee74 move vector_streambuf definitions to a separate file, fix zip buffer bug 2017-04-29 12:29:41 -04:00
Thomas Fussell
f5b5d67594 wip 2017-04-28 17:56:05 -04:00
Thomas Fussell
be37df3c86 intermediate commit 2017-04-28 12:42:42 -04:00
Thomas Fussell
6334907de7 work on short streams 2017-04-28 10:58:55 -04:00
Thomas Fussell
a90b32f386 switch to full in-memory approach, still working 2017-04-26 23:19:28 -04:00
Thomas Fussell
bb91308dd4 work in progress 2017-04-26 12:02:49 -04:00
Thomas Fussell
1e1e8272ae coding is done finally. time to debug some compound files 2017-04-25 18:14:47 -04:00
Thomas Fussell
c642db6cc2 continue fleshing out cdf writing, getting close now... 2017-04-24 16:06:58 -04:00
Thomas Fussell
b2a5110939 organize detail files, start wiring up encryption logic 2017-04-20 14:03:03 -04:00
Thomas Fussell
adda7b877a add meta tests (tests that test test functions), optimize sha calls, test incorrect passwords 2017-04-18 18:30:54 -04:00
Thomas Fussell
b3cc07e5db include header for std::fabs 2017-04-13 22:38:26 -04:00
Thomas Fussell
05c1565a83 link in libstudxml for tests for some reason 2017-04-13 21:53:58 -04:00
Thomas Fussell
104e3bea25 clean up samples and benchmarks, data handling 2017-04-13 20:18:32 -04:00
Thomas Fussell
c68aa8fc84 finish wiring up tests 2017-04-13 19:24:20 -04:00
Thomas Fussell
185d108e82 delete some empty test suites 2017-04-13 19:03:59 -04:00
Thomas Fussell
b85680c5ed start rewiring tests 2017-04-13 19:01:30 -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
5b9304960c accept utf8 passwords for decrypting workbooks, #144 2017-04-12 19:21:21 -04:00
Thomas Fussell
fb59d5b880 fix windows build 2017-04-11 22:25:33 -04:00
Thomas Fussell
a7cd2c9ee5 link in libstudxml as object files 2017-04-11 16:04:17 -04:00
Thomas Fussell
fc4d284615 begin removing external dependencies 2017-04-11 11:08:16 -04:00
Thomas Fussell
8d04b6501c keep debugging coverage 2017-03-21 22:34:49 -04:00
Thomas Fussell
d7ee03d620 Merge branch 'master' of github.com:tfussell/xlnt 2017-03-18 21:31:05 -04:00
Thomas Fussell
21d05c4572 remove tests requirement on threads, add setting to disable tests 2017-03-18 21:30:26 -04:00
Thomas Fussell
d7cd24c9f2 specify python interpreter for cxxtestgen 2017-03-17 00:13:58 -04:00
Thomas Fussell
c2365b3b31 set dll path before running tests, copy xlnt dll 2017-03-11 17:28:03 -05:00
Thomas Fussell
98d5b64706 link libstudxml to xlnt.test too 2017-03-11 14:57:08 -05:00
Thomas Fussell
5e60b61fe9 specify module path 2017-03-11 14:47:56 -05:00
Thomas Fussell
2bbcb9f7bf link cryptopp to xlnt.test 2017-03-11 14:40:34 -05:00
Thomas Fussell
80c7664509 add cxxtest to the source tree, external depepdencies are giving me a headache 2017-03-11 14:05:50 -05:00
Thomas Fussell
92eaaeee85 I don't even know at this point 2017-03-11 11:25:03 -05:00
Thomas Fussell
3b35dbb901 specify cryptopp library name for appveyor 2017-03-11 11:15:35 -05:00
Thomas Fussell
f42a0008b7 still need to include libstudxml in xlnt.test, I forgot 2017-03-11 10:48:58 -05:00
Thomas Fussell
b4d84f29f1 link zlib in a better way 2017-03-11 10:37:28 -05:00
Thomas Fussell
4f47087d7e correct cxxtestgen location 2017-03-11 10:13:42 -05:00
Thomas Fussell
77eeb3b567 fix cxxtestgen directory 2017-03-10 19:10:56 -05:00
Thomas Fussell
db259e9422 workaround for cxxtestgen 2017-03-10 19:08:03 -05:00
Thomas Fussell
e93e8ed091 fix linking 2017-03-10 19:00:10 -05:00
Thomas Fussell
daae577178 stop trying to build zlib and cryptopp locally 2017-03-10 18:33:20 -05:00
Thomas Fussell
0aa26019e2 clean up cmake lists 2017-03-05 22:39:27 -05:00
Thomas Fussell
3db6cc8f0f use externalproject instead of git submodules for dependencies 2017-03-02 08:41:17 -05:00
Thomas Fussell
9cdf31065c improve third-party lib handling for vcpkg 2017-02-28 00:00:25 -05:00
Thomas Fussell
767d498dac separate crypto_helper into header file, fix lots of stuff 2017-02-17 23:11:06 -06:00
Thomas Fussell
84011553a8 rename some things and fix some formatting 2017-02-10 20:22:38 -08:00
Thomas Fussell
85a3f2d60a add a custom property to the condensed file 2017-02-03 19:40:39 -06:00
Thomas Fussell
7a18c816b6 re-enable round-trip tests, continue condensing test files 2017-01-22 14:54:07 -05:00
Thomas Fussell
0c100e166a fix up comments, hyperlinks, and formulae consumption tests 2017-01-21 19:12:26 -05:00
Thomas Fussell
e47baaf008 begin condensing test files, no reason to have so many [ci skip] 2017-01-21 11:35:47 -05:00
Thomas Fussell
e4ec1a2850 use system packages for zlib, cryptopp, and cxxtest. WIP [ci skip] 2017-01-21 10:12:08 -05:00
Thomas Fussell
a2bfdee2f2 intermediate commit 2017-01-21 09:04:10 -05:00
Thomas Fussell
cc5952ec19 rename zip to zstream in tests too 2017-01-04 21:14:37 -05:00
Thomas Fussell
cc1a5e15f6 clean up test xml_helper, rename zip to zstream 2017-01-04 19:02:31 -05:00
Thomas Fussell
c43561b4bd remove calcChain when no formulae remain in any cell, correct calcChain relationship type string, closes #98 2017-01-02 19:13:38 -05:00
Thomas Fussell
78d67ec37d add test xlsx for custom properties consumption 2017-01-02 17:42:54 -05:00
Thomas Fussell
42c9233ad9 compile and link third-party amalgamation as a static lib instead of object files and fix clang warnings in cryptopp 2017-01-02 17:41:39 -05:00
Thomas Fussell
7de0b05480 fix zip header error when unzipping for #103 2016-12-31 19:15:09 -05:00
Thomas Fussell
66b5187e73 stop trying to produce non-excel style xlsx files 2016-12-29 18:36:29 -05:00
Thomas Fussell
c637f412b6 continue working through xml problems as a result of fixing xml comparison 2016-12-26 09:38:26 -05:00
Thomas Fussell
c8f2ca204b clang-format all source files, fix broken test helpers--lots of cleanup necessary as a result [ci skip] 2016-12-24 10:04:57 -05:00
Thomas Fussell
008461bf60 finish full header/footer implementation, add support for page breaks, clean up row/column properties interface 2016-12-22 18:57:22 -05:00
Thomas Fussell
886605d643 fix msvc build with some defines 2016-12-15 08:27:16 +01:00
Thomas Fussell
414fe5da39 suppress dev warnings in cryptopp cmake, locate python more flexibly using find_package 2016-12-14 08:27:09 +00:00
Thomas Fussell
e1157625a5 begin refining headers and footers, remove dependency on pugixml 2016-12-10 00:18:50 +00:00
Thomas Fussell
c55aac9ecf rename getters and setters to the property name, many breaking changes\! 2016-12-02 14:37:50 +01:00
Thomas Fussell
a1ff8c0ed2 parse relationship mode and implement reading hyperlinks, closes #87 2016-11-30 01:05:47 +01:00
Thomas Fussell
2cc3f7947a clean up xml parsing, fix numbers xlsx decryption, unskip some tests 2016-11-25 13:13:55 +00:00
Thomas Fussell
455be8fb5f fix mingw build, closes #80 2016-11-19 19:41:21 -05:00
Thomas Fussell
f90e35e007 optimize format garbage collection and apply style fills to formats correctly, fixes #79, fix cell iteration, closes #73, add third-party licenses to LICENSE.md, update README, fix all clang and msvc warnings 2016-11-09 19:52:18 -05:00
Thomas Fussell
6c508845cc link with gcov 2016-10-31 23:03:34 -04:00
Thomas Fussell
0d97105122 clean up zip.cpp, enable and fix compiler warnings, use equality instead of hashing for style components, compile all cpp files in sample directory, track remote branches for submodules 2016-10-31 20:48:43 -04:00
Thomas Fussell
dce2367524 fix clang build 2016-10-30 21:44:43 -04:00
Thomas Fussell
012dd0984e initial implementation of wstring filenames 2016-10-30 21:17:51 -04:00
Thomas Fussell
5b4de6a150 use streams to access zip files and their contents instead of std::stringstream to reduce memory usage, replaces miniz with zlib, closes #66 2016-10-30 15:48:40 -04:00
Thomas Fussell
82311c96e4 implement reading of cell comments 2016-10-29 10:23:04 -04:00
Thomas Fussell
de23f63314 use pthreads on non-windows builds of xlnt tests 2016-10-27 22:44:08 -04:00
Thomas Fussell
3c7c40cdfa make build system modular 2016-10-27 18:40:20 -04:00
Thomas Fussell
f0f0607638 revert to old cmake output directory method, fix travis build 2016-10-25 21:12:57 -04:00
Thomas Fussell
c49341c82f clean up cmake build, fix warnings, improve configuration, general
housekeeping, fixes #72, fixes #70
2016-10-25 20:22:22 -04:00
Thomas Fussell
9c8cba9f3f finally figured out how to decrypt with botan--swapping back out for botan 2016-10-24 22:09:15 -04:00
Thomas Fussell
aea237a632 implement ooxml decryption (standard and agile) 2016-10-23 22:40:05 -04:00
Thomas Fussell
2d7ecafb67 add missing header 2016-10-18 19:27:26 -04:00
Thomas Fussell
a5d50b8ec6 commit in-progress work for reading/writing password protected workbooks, #69 (not working yet) 2016-10-10 07:28:49 -04:00
Thomas Fussell
941bd2a672 translate theme to libstudxml, ugh... 2016-09-18 21:49:37 -04:00
Thomas Fussell
a03805acbf begin testing styles more extensively 2016-09-11 14:57:34 -04:00
Thomas Fussell
ba2186ff7b uncomment/unskip some tests 2016-09-07 22:39:13 -04:00
Thomas Fussell
3d21a83c93 make xml comparisons in xml helper content-type aware, fix excel style workbook generation 2016-09-05 19:17:36 -07:00
Thomas Fussell
182e37958d Merge branch 'master' of http://github.com/tfussell/xlnt 2016-08-16 00:24:01 -04:00
Thomas Fussell
94881ce660 begin correctly implementing styles and formats 2016-08-16 00:23:49 -04:00
Thomas Fussell
ae1667f58e add basic numbers-style xlsx 2016-08-15 19:53:38 -04:00
Thomas Fussell
a7067db2ba unskip a few more tests and fix xml helper node comparison 2016-08-13 19:44:45 -04:00
Thomas Fussell
31911b1afc remove schemata, remove test xml data, implement minimal round-tripping 2016-08-13 14:45:26 -04:00
Thomas Fussell
1b5bdbeb18 improve manifest interface, work on round-tripping 2016-08-12 00:22:14 -04:00
Thomas Fussell
2fff29ba86 fix non-windows build errors 2016-08-06 10:50:29 -04:00
Thomas Fussell
6c829a235a improve manifest, implement true thumbnail handling, being refactoring serialization tests 2016-08-06 10:40:17 -04:00
Thomas Fussell
cf80c46b66 a little refactoring 2016-08-05 01:52:05 -04:00
Thomas Fussell
461b9fa106 convert path_helper return to path 2016-08-03 09:00:58 -04:00
Thomas Fussell
ccc3995709 start correctly implementing opc 2016-08-03 00:12:18 -04:00
Thomas Fussell
4234a62b8b clean up api and do more testing 2016-08-01 18:33:43 -04:00
Thomas Fussell
d39f5b2299 improve manifest 2016-07-29 17:50:33 -04:00
Adam Nielsen
22be565b92 Add new test to confirm read then write doesn't change worksheet order 2016-07-25 11:38:15 +10:00
Thomas Fussell
8ef1fe1a28 test and implement reading gradient fill 2016-07-23 20:41:55 -04:00
Thomas Fussell
d1d9471e15 test opening bad files 2016-07-22 23:21:53 -04:00
Thomas Fussell
ce0ae608ee test inlinestr 2016-07-21 20:44:00 -04:00
Thomas Fussell
894c46c920 finish renaming test helpers and fix windows errors 2016-07-20 19:54:24 -04:00
Thomas Fussell
e222e1b268 fix warnings 2016-07-20 19:16:51 -04:00
Thomas Fussell
dec6aaa49a test some stuff, rename some other stuff 2016-07-20 19:04:44 -04:00
Thomas Fussell
ef2b8de33d fix windows bug 2016-07-20 10:28:12 +08:00
Thomas Fussell
f614c737f5 test text 2016-07-16 18:42:56 -04:00
Thomas Fussell
9f1ac60d20 start implementing complex number formats, test builtin formats 2016-07-05 21:27:35 -04:00
Thomas Fussell
627e6d438e Merge remote-tracking branch 'xpol/remove-and-ignore-genreated-test-runner' 2016-07-04 12:21:46 -04:00
Thomas Fussell
9ae506c1ea move serialization classes to detail, recouple with pugixml (no reason to abstract) 2016-07-03 19:22:08 -04:00
Xpol Wan
49e47a57a2 Remove and ignore generated test runner. 2016-06-29 17:30:26 +08:00
Thomas Fussell
135af6e6c9 fix styles -- Excel wanted to repair saved workbooks 2016-05-15 15:03:02 -04:00
Thomas Fussell
e1e29e1f30 Merge remote-tracking branch 'xpol/shared-string-with-different-formatted-parts' into styles-refactoring 2016-05-14 09:30:05 -04:00
Xpol Wan
c18110e282 add support for one cell with different formatted text nodes.
Eg, In one cell the text is abcdef, where abc and def have different format (e.g., different colours or fonts).
The the sharedString.xml in xlsx have multiple r node in si node:

```xml
    <si>
        <r>
            <t>abc</t>
        </r>
        <r>
            <rPr><sz val="10"/><color rgb="FFFF0000"/><rFont val="微软雅黑"/><charset val="134"/></rPr>
            <t>def</t>
        </r>
    </si>
```

Currently `shared_strings_serializer::read_shared_strings()` only reads the first r node, and should consider as a bug.

This commit fixes this bug by read all `r.t.text` values in one `si` node and concat the text into one single string.
2016-05-14 16:24:21 +08:00
Thomas Fussell
739be9d850 merge changes from other computer 2016-05-13 12:32:44 -04:00
Thomas Fussell
31b546b1d5 general API improvements 2016-05-11 19:24:53 -04:00
Thomas Fussell
9bd6e92297 not done yet. I can't beleive how complicated this is 2016-04-30 16:19:45 -04:00
Adam Nielsen
62c00744b0 Add test for duplicate shared string 2016-04-26 13:28:57 +10:00
Adam Nielsen
c20795dd9f Add test for charset error when opening valid .xlsx 2016-04-22 16:30:32 +10:00
Thomas Fussell
0649526796 improve build 2016-01-16 21:07:02 -08:00
Thomas Fussell
1ec1b2ac83 add test to reproduce issue #34 2015-12-22 14:39:06 -05:00
Thomas Fussell
c456c920cc fix travis 2015-11-21 00:43:32 -05:00
Thomas Fussell
21315ce803 forgot to revert test helpers 2015-11-10 19:46:57 -05:00
Thomas Fussell
3e0c666263 add samples to be used in documentation and to be compiled 2015-11-10 19:16:50 -05:00
Thomas Fussell
7b5246f9dd finish up custom string class implementation 2015-11-07 18:37:23 -05:00
Thomas Fussell
665f8fbebc made a new string class for dll exports 2015-11-04 18:45:03 -05:00
Thomas Fussell
a2919dfed8 add missing runtime_error include and improperly located headers 2015-11-03 08:46:40 -05:00
Thomas Fussell
2c8ccdfcda restructure source and clean up cmake scripts 2015-11-03 08:38:09 -05:00
Thomas Fussell
c9b6b9e473 fix windows errors 2015-11-02 14:22:13 -05:00
Thomas Fussell
e16d381b11 remove accidental inclusion of some debug code 2015-11-01 23:56:49 -05:00
Thomas Fussell
2f8032437c fix all tests 2015-11-01 23:52:19 -05:00
Thomas Fussell
fef68e460f restructure build system 2015-11-01 12:31:29 -05:00
Thomas Fussell
832294ace6 use new windows include in all files 2015-11-01 09:47:52 -05:00
Thomas Fussell
9dce7b8f0c almost done. phew... 2015-10-30 18:54:04 -04:00
Thomas Fussell
84e9dd099e keep refactoring serialization code, updating tests 2015-10-29 23:16:31 -04:00
Thomas Fussell
75ec0f8eee keep refactoring serialization code 2015-10-29 19:37:07 -04:00
Thomas Fussell
c884ad7f82 start refactoring serialization code 2015-10-29 13:46:56 -04:00
Thomas Fussell
ea46558d2c revert failing test 2015-10-26 18:13:42 -04:00
Thomas Fussell
c113bf0a98 try out failing test 2015-10-26 18:10:43 -04:00
Thomas Fussell
959ba08e4a fix travis build 2015-10-26 17:35:47 -04:00
Thomas Fussell
0d53471ff7 fix cmake pre build step 2015-10-26 16:26:47 -04:00
Thomas Fussell
c07b97f3e8 improve printing cells to stream and round tripping 2015-10-26 00:26:48 -04:00
Thomas Fussell
c802a1f591 finished minimal styles implementation 2015-10-23 14:42:36 -04:00
Thomas Fussell
21b3d366d6 change some things 2015-10-20 23:30:10 -04:00
Thomas Fussell
3b56af6b8e still working on styles, so close 2015-10-19 00:03:52 -04:00
Thomas Fussell
2f07e0ae62 continue implementing styles 2015-10-18 15:30:46 -04:00
Thomas Fussell
a63984969e improve date handling and printing 2015-10-16 18:35:11 -04:00
Thomas Fussell
e3bb0be98e work on writer 2015-10-14 18:05:13 -04:00
Thomas Fussell
89b1aca602 add wrapper scripts for building, switch from premake to genie 2015-10-14 12:21:18 -04:00
Thomas Fussell
6b3781d03b begin refactoring writing code 2015-10-14 00:03:48 -04:00
Thomas Fussell
7316e2184c replace pugiconfig.hpp with local header, fix some constness, dry up code 2015-10-13 16:35:22 -04:00
Thomas Fussell
301e81d698 integrate value into cell, continue synchronizing with openpyxl 2.4 2015-10-13 13:56:07 -04:00
Thomas Fussell
77d6bbb41b fix precision on time to number, fix type guessing, fix long long on osx 2015-10-06 12:31:49 -04:00
Thomas Fussell
ffedc2cb33 literals should be long doubles to make float comparison exact 2015-10-02 10:02:54 -04:00
Thomas Fussell
c03f7d28e4 begin synchronizing tests with openpyxl 2.4 branch, fix type guessing logic 2015-10-01 23:09:25 -04:00
Thomas Fussell
6d39ac1d31 skip styles tests with less noise 2015-10-01 18:39:15 -04:00
Thomas Fussell
f25945172e no need to have cxxtest autogenerated file in source control 2015-10-01 18:36:18 -04:00
Thomas Fussell
8f669c11db update copyright, add overloads for all int sizes, fix line ending in zip_file test 2015-10-01 18:14:42 -04:00
Thomas Fussell
2831b25f09 add basic cmake support, not tested on windows, and clean up premake scripts 2015-09-23 19:24:43 -04:00
Thomas Fussell
cc1da90873 merge changes 2014-08-13 18:58:11 -04:00
Thomas Fussell
5ccc345f8c some changes 2014-08-01 16:46:54 -04:00
Thomas Fussell
7829e2968c fix weird merge artifact 2014-08-01 09:53:32 -04:00
Thomas Fussell
767b0708e2 merge 2014-08-01 09:51:28 -04:00
Thomas Fussell
57aa270f25 add new zip class to repo 2014-08-01 09:44:21 -04:00
Thomas Fussell
71e50ed70a fix for windows build 2014-07-29 18:20:11 -04:00
Thomas Fussell
eb251f1e47 switch zlib to miniz, update documentation, update build system 2014-07-29 17:39:00 -04:00
Thomas Fussell
01b9a26510 actually produce a working spreadsheet now 2014-07-28 17:55:57 -04:00
Thomas Fussell
16f8c3223a continue synchronizing tests and start implementing styles 2014-07-26 16:19:15 -04:00
Thomas Fussell
c5967686ff implement remaining tests 2014-07-25 16:39:25 -04:00
Thomas Fussell
24fbb75a9e fix some things 2014-07-24 17:31:46 -04:00
Thomas Fussell
bb064532ad all tests pass now 2014-07-23 20:51:28 -04:00
Thomas Fussell
93bd3d9989 fix some things 2014-07-23 16:00:09 -04:00
Thomas Fussell
aec8b465d9 add support for column-major iteration of worksheet 2014-07-19 17:42:04 -04:00
Thomas Fussell
ac5e29b125 fix some things 2014-07-19 16:59:05 -04:00
Thomas Fussell
c7dbf12b51 Merge branch 'master' of github.com:tfussell/xlnt 2014-07-19 14:43:56 -04:00
Thomas Fussell
a7bb9f0e77 lots of fixes 2014-07-19 14:43:48 -04:00
Thomas Fussell
321fda99f0 sync test_worksheet 2014-07-18 16:20:41 -04:00
Thomas Fussell
fdb4796c62 sync test_read 2014-07-18 15:18:23 -04:00
Thomas Fussell
a87c144340 fix dates and props 2014-07-16 19:53:45 -04:00
Thomas Fussell
45b03c03ef minor fixes for gcc build 2014-06-18 15:12:44 -04:00
Thomas Fussell
4d62e0bb75 remove optimization, test_dump, and start fixing relationships 2014-06-15 13:06:47 -04:00
Thomas Fussell
463bc3a677 make tweaks for visual studio 2014 compiler 2014-06-15 12:16:34 -04:00
Thomas Fussell
65962951f1 start making reader/writer actually use package structure 2014-06-13 17:06:23 -04:00
Thomas Fussell
ff84734e2d fix problem from last commit 2014-06-13 15:05:24 -04:00
Thomas Fussell
21163cfb23 add some new functionality 2014-06-13 11:41:32 -04:00
Thomas Fussell
6d1eb3b149 all tests pass now, except for some strange nullptr errors in test_read_date_value() 2014-06-12 17:04:37 -04:00
Thomas Fussell
a7ead4ee18 work on datetime functionality 2014-06-11 16:41:34 -04:00
Thomas Fussell
f9ba11672d add some new tests, break some things 2014-06-10 18:36:31 -04:00
Thomas Fussell
98f2c5f10a still fixing things 2014-06-10 17:12:15 -04:00
Thomas Fussell
05e2bf251b fix some things 2014-06-10 00:29:49 -04:00
Thomas Fussell
b2ddc13a95 fix some more tests 2014-06-07 11:49:19 -04:00
Thomas Fussell
0f923d3c12 start working through new tests 2014-06-05 17:42:15 -04:00