react-native-nitro-xlsx 0.1.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NitroXlsx.podspec +27 -27
- package/Package.swift +35 -10
- package/README.md +220 -58
- package/android/CMakeLists.txt +24 -27
- package/android/cpp-adapter.cpp +12 -0
- package/android/src/main/java/com/margelo/nitro/xlsx/NitroXlsxPackage.kt +9 -0
- package/cpp/HybridNitroXlsx.cpp +25 -179
- package/cpp/HybridNitroXlsx.hpp +2 -2
- package/cpp/HybridXlsxConditionalFormat.cpp +252 -0
- package/cpp/HybridXlsxConditionalFormat.hpp +62 -0
- package/cpp/HybridXlsxConditionalFormats.cpp +46 -0
- package/cpp/HybridXlsxConditionalFormats.hpp +28 -0
- package/cpp/HybridXlsxWorkbook.cpp +159 -196
- package/cpp/HybridXlsxWorkbook.hpp +7 -2
- package/cpp/HybridXlsxWorksheet.cpp +433 -62
- package/cpp/HybridXlsxWorksheet.hpp +73 -26
- package/cpp/XlsxCacheDir.cpp +76 -0
- package/cpp/XlsxCacheDir.hpp +27 -0
- package/cpp/XlsxError.hpp +68 -0
- package/cpp/XlsxJson.cpp +185 -0
- package/cpp/XlsxJson.hpp +36 -0
- package/ios/XlsxCacheDir.mm +60 -0
- package/nitrogen/generated/android/NitroXlsx+autolinking.cmake +2 -0
- package/nitrogen/generated/shared/c++/HybridNitroXlsxSpec.hpp +5 -3
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatSpec.cpp +54 -0
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatSpec.hpp +95 -0
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatsSpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatsSpec.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridXlsxWorkbookSpec.cpp +3 -0
- package/nitrogen/generated/shared/c++/HybridXlsxWorkbookSpec.hpp +6 -1
- package/nitrogen/generated/shared/c++/HybridXlsxWorksheetSpec.cpp +47 -19
- package/nitrogen/generated/shared/c++/HybridXlsxWorksheetSpec.hpp +52 -20
- package/package.json +3 -3
- package/scripts/run-cpp-tests.sh +14 -0
- package/src/__mocks__/react-native-nitro-modules.ts +1 -0
- package/src/__tests__/index.test.ts +76 -7
- package/src/index.ts +107 -18
- package/src/specs/NitroXlsx.nitro.ts +141 -44
- package/thirdparty/OpenXLSX/.clang-format +118 -0
- package/thirdparty/OpenXLSX/.clang-tidy +28 -0
- package/thirdparty/OpenXLSX/.gitignore +130 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_before_XMLNode_wrappers +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_and_stripping +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_char_support +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_support +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespaced_name_disabled +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-08-11-benchmarks_post-XLCellIterator-Rework +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-08-14-benchmarks_post-default-row-column-style-support +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-09-02-benchmarks +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-12-19-benchmarks +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-12-30-benchmarks-post-XLSharedStrings-by-ref +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-01-09-benchmarks-post-conditionalFormatsAndSheetProtection +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-01-10-benchmarks-post-XLCellValue-bugfix +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-01-31-benchmarks-post-XLComments-implementation +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-02-02-benchmarks-post-XLRowIterator-Rework +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-07-20-benchmarks-after-hiding-pugixml-internals +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-08-29-benchmarks-after-code-review-with-libzip +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/Benchmark.cpp +249 -0
- package/thirdparty/OpenXLSX/Benchmarks/CMakeLists.txt +19 -0
- package/thirdparty/OpenXLSX/CMakeLists.txt +466 -0
- package/thirdparty/OpenXLSX/Documentation/CMakeLists.txt +31 -0
- package/thirdparty/OpenXLSX/Documentation/Doxyfile.in +2471 -0
- package/thirdparty/OpenXLSX/Documentation/DoxygenLayout.xml +194 -0
- package/thirdparty/OpenXLSX/Documentation/customdoxygen.css +1355 -0
- package/thirdparty/OpenXLSX/Examples/CMakeLists.txt +103 -0
- package/thirdparty/OpenXLSX/Examples/Demo1.cpp +279 -0
- package/thirdparty/OpenXLSX/Examples/Demo10.cpp +545 -0
- package/thirdparty/OpenXLSX/Examples/Demo1A.cpp +137 -0
- package/thirdparty/OpenXLSX/Examples/Demo2.cpp +65 -0
- package/thirdparty/OpenXLSX/Examples/Demo3.cpp +89 -0
- package/thirdparty/OpenXLSX/Examples/Demo4.cpp +86 -0
- package/thirdparty/OpenXLSX/Examples/Demo5.cpp +77 -0
- package/thirdparty/OpenXLSX/Examples/Demo6.cpp +103 -0
- package/thirdparty/OpenXLSX/Examples/Demo7.cpp +79 -0
- package/thirdparty/OpenXLSX/Examples/Demo8.cpp +117 -0
- package/thirdparty/OpenXLSX/Examples/Demo9.cpp +363 -0
- package/thirdparty/OpenXLSX/Examples/cmake/FindLIBZIP.cmake +61 -0
- package/thirdparty/OpenXLSX/Examples/external/CustomZip/CustomZip.hpp +256 -0
- package/thirdparty/OpenXLSX/LICENSE.md +29 -0
- package/thirdparty/OpenXLSX/Makefile.GNU +530 -0
- package/thirdparty/OpenXLSX/Notes/TBDs.txt +16 -0
- package/thirdparty/OpenXLSX/Notes/confirmed-TBCs.txt +8 -0
- package/thirdparty/OpenXLSX/Notes/styles-missing-support.xml +12 -0
- package/thirdparty/OpenXLSX/Notes/todo-list.txt +108 -0
- package/thirdparty/OpenXLSX/OpenXLSX/CMakeLists.txt +631 -0
- package/thirdparty/OpenXLSX/OpenXLSX/OpenXLSX.hpp +63 -0
- package/thirdparty/OpenXLSX/OpenXLSX/OpenXLSXConfig.cmake +11 -0
- package/thirdparty/OpenXLSX/OpenXLSX/cmake/bundle_static_library.cmake +198 -0
- package/thirdparty/OpenXLSX/OpenXLSX/cmake/patch_pkg_config.cmake +69 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/IZipArchive.hpp +361 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX-Exports.hpp +12 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCell.hpp +367 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellIterator.hpp +252 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellRange.hpp +223 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellReference.hpp +317 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellValue.hpp +793 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLColor.hpp +232 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLColumn.hpp +159 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCommandQuery.hpp +228 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLComments.hpp +270 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLConstants.hpp +18 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLContentTypes.hpp +264 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDateTime.hpp +175 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDocument.hpp +505 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDrawing.hpp +452 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLException.hpp +161 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLFormula.hpp +375 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLIterator.hpp +40 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLMergeCells.hpp +216 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLProperties.hpp +348 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRelationships.hpp +348 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRow.hpp +721 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRowData.hpp +488 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLSharedStrings.hpp +204 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLSheet.hpp +1640 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLStyles.hpp +2390 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLTables.hpp +132 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLWorkbook.hpp +404 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlData.hpp +283 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlFile.hpp +194 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlParser.hpp +282 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlParserForwardDeclarations.hpp +85 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLZipArchive.hpp +232 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/LibZip.hpp +447 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/OpenXLSXFileSystemTools.hpp +207 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/Zippy.hpp +1375 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCell.cpp +340 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellIterator.cpp +427 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellRange.cpp +221 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellReference.cpp +408 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellValue.cpp +519 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLColor.cpp +202 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLColumn.cpp +141 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLComments.cpp +637 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLContentTypes.cpp +329 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDateTime.cpp +269 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDocument.cpp +1678 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDrawing.cpp +784 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLFormula.cpp +201 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLMergeCells.cpp +357 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLProperties.cpp +810 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRelationships.cpp +529 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRow.cpp +918 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRowData.cpp +508 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLSharedStrings.cpp +220 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLSheet.cpp +1970 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLStyles.cpp +3014 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLTables.cpp +125 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLWorkbook.cpp +784 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlData.cpp +247 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlFile.cpp +160 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlParser.cpp +261 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLZipArchive.cpp +266 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/utilities/XLUtilities.hpp +478 -0
- package/thirdparty/OpenXLSX/README.md +1279 -0
- package/thirdparty/OpenXLSX/Scripts/cmake-cleanup.sh +102 -0
- package/thirdparty/OpenXLSX/Scripts/compile.sh +23 -0
- package/thirdparty/OpenXLSX/Scripts/demos-cleanup.sh +25 -0
- package/thirdparty/OpenXLSX/Scripts/demos-run-all.sh +60 -0
- package/thirdparty/OpenXLSX/Scripts/guarded-xml-format.sh +47 -0
- package/thirdparty/OpenXLSX/Scripts/make-gnu.sh +11 -0
- package/thirdparty/OpenXLSX/Scripts/uninstall-manifest.sh +48 -0
- package/thirdparty/OpenXLSX/Scripts/xml-format-all.sh +19 -0
- package/thirdparty/OpenXLSX/Scripts/xml-format.sh +38 -0
- package/thirdparty/OpenXLSX/Tests/CMakeLists.txt +37 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch.hpp +17799 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_automake.hpp +68 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_sonarqube.hpp +182 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_tap.hpp +278 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_teamcity.hpp +212 -0
- package/thirdparty/OpenXLSX/Tests/main.cpp +55 -0
- package/thirdparty/OpenXLSX/Tests/testXLCell.cpp +176 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellRange.cpp +180 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellReference.cpp +160 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellValue.cpp +366 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellValueProxy.cpp +255 -0
- package/thirdparty/OpenXLSX/Tests/testXLColor.cpp +75 -0
- package/thirdparty/OpenXLSX/Tests/testXLDateTime.cpp +229 -0
- package/thirdparty/OpenXLSX/Tests/testXLDocument.cpp +197 -0
- package/thirdparty/OpenXLSX/Tests/testXLFormula.cpp +131 -0
- package/thirdparty/OpenXLSX/Tests/testXLRow.cpp +597 -0
- package/thirdparty/OpenXLSX/Tests/testXLSheet.cpp +77 -0
- package/thirdparty/OpenXLSX/Tests/ziptest-with-libs.cpp +88 -0
- package/thirdparty/OpenXLSX/Tests/ziptest.cpp +735 -0
- package/thirdparty/OpenXLSX/cmake/get-git-HEAD-ID.cmake +45 -0
- package/thirdparty/OpenXLSX/cmake/libopenxlsxCPackOptions.cmake.in +20 -0
- package/thirdparty/OpenXLSX/cmake/manage_dependency.cmake +813 -0
- package/thirdparty/OpenXLSX/cmake/recursive_library_type_test.cmake +52 -0
- package/thirdparty/OpenXLSX/gnu-make-crutch/OpenXLSX-Exports-shared.hpp +42 -0
- package/thirdparty/OpenXLSX/gnu-make-crutch/OpenXLSX-Exports-static.hpp +42 -0
- package/thirdparty/OpenXLSX/vcpkg.json +24 -0
- package/thirdparty/README.md +42 -0
- package/thirdparty/miniz/.clang-format +47 -0
- package/thirdparty/miniz/.travis.yml +2 -0
- package/thirdparty/miniz/CMakeLists.txt +333 -0
- package/thirdparty/miniz/CMakePresets.json +31 -0
- package/thirdparty/miniz/ChangeLog.md +272 -0
- package/thirdparty/miniz/Config.cmake.in +1 -0
- package/thirdparty/miniz/LICENSE +22 -0
- package/thirdparty/miniz/amalgamate.sh +57 -0
- package/thirdparty/miniz/examples/example1.c +105 -0
- package/thirdparty/miniz/examples/example2.c +164 -0
- package/thirdparty/miniz/examples/example3.c +269 -0
- package/thirdparty/miniz/examples/example4.c +102 -0
- package/thirdparty/miniz/examples/example5.c +327 -0
- package/thirdparty/miniz/examples/example6.c +189 -0
- package/thirdparty/miniz/meson.build +21 -0
- package/thirdparty/miniz/miniz.c +646 -0
- package/thirdparty/miniz/miniz.h +615 -0
- package/thirdparty/miniz/miniz.pc.in +13 -0
- package/thirdparty/miniz/miniz_common.h +89 -0
- package/thirdparty/miniz/miniz_export.h +20 -0
- package/thirdparty/miniz/miniz_tdef.c +1602 -0
- package/thirdparty/miniz/miniz_tdef.h +199 -0
- package/thirdparty/miniz/miniz_tinfl.c +778 -0
- package/thirdparty/miniz/miniz_tinfl.h +150 -0
- package/thirdparty/miniz/miniz_zip.c +4895 -0
- package/thirdparty/miniz/miniz_zip.h +454 -0
- package/thirdparty/miniz/readme.md +46 -0
- package/thirdparty/miniz/test.sh +36 -0
- package/thirdparty/miniz/tests/add_in_place_fuzzer.c +87 -0
- package/thirdparty/miniz/tests/catch_amalgamated.cpp +10795 -0
- package/thirdparty/miniz/tests/catch_amalgamated.hpp +13143 -0
- package/thirdparty/miniz/tests/checksum_fuzzer.c +26 -0
- package/thirdparty/miniz/tests/compress_fuzzer.c +91 -0
- package/thirdparty/miniz/tests/flush_fuzzer.c +88 -0
- package/thirdparty/miniz/tests/fuzz_main.c +55 -0
- package/thirdparty/miniz/tests/large_fuzzer.c +133 -0
- package/thirdparty/miniz/tests/main.cpp +185 -0
- package/thirdparty/miniz/tests/miniz_tdefl_fuzzer.cc +115 -0
- package/thirdparty/miniz/tests/miniz_tester.cpp +1881 -0
- package/thirdparty/miniz/tests/miniz_zip_validate_fuzzer.cc +71 -0
- package/thirdparty/miniz/tests/miniz_zip_writer_fuzzer.cc +96 -0
- package/thirdparty/miniz/tests/ossfuzz.sh +48 -0
- package/thirdparty/miniz/tests/small_fuzzer.c +126 -0
- package/thirdparty/miniz/tests/timer.cpp +152 -0
- package/thirdparty/miniz/tests/timer.h +40 -0
- package/thirdparty/miniz/tests/uncompress2_fuzzer.c +21 -0
- package/thirdparty/miniz/tests/uncompress_fuzzer.c +30 -0
- package/thirdparty/miniz/tests/zip.dict +9 -0
- package/thirdparty/miniz/tests/zip_fuzzer.c +63 -0
- package/thirdparty/pugixml/.codecov.yml +7 -0
- package/thirdparty/pugixml/.gitattributes +1 -0
- package/thirdparty/pugixml/CMakeLists.txt +330 -0
- package/thirdparty/pugixml/LICENSE.md +24 -0
- package/thirdparty/pugixml/Makefile +98 -0
- package/thirdparty/pugixml/README.md +81 -0
- package/thirdparty/pugixml/SECURITY.md +9 -0
- package/thirdparty/pugixml/appveyor.yml +50 -0
- package/thirdparty/pugixml/docs/config.adoc +7 -0
- package/thirdparty/pugixml/docs/images/dom_tree.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_link1.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_link2.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch1.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch2.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch3.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch4.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2010_link1.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2010_link2.png +0 -0
- package/thirdparty/pugixml/docs/manual.adoc +3326 -0
- package/thirdparty/pugixml/docs/manual.html +6395 -0
- package/thirdparty/pugixml/docs/quickstart.adoc +287 -0
- package/thirdparty/pugixml/docs/quickstart.html +1107 -0
- package/thirdparty/pugixml/docs/samples/character.xml +8 -0
- package/thirdparty/pugixml/docs/samples/custom_memory_management.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/include.cpp +64 -0
- package/thirdparty/pugixml/docs/samples/load_error_handling.cpp +33 -0
- package/thirdparty/pugixml/docs/samples/load_file.cpp +16 -0
- package/thirdparty/pugixml/docs/samples/load_memory.cpp +66 -0
- package/thirdparty/pugixml/docs/samples/load_options.cpp +30 -0
- package/thirdparty/pugixml/docs/samples/load_stream.cpp +97 -0
- package/thirdparty/pugixml/docs/samples/modify_add.cpp +29 -0
- package/thirdparty/pugixml/docs/samples/modify_base.cpp +43 -0
- package/thirdparty/pugixml/docs/samples/modify_remove.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/save_custom_writer.cpp +116 -0
- package/thirdparty/pugixml/docs/samples/save_declaration.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/save_file.cpp +17 -0
- package/thirdparty/pugixml/docs/samples/save_options.cpp +48 -0
- package/thirdparty/pugixml/docs/samples/save_stream.cpp +18 -0
- package/thirdparty/pugixml/docs/samples/save_subtree.cpp +26 -0
- package/thirdparty/pugixml/docs/samples/text.cpp +35 -0
- package/thirdparty/pugixml/docs/samples/transitions.xml +7 -0
- package/thirdparty/pugixml/docs/samples/traverse_base.cpp +51 -0
- package/thirdparty/pugixml/docs/samples/traverse_iter.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/traverse_predicate.cpp +48 -0
- package/thirdparty/pugixml/docs/samples/traverse_rangefor.cpp +32 -0
- package/thirdparty/pugixml/docs/samples/traverse_walker.cpp +35 -0
- package/thirdparty/pugixml/docs/samples/tree.xml +12 -0
- package/thirdparty/pugixml/docs/samples/weekly-shift_jis.xml +78 -0
- package/thirdparty/pugixml/docs/samples/weekly-utf-16.xml +0 -0
- package/thirdparty/pugixml/docs/samples/weekly-utf-8.xml +78 -0
- package/thirdparty/pugixml/docs/samples/xgconsole.xml +12 -0
- package/thirdparty/pugixml/docs/samples/xpath_error.cpp +43 -0
- package/thirdparty/pugixml/docs/samples/xpath_query.cpp +36 -0
- package/thirdparty/pugixml/docs/samples/xpath_select.cpp +28 -0
- package/thirdparty/pugixml/docs/samples/xpath_variables.cpp +38 -0
- package/thirdparty/pugixml/readme.txt +50 -0
- package/thirdparty/pugixml/scripts/archive.py +54 -0
- package/thirdparty/pugixml/scripts/cocoapods_push.sh +4 -0
- package/thirdparty/pugixml/scripts/natvis/pugixml.natvis +77 -0
- package/thirdparty/pugixml/scripts/natvis/pugixml_compact.natvis +506 -0
- package/thirdparty/pugixml/scripts/nuget/build/native/pugixml-propertiesui.xml +17 -0
- package/thirdparty/pugixml/scripts/nuget/build/native/pugixml.targets +28 -0
- package/thirdparty/pugixml/scripts/nuget/pugixml.nuspec +20 -0
- package/thirdparty/pugixml/scripts/nuget_build.ps1 +60 -0
- package/thirdparty/pugixml/scripts/premake4.lua +92 -0
- package/thirdparty/pugixml/scripts/pugixml-config.cmake.in +12 -0
- package/thirdparty/pugixml/scripts/pugixml.pc.in +11 -0
- package/thirdparty/pugixml/scripts/pugixml.podspec +14 -0
- package/thirdparty/pugixml/scripts/pugixml.xcodeproj/project.pbxproj +212 -0
- package/thirdparty/pugixml/scripts/pugixml_airplay.mkf +13 -0
- package/thirdparty/pugixml/scripts/pugixml_codeblocks.cbp +44 -0
- package/thirdparty/pugixml/scripts/pugixml_codelite.project +56 -0
- package/thirdparty/pugixml/scripts/pugixml_dll.rc +45 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2005.vcproj +343 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2005_static.vcproj +343 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2008.vcproj +339 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2008_static.vcproj +339 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2010.vcxproj +191 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2010_static.vcxproj +191 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2013.vcxproj +199 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2013_static.vcxproj +199 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2015.vcxproj +172 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2015_static.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2017.vcxproj +172 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2017_static.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2019.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2019_static.vcxproj +180 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2022.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2022_static.vcxproj +180 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2026.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2026_static.vcxproj +180 -0
- package/thirdparty/pugixml/scripts/sbom.cdx.json +47 -0
- package/thirdparty/pugixml/src/pugiconfig.hpp +81 -0
- package/thirdparty/pugixml/src/pugixml.cpp +13776 -0
- package/thirdparty/pugixml/src/pugixml.hpp +1604 -0
- package/thirdparty/pugixml/tests/allocator.cpp +175 -0
- package/thirdparty/pugixml/tests/allocator.hpp +10 -0
- package/thirdparty/pugixml/tests/autotest-appveyor.ps1 +93 -0
- package/thirdparty/pugixml/tests/cmake-appveyor.ps1 +57 -0
- package/thirdparty/pugixml/tests/data/empty.xml +0 -0
- package/thirdparty/pugixml/tests/data/large.xml +1 -0
- package/thirdparty/pugixml/tests/data/latintest_latin1.xml +1 -0
- package/thirdparty/pugixml/tests/data/latintest_utf8.xml +1 -0
- package/thirdparty/pugixml/tests/data/multiline.xml +3 -0
- package/thirdparty/pugixml/tests/data/small.xml +1 -0
- package/thirdparty/pugixml/tests/data/truncation.xml +19 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8.xml +87 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8_bom.xml +87 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8_clean.xml +84 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8_nodecl.xml +86 -0
- package/thirdparty/pugixml/tests/data//321/202/320/265/321/201/321/202.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/basic.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/doctype.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/refs.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/types.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/utf16.xml +0 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/utf32.xml +0 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/basic.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/functions.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/math.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/path.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/predicate.xpath +1 -0
- package/thirdparty/pugixml/tests/fuzz_parse.cpp +14 -0
- package/thirdparty/pugixml/tests/fuzz_parse.dict +72 -0
- package/thirdparty/pugixml/tests/fuzz_setup.sh +11 -0
- package/thirdparty/pugixml/tests/fuzz_xpath.cpp +46 -0
- package/thirdparty/pugixml/tests/fuzz_xpath.dict +72 -0
- package/thirdparty/pugixml/tests/helpers.hpp +114 -0
- package/thirdparty/pugixml/tests/main.cpp +218 -0
- package/thirdparty/pugixml/tests/test.cpp +220 -0
- package/thirdparty/pugixml/tests/test.hpp +175 -0
- package/thirdparty/pugixml/tests/test_compact.cpp +150 -0
- package/thirdparty/pugixml/tests/test_deprecated.cpp +25 -0
- package/thirdparty/pugixml/tests/test_document.cpp +1910 -0
- package/thirdparty/pugixml/tests/test_dom_modify.cpp +2122 -0
- package/thirdparty/pugixml/tests/test_dom_text.cpp +601 -0
- package/thirdparty/pugixml/tests/test_dom_traverse.cpp +1481 -0
- package/thirdparty/pugixml/tests/test_header_guard.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iosfwd_1.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iosfwd_2.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iostream_1.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iostream_2.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_only_1.cpp +21 -0
- package/thirdparty/pugixml/tests/test_header_only_2.cpp +21 -0
- package/thirdparty/pugixml/tests/test_header_string_1.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_string_2.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_string_iostream.cpp +5 -0
- package/thirdparty/pugixml/tests/test_memory.cpp +303 -0
- package/thirdparty/pugixml/tests/test_parse.cpp +1463 -0
- package/thirdparty/pugixml/tests/test_parse_doctype.cpp +366 -0
- package/thirdparty/pugixml/tests/test_unicode.cpp +152 -0
- package/thirdparty/pugixml/tests/test_version.cpp +5 -0
- package/thirdparty/pugixml/tests/test_write.cpp +757 -0
- package/thirdparty/pugixml/tests/test_xpath.cpp +833 -0
- package/thirdparty/pugixml/tests/test_xpath_api.cpp +646 -0
- package/thirdparty/pugixml/tests/test_xpath_functions.cpp +844 -0
- package/thirdparty/pugixml/tests/test_xpath_operators.cpp +566 -0
- package/thirdparty/pugixml/tests/test_xpath_parse.cpp +428 -0
- package/thirdparty/pugixml/tests/test_xpath_paths.cpp +787 -0
- package/thirdparty/pugixml/tests/test_xpath_paths_abbrev_w3c.cpp +219 -0
- package/thirdparty/pugixml/tests/test_xpath_paths_w3c.cpp +312 -0
- package/thirdparty/pugixml/tests/test_xpath_variables.cpp +683 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_1.cpp +411 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_2.cpp +417 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_3.cpp +321 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_4.cpp +300 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_5.cpp +295 -0
- package/thirdparty/pugixml/tests/writer_string.cpp +79 -0
- package/thirdparty/pugixml/tests/writer_string.hpp +27 -0
- package/ios/dummy.swift +0 -2
- package/scripts/prepare-openxlsx.js +0 -109
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
____ ____ ___ ____ ____ ____ ___
|
|
4
|
+
6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M'
|
|
5
|
+
8P Y8 `MM. d' MM 6M' ` `MM. d'
|
|
6
|
+
6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d'
|
|
7
|
+
MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d'
|
|
8
|
+
MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd
|
|
9
|
+
MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM.
|
|
10
|
+
MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM.
|
|
11
|
+
YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM.
|
|
12
|
+
8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM.
|
|
13
|
+
YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_
|
|
14
|
+
MM
|
|
15
|
+
MM
|
|
16
|
+
_MM_
|
|
17
|
+
|
|
18
|
+
Copyright (c) 2018, Kenneth Troldal Balslev
|
|
19
|
+
|
|
20
|
+
All rights reserved.
|
|
21
|
+
|
|
22
|
+
Redistribution and use in source and binary forms, with or without
|
|
23
|
+
modification, are permitted provided that the following conditions are met:
|
|
24
|
+
- Redistributions of source code must retain the above copyright
|
|
25
|
+
notice, this list of conditions and the following disclaimer.
|
|
26
|
+
- Redistributions in binary form must reproduce the above copyright
|
|
27
|
+
notice, this list of conditions and the following disclaimer in the
|
|
28
|
+
documentation and/or other materials provided with the distribution.
|
|
29
|
+
- Neither the name of the author nor the
|
|
30
|
+
names of any contributors may be used to endorse or promote products
|
|
31
|
+
derived from this software without specific prior written permission.
|
|
32
|
+
|
|
33
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
34
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
35
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
36
|
+
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
|
37
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
38
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
39
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
40
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
41
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
42
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
43
|
+
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
#ifndef OPENXLSX_XLTABLES_HPP
|
|
47
|
+
#define OPENXLSX_XLTABLES_HPP
|
|
48
|
+
|
|
49
|
+
// ===== External Includes ===== //
|
|
50
|
+
#include <cstdint> // uint8_t, uint16_t, uint32_t
|
|
51
|
+
#include <ostream> // std::basic_ostream
|
|
52
|
+
// #include <type_traits>
|
|
53
|
+
// #include <variant>
|
|
54
|
+
|
|
55
|
+
// ===== OpenXLSX Includes ===== //
|
|
56
|
+
#include "OpenXLSX-Exports.hpp"
|
|
57
|
+
// #include "XLDocument.hpp"
|
|
58
|
+
#include "XLException.hpp"
|
|
59
|
+
#include "XLXmlData.hpp"
|
|
60
|
+
#include "XLXmlFile.hpp"
|
|
61
|
+
|
|
62
|
+
namespace OpenXLSX
|
|
63
|
+
{
|
|
64
|
+
/**
|
|
65
|
+
* @brief The XLTables class is the base class for worksheet tables
|
|
66
|
+
*/
|
|
67
|
+
class OPENXLSX_EXPORT XLTables : public XLXmlFile
|
|
68
|
+
{
|
|
69
|
+
friend class XLWorksheet; // for access to XLXmlFile::getXmlPath
|
|
70
|
+
public:
|
|
71
|
+
/**
|
|
72
|
+
* @brief Constructor
|
|
73
|
+
*/
|
|
74
|
+
XLTables() : XLXmlFile(nullptr) {};
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @brief The constructor.
|
|
78
|
+
* @param xmlData the source XML of the table file
|
|
79
|
+
*/
|
|
80
|
+
XLTables(XLXmlData* xmlData);
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @brief The copy constructor.
|
|
84
|
+
* @param other The object to be copied.
|
|
85
|
+
* @note The default copy constructor is used, i.e. only shallow copying of pointer data members.
|
|
86
|
+
*/
|
|
87
|
+
XLTables(const XLTables& other);
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* @brief The move constructor
|
|
91
|
+
* @param other
|
|
92
|
+
*/
|
|
93
|
+
XLTables(XLTables&& other) noexcept;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @brief The destructor
|
|
97
|
+
* @note The default destructor is used, since cleanup of pointer data members is not required.
|
|
98
|
+
*/
|
|
99
|
+
~XLTables();
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* @brief Copy assignment operator
|
|
103
|
+
* @return A reference to the new object.
|
|
104
|
+
* @note The default assignment operator is used, i.e. only shallow copying of pointer data members.
|
|
105
|
+
*/
|
|
106
|
+
XLTables& operator=(const XLTables&);
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* @brief Move assignment operator
|
|
110
|
+
* @param other
|
|
111
|
+
* @return
|
|
112
|
+
*/
|
|
113
|
+
XLTables& operator=(XLTables&& other) noexcept;
|
|
114
|
+
|
|
115
|
+
// /**
|
|
116
|
+
// * @brief getters
|
|
117
|
+
// */
|
|
118
|
+
// std::string get(std::string cellRef) const;
|
|
119
|
+
//
|
|
120
|
+
// /**
|
|
121
|
+
// * @brief setters
|
|
122
|
+
// */
|
|
123
|
+
// bool set(std::string cellRef);
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* @brief Print the XML contents of this XLTables instance using the underlying XMLNode print function
|
|
127
|
+
*/
|
|
128
|
+
void print(std::basic_ostream<char>& ostr) const;
|
|
129
|
+
};
|
|
130
|
+
} // namespace OpenXLSX
|
|
131
|
+
|
|
132
|
+
#endif // OPENXLSX_XLTABLES_HPP
|
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
____ ____ ___ ____ ____ ____ ___
|
|
4
|
+
6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M'
|
|
5
|
+
8P Y8 `MM. d' MM 6M' ` `MM. d'
|
|
6
|
+
6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d'
|
|
7
|
+
MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d'
|
|
8
|
+
MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd
|
|
9
|
+
MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM.
|
|
10
|
+
MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM.
|
|
11
|
+
YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM.
|
|
12
|
+
8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM.
|
|
13
|
+
YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_
|
|
14
|
+
MM
|
|
15
|
+
MM
|
|
16
|
+
_MM_
|
|
17
|
+
|
|
18
|
+
Copyright (c) 2018, Kenneth Troldal Balslev
|
|
19
|
+
|
|
20
|
+
All rights reserved.
|
|
21
|
+
|
|
22
|
+
Redistribution and use in source and binary forms, with or without
|
|
23
|
+
modification, are permitted provided that the following conditions are met:
|
|
24
|
+
- Redistributions of source code must retain the above copyright
|
|
25
|
+
notice, this list of conditions and the following disclaimer.
|
|
26
|
+
- Redistributions in binary form must reproduce the above copyright
|
|
27
|
+
notice, this list of conditions and the following disclaimer in the
|
|
28
|
+
documentation and/or other materials provided with the distribution.
|
|
29
|
+
- Neither the name of the author nor the
|
|
30
|
+
names of any contributors may be used to endorse or promote products
|
|
31
|
+
derived from this software without specific prior written permission.
|
|
32
|
+
|
|
33
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
34
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
35
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
36
|
+
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
|
37
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
38
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
39
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
40
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
41
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
42
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
43
|
+
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
#ifndef OPENXLSX_XLWORKBOOK_HPP
|
|
47
|
+
#define OPENXLSX_XLWORKBOOK_HPP
|
|
48
|
+
|
|
49
|
+
#ifdef _MSC_VER // conditionally enable MSVC specific pragmas to avoid other compilers warning about unknown pragmas
|
|
50
|
+
# pragma warning(push)
|
|
51
|
+
# pragma warning(disable : 4251)
|
|
52
|
+
# pragma warning(disable : 4275)
|
|
53
|
+
#endif // _MSC_VER
|
|
54
|
+
|
|
55
|
+
// ===== External Includes ===== //
|
|
56
|
+
#include <ostream> // std::basic_ostream
|
|
57
|
+
#include <vector>
|
|
58
|
+
|
|
59
|
+
// ===== OpenXLSX Includes ===== //
|
|
60
|
+
#include "OpenXLSX-Exports.hpp"
|
|
61
|
+
#include "XLXmlFile.hpp"
|
|
62
|
+
|
|
63
|
+
namespace OpenXLSX
|
|
64
|
+
{
|
|
65
|
+
// class XLSharedStrings;
|
|
66
|
+
|
|
67
|
+
class XLSheet;
|
|
68
|
+
|
|
69
|
+
class XLWorksheet;
|
|
70
|
+
|
|
71
|
+
class XLChartsheet;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @brief The XLSheetType class is an enumeration of the available sheet types, e.g. Worksheet (ordinary
|
|
75
|
+
* spreadsheets), and Chartsheet (sheets with only a chart).
|
|
76
|
+
*/
|
|
77
|
+
enum class XLSheetType { Worksheet, Chartsheet, Dialogsheet, Macrosheet };
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* @brief This class encapsulates the concept of a Workbook. It provides access to the individual sheets
|
|
81
|
+
* (worksheets or chartsheets), as well as functionality for adding, deleting, moving and renaming sheets.
|
|
82
|
+
*/
|
|
83
|
+
class OPENXLSX_EXPORT XLWorkbook : public XLXmlFile
|
|
84
|
+
{
|
|
85
|
+
friend class XLSheet;
|
|
86
|
+
friend class XLDocument;
|
|
87
|
+
|
|
88
|
+
public: // ---------- Public Member Functions ---------- //
|
|
89
|
+
/**
|
|
90
|
+
* @brief Default constructor. Creates an empty ('null') XLWorkbook object.
|
|
91
|
+
*/
|
|
92
|
+
XLWorkbook();
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* @brief Constructor. Takes a pointer to an XLXmlData object (stored in the parent XLDocument object).
|
|
96
|
+
* @param xmlData A pointer to the underlying XLXmlData object, which holds the XML data.
|
|
97
|
+
* @note Do not create an XLWorkbook object directly. Access via XLDocument::workbook().
|
|
98
|
+
*/
|
|
99
|
+
explicit XLWorkbook(XLXmlData* xmlData);
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* @brief Copy Constructor.
|
|
103
|
+
* @param other The XLWorkbook object to be copied.
|
|
104
|
+
* @note The copy constructor has been explicitly defaulted.
|
|
105
|
+
*/
|
|
106
|
+
XLWorkbook(const XLWorkbook& other);
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* @brief Move constructor.
|
|
110
|
+
* @param other The XLWorkbook to be moved.
|
|
111
|
+
* @note The move constructor has been explicitly defaulted.
|
|
112
|
+
*/
|
|
113
|
+
XLWorkbook(XLWorkbook&& other);
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* @brief Destructor
|
|
117
|
+
* @note Default destructor specified
|
|
118
|
+
*/
|
|
119
|
+
~XLWorkbook();
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @brief Copy assignment operator.
|
|
123
|
+
* @param other The XLWorkbook object to be assigned to the current.
|
|
124
|
+
* @return A reference to *this
|
|
125
|
+
* @note The copy assignment operator has been explicitly deleted, as XLWorkbook objects should not be copied.
|
|
126
|
+
*/
|
|
127
|
+
XLWorkbook& operator=(const XLWorkbook& other);
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* @brief Move assignment operator.
|
|
131
|
+
* @param other The XLWorkbook to be move assigned.
|
|
132
|
+
* @return A reference to *this
|
|
133
|
+
* @note The move assignment operator has been explicitly deleted, as XLWorkbook objects should not be moved.
|
|
134
|
+
*/
|
|
135
|
+
XLWorkbook& operator=(XLWorkbook&& other);
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* @brief Get the sheet (worksheet or chartsheet) at the given index.
|
|
139
|
+
* @param index The index at which the desired sheet is located.
|
|
140
|
+
* @return A pointer to an XLAbstractSheet with the sheet at the index.
|
|
141
|
+
* @note The index must be 1-based (rather than 0-based) as this is the default for Excel spreadsheets.
|
|
142
|
+
*/
|
|
143
|
+
XLSheet sheet(uint16_t index);
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* @brief Get the sheet (worksheet or chartsheet) with the given name.
|
|
147
|
+
* @param sheetName The name of the desired sheet.
|
|
148
|
+
* @return A pointer to an XLAbstractSheet with the sheet at the index.
|
|
149
|
+
*/
|
|
150
|
+
XLSheet sheet(const std::string& sheetName);
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* @brief Get the worksheet with the given name.
|
|
154
|
+
* @param sheetName The name of the desired worksheet.
|
|
155
|
+
* @return
|
|
156
|
+
*/
|
|
157
|
+
XLWorksheet worksheet(const std::string& sheetName);
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* @brief Get the worksheet at the given index.
|
|
161
|
+
* @param index The index (1-based) at which the desired sheet is located.
|
|
162
|
+
* @return
|
|
163
|
+
*/
|
|
164
|
+
XLWorksheet worksheet(uint16_t index);
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* @brief Get the chartsheet with the given name.
|
|
168
|
+
* @param sheetName The name of the desired chartsheet.
|
|
169
|
+
* @return
|
|
170
|
+
*/
|
|
171
|
+
XLChartsheet chartsheet(const std::string& sheetName);
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* @brief Get the chartsheet at the given index.
|
|
175
|
+
* @param index The index (1-based) at which the desired sheet is located.
|
|
176
|
+
* @return
|
|
177
|
+
*/
|
|
178
|
+
XLChartsheet chartsheet(uint16_t index);
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* @brief Delete sheet (worksheet or chartsheet) from the workbook.
|
|
182
|
+
* @param sheetName Name of the sheet to delete.
|
|
183
|
+
* @throws XLException An exception will be thrown if trying to delete the last worksheet in the workbook
|
|
184
|
+
* @warning A workbook must contain at least one worksheet. Trying to delete the last worksheet from the
|
|
185
|
+
* workbook will trow an exception.
|
|
186
|
+
*/
|
|
187
|
+
void deleteSheet(const std::string& sheetName);
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* @brief
|
|
191
|
+
* @param sheetName
|
|
192
|
+
*/
|
|
193
|
+
void addWorksheet(const std::string& sheetName);
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* @brief
|
|
197
|
+
* @param existingName
|
|
198
|
+
* @param newName
|
|
199
|
+
*/
|
|
200
|
+
void cloneSheet(const std::string& existingName, const std::string& newName);
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* @brief
|
|
204
|
+
* @param sheetName
|
|
205
|
+
* @param index The index (1-based) where the sheet shall be moved to
|
|
206
|
+
*/
|
|
207
|
+
void setSheetIndex(const std::string& sheetName, unsigned int index);
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* @brief
|
|
211
|
+
* @param sheetName
|
|
212
|
+
* @return The index (1-based) of the sheet with sheetName
|
|
213
|
+
*/
|
|
214
|
+
unsigned int indexOfSheet(const std::string& sheetName) const;
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* @brief
|
|
218
|
+
* @param sheetName
|
|
219
|
+
* @return
|
|
220
|
+
*/
|
|
221
|
+
XLSheetType typeOfSheet(const std::string& sheetName) const;
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* @brief
|
|
225
|
+
* @param index The index (1-based) at which the desired sheet is located.
|
|
226
|
+
* @return
|
|
227
|
+
*/
|
|
228
|
+
XLSheetType typeOfSheet(unsigned int index) const;
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* @brief
|
|
232
|
+
* @return
|
|
233
|
+
*/
|
|
234
|
+
unsigned int sheetCount() const;
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* @brief
|
|
238
|
+
* @return
|
|
239
|
+
*/
|
|
240
|
+
unsigned int worksheetCount() const;
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* @brief
|
|
244
|
+
* @return
|
|
245
|
+
*/
|
|
246
|
+
unsigned int chartsheetCount() const;
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* @brief
|
|
250
|
+
* @return
|
|
251
|
+
*/
|
|
252
|
+
std::vector<std::string> sheetNames() const;
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* @brief
|
|
256
|
+
* @return
|
|
257
|
+
*/
|
|
258
|
+
std::vector<std::string> worksheetNames() const;
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* @brief
|
|
262
|
+
* @return
|
|
263
|
+
*/
|
|
264
|
+
std::vector<std::string> chartsheetNames() const;
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* @brief
|
|
268
|
+
* @param sheetName
|
|
269
|
+
* @return
|
|
270
|
+
*/
|
|
271
|
+
bool sheetExists(const std::string& sheetName) const;
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* @brief
|
|
275
|
+
* @param sheetName
|
|
276
|
+
* @return
|
|
277
|
+
*/
|
|
278
|
+
bool worksheetExists(const std::string& sheetName) const;
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* @brief
|
|
282
|
+
* @param sheetName
|
|
283
|
+
* @return
|
|
284
|
+
*/
|
|
285
|
+
bool chartsheetExists(const std::string& sheetName) const;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* @brief
|
|
289
|
+
* @param oldName
|
|
290
|
+
* @param newName
|
|
291
|
+
*/
|
|
292
|
+
void updateSheetReferences(const std::string& oldName, const std::string& newName);
|
|
293
|
+
|
|
294
|
+
// /**
|
|
295
|
+
// * @brief
|
|
296
|
+
// * @return
|
|
297
|
+
// */
|
|
298
|
+
// XLSharedStrings sharedStrings();
|
|
299
|
+
//
|
|
300
|
+
// /**
|
|
301
|
+
// * @brief
|
|
302
|
+
// * @return
|
|
303
|
+
// */
|
|
304
|
+
// bool hasSharedStrings() const;
|
|
305
|
+
//
|
|
306
|
+
/**
|
|
307
|
+
* @brief
|
|
308
|
+
*/
|
|
309
|
+
void deleteNamedRanges();
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* @brief set a flag to force full calculation upon loading the file in Excel
|
|
313
|
+
*/
|
|
314
|
+
void setFullCalculationOnLoad();
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* @brief print the XML contents of the workbook.xml using the underlying XMLNode print function
|
|
318
|
+
*/
|
|
319
|
+
void print(std::basic_ostream<char>& ostr) const;
|
|
320
|
+
|
|
321
|
+
private: // ---------- Private Member Functions ---------- //
|
|
322
|
+
/**
|
|
323
|
+
* @brief
|
|
324
|
+
* @return
|
|
325
|
+
*/
|
|
326
|
+
uint16_t createInternalSheetID();
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* @brief
|
|
330
|
+
* @param sheetName
|
|
331
|
+
* @return
|
|
332
|
+
*/
|
|
333
|
+
std::string sheetID(const std::string& sheetName);
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* @brief
|
|
337
|
+
* @param sheetID
|
|
338
|
+
* @return
|
|
339
|
+
*/
|
|
340
|
+
std::string sheetName(const std::string& sheetID) const;
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* @brief
|
|
344
|
+
* @param sheetID
|
|
345
|
+
* @return
|
|
346
|
+
*/
|
|
347
|
+
std::string sheetVisibility(const std::string& sheetID) const;
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* @brief
|
|
351
|
+
* @param sheetName
|
|
352
|
+
* @param internalID
|
|
353
|
+
*/
|
|
354
|
+
void prepareSheetMetadata(const std::string& sheetName, uint16_t internalID);
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* @brief
|
|
358
|
+
* @param sheetRID
|
|
359
|
+
* @param newName
|
|
360
|
+
*/
|
|
361
|
+
void setSheetName(const std::string& sheetRID, const std::string& newName);
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* @brief
|
|
365
|
+
* @param sheetRID
|
|
366
|
+
* @param state
|
|
367
|
+
*/
|
|
368
|
+
void setSheetVisibility(const std::string& sheetRID, const std::string& state);
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* @brief
|
|
372
|
+
* @param sheetRID
|
|
373
|
+
* @return
|
|
374
|
+
*/
|
|
375
|
+
bool sheetIsActive(const std::string& sheetRID) const;
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* @brief
|
|
379
|
+
* @param sheetRID
|
|
380
|
+
* @return true if sheed with sheedRID could be set to active (or was already active), otherwise false
|
|
381
|
+
*/
|
|
382
|
+
bool setSheetActive(const std::string& sheetRID);
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* @brief Check whether attribute string state matches a value that is considered not visible
|
|
386
|
+
* @param state
|
|
387
|
+
* @return true if state does not match a value that is considered not visible (hidden, veryHidden), otherwise false
|
|
388
|
+
*/
|
|
389
|
+
bool isVisibleState(std::string const& state) const;
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* @brief Check whether sheetNode is not empty, and in case it has an attribute "state", that the state does not reflect hidden-ness
|
|
393
|
+
* @param sheetNode
|
|
394
|
+
* @return true if sheetNode can be considered visible (and could be activated)
|
|
395
|
+
*/
|
|
396
|
+
bool isVisible(XMLNode const& sheetNode) const;
|
|
397
|
+
};
|
|
398
|
+
} // namespace OpenXLSX
|
|
399
|
+
|
|
400
|
+
#ifdef _MSC_VER // conditionally enable MSVC specific pragmas to avoid other compilers warning about unknown pragmas
|
|
401
|
+
# pragma warning(pop)
|
|
402
|
+
#endif // _MSC_VER
|
|
403
|
+
|
|
404
|
+
#endif // OPENXLSX_XLWORKBOOK_HPP
|