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,54 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridXlsxConditionalFormatSpec.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "HybridXlsxConditionalFormatSpec.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::xlsx {
|
|
11
|
+
|
|
12
|
+
void HybridXlsxConditionalFormatSpec::loadHybridMethods() {
|
|
13
|
+
// load base methods/properties
|
|
14
|
+
HybridObject::loadHybridMethods();
|
|
15
|
+
// load custom methods/properties
|
|
16
|
+
registerHybrids(this, [](Prototype& prototype) {
|
|
17
|
+
prototype.registerHybridMethod("getSqref", &HybridXlsxConditionalFormatSpec::getSqref);
|
|
18
|
+
prototype.registerHybridMethod("setSqref", &HybridXlsxConditionalFormatSpec::setSqref);
|
|
19
|
+
prototype.registerHybridMethod("getRuleCount", &HybridXlsxConditionalFormatSpec::getRuleCount);
|
|
20
|
+
prototype.registerHybridMethod("createRule", &HybridXlsxConditionalFormatSpec::createRule);
|
|
21
|
+
prototype.registerHybridMethod("deleteRule", &HybridXlsxConditionalFormatSpec::deleteRule);
|
|
22
|
+
prototype.registerHybridMethod("getRuleType", &HybridXlsxConditionalFormatSpec::getRuleType);
|
|
23
|
+
prototype.registerHybridMethod("setRuleType", &HybridXlsxConditionalFormatSpec::setRuleType);
|
|
24
|
+
prototype.registerHybridMethod("getRuleDxfId", &HybridXlsxConditionalFormatSpec::getRuleDxfId);
|
|
25
|
+
prototype.registerHybridMethod("setRuleDxfId", &HybridXlsxConditionalFormatSpec::setRuleDxfId);
|
|
26
|
+
prototype.registerHybridMethod("getRuleFormula", &HybridXlsxConditionalFormatSpec::getRuleFormula);
|
|
27
|
+
prototype.registerHybridMethod("setRuleFormula", &HybridXlsxConditionalFormatSpec::setRuleFormula);
|
|
28
|
+
prototype.registerHybridMethod("getRuleOperator", &HybridXlsxConditionalFormatSpec::getRuleOperator);
|
|
29
|
+
prototype.registerHybridMethod("setRuleOperator", &HybridXlsxConditionalFormatSpec::setRuleOperator);
|
|
30
|
+
prototype.registerHybridMethod("getRuleText", &HybridXlsxConditionalFormatSpec::getRuleText);
|
|
31
|
+
prototype.registerHybridMethod("setRuleText", &HybridXlsxConditionalFormatSpec::setRuleText);
|
|
32
|
+
prototype.registerHybridMethod("getRulePriority", &HybridXlsxConditionalFormatSpec::getRulePriority);
|
|
33
|
+
prototype.registerHybridMethod("setRulePriority", &HybridXlsxConditionalFormatSpec::setRulePriority);
|
|
34
|
+
prototype.registerHybridMethod("getRuleStopIfTrue", &HybridXlsxConditionalFormatSpec::getRuleStopIfTrue);
|
|
35
|
+
prototype.registerHybridMethod("setRuleStopIfTrue", &HybridXlsxConditionalFormatSpec::setRuleStopIfTrue);
|
|
36
|
+
prototype.registerHybridMethod("getRuleTimePeriod", &HybridXlsxConditionalFormatSpec::getRuleTimePeriod);
|
|
37
|
+
prototype.registerHybridMethod("setRuleTimePeriod", &HybridXlsxConditionalFormatSpec::setRuleTimePeriod);
|
|
38
|
+
prototype.registerHybridMethod("getRuleRank", &HybridXlsxConditionalFormatSpec::getRuleRank);
|
|
39
|
+
prototype.registerHybridMethod("setRuleRank", &HybridXlsxConditionalFormatSpec::setRuleRank);
|
|
40
|
+
prototype.registerHybridMethod("getRuleStdDev", &HybridXlsxConditionalFormatSpec::getRuleStdDev);
|
|
41
|
+
prototype.registerHybridMethod("setRuleStdDev", &HybridXlsxConditionalFormatSpec::setRuleStdDev);
|
|
42
|
+
prototype.registerHybridMethod("getRuleAboveAverage", &HybridXlsxConditionalFormatSpec::getRuleAboveAverage);
|
|
43
|
+
prototype.registerHybridMethod("setRuleAboveAverage", &HybridXlsxConditionalFormatSpec::setRuleAboveAverage);
|
|
44
|
+
prototype.registerHybridMethod("getRulePercent", &HybridXlsxConditionalFormatSpec::getRulePercent);
|
|
45
|
+
prototype.registerHybridMethod("setRulePercent", &HybridXlsxConditionalFormatSpec::setRulePercent);
|
|
46
|
+
prototype.registerHybridMethod("getRuleBottom", &HybridXlsxConditionalFormatSpec::getRuleBottom);
|
|
47
|
+
prototype.registerHybridMethod("setRuleBottom", &HybridXlsxConditionalFormatSpec::setRuleBottom);
|
|
48
|
+
prototype.registerHybridMethod("getRuleEqualAverage", &HybridXlsxConditionalFormatSpec::getRuleEqualAverage);
|
|
49
|
+
prototype.registerHybridMethod("setRuleEqualAverage", &HybridXlsxConditionalFormatSpec::setRuleEqualAverage);
|
|
50
|
+
prototype.registerHybridMethod("summary", &HybridXlsxConditionalFormatSpec::summary);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
} // namespace margelo::nitro::xlsx
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridXlsxConditionalFormatSpec.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#if __has_include(<NitroModules/HybridObject.hpp>)
|
|
11
|
+
#include <NitroModules/HybridObject.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
#include <string>
|
|
19
|
+
|
|
20
|
+
namespace margelo::nitro::xlsx {
|
|
21
|
+
|
|
22
|
+
using namespace margelo::nitro;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* An abstract base class for `XlsxConditionalFormat`
|
|
26
|
+
* Inherit this class to create instances of `HybridXlsxConditionalFormatSpec` in C++.
|
|
27
|
+
* You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
|
|
28
|
+
* @example
|
|
29
|
+
* ```cpp
|
|
30
|
+
* class HybridXlsxConditionalFormat: public HybridXlsxConditionalFormatSpec {
|
|
31
|
+
* public:
|
|
32
|
+
* HybridXlsxConditionalFormat(...): HybridObject(TAG) { ... }
|
|
33
|
+
* // ...
|
|
34
|
+
* };
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
class HybridXlsxConditionalFormatSpec: public virtual HybridObject {
|
|
38
|
+
public:
|
|
39
|
+
// Constructor
|
|
40
|
+
explicit HybridXlsxConditionalFormatSpec(): HybridObject(TAG) { }
|
|
41
|
+
|
|
42
|
+
// Destructor
|
|
43
|
+
~HybridXlsxConditionalFormatSpec() override = default;
|
|
44
|
+
|
|
45
|
+
public:
|
|
46
|
+
// Properties
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
public:
|
|
50
|
+
// Methods
|
|
51
|
+
virtual std::string getSqref() = 0;
|
|
52
|
+
virtual void setSqref(const std::string& sqref) = 0;
|
|
53
|
+
virtual double getRuleCount() = 0;
|
|
54
|
+
virtual double createRule() = 0;
|
|
55
|
+
virtual bool deleteRule(double index) = 0;
|
|
56
|
+
virtual double getRuleType(double index) = 0;
|
|
57
|
+
virtual void setRuleType(double index, double type) = 0;
|
|
58
|
+
virtual double getRuleDxfId(double index) = 0;
|
|
59
|
+
virtual void setRuleDxfId(double index, double dxfId) = 0;
|
|
60
|
+
virtual std::string getRuleFormula(double index, double formulaIndex) = 0;
|
|
61
|
+
virtual void setRuleFormula(double index, double formulaIndex, const std::string& formula) = 0;
|
|
62
|
+
virtual double getRuleOperator(double index) = 0;
|
|
63
|
+
virtual void setRuleOperator(double index, double op) = 0;
|
|
64
|
+
virtual std::string getRuleText(double index) = 0;
|
|
65
|
+
virtual void setRuleText(double index, const std::string& text) = 0;
|
|
66
|
+
virtual double getRulePriority(double index) = 0;
|
|
67
|
+
virtual void setRulePriority(double index, double priority) = 0;
|
|
68
|
+
virtual bool getRuleStopIfTrue(double index) = 0;
|
|
69
|
+
virtual void setRuleStopIfTrue(double index, bool stop) = 0;
|
|
70
|
+
virtual double getRuleTimePeriod(double index) = 0;
|
|
71
|
+
virtual void setRuleTimePeriod(double index, double period) = 0;
|
|
72
|
+
virtual double getRuleRank(double index) = 0;
|
|
73
|
+
virtual void setRuleRank(double index, double rank) = 0;
|
|
74
|
+
virtual double getRuleStdDev(double index) = 0;
|
|
75
|
+
virtual void setRuleStdDev(double index, double stdDev) = 0;
|
|
76
|
+
virtual bool getRuleAboveAverage(double index) = 0;
|
|
77
|
+
virtual void setRuleAboveAverage(double index, bool set) = 0;
|
|
78
|
+
virtual bool getRulePercent(double index) = 0;
|
|
79
|
+
virtual void setRulePercent(double index, bool set) = 0;
|
|
80
|
+
virtual bool getRuleBottom(double index) = 0;
|
|
81
|
+
virtual void setRuleBottom(double index, bool set) = 0;
|
|
82
|
+
virtual bool getRuleEqualAverage(double index) = 0;
|
|
83
|
+
virtual void setRuleEqualAverage(double index, bool set) = 0;
|
|
84
|
+
virtual std::string summary() = 0;
|
|
85
|
+
|
|
86
|
+
protected:
|
|
87
|
+
// Hybrid Setup
|
|
88
|
+
void loadHybridMethods() override;
|
|
89
|
+
|
|
90
|
+
protected:
|
|
91
|
+
// Tag for logging
|
|
92
|
+
static constexpr auto TAG = "XlsxConditionalFormat";
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
} // namespace margelo::nitro::xlsx
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridXlsxConditionalFormatsSpec.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "HybridXlsxConditionalFormatsSpec.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::xlsx {
|
|
11
|
+
|
|
12
|
+
void HybridXlsxConditionalFormatsSpec::loadHybridMethods() {
|
|
13
|
+
// load base methods/properties
|
|
14
|
+
HybridObject::loadHybridMethods();
|
|
15
|
+
// load custom methods/properties
|
|
16
|
+
registerHybrids(this, [](Prototype& prototype) {
|
|
17
|
+
prototype.registerHybridMethod("getCount", &HybridXlsxConditionalFormatsSpec::getCount);
|
|
18
|
+
prototype.registerHybridMethod("create", &HybridXlsxConditionalFormatsSpec::create);
|
|
19
|
+
prototype.registerHybridMethod("getByIndex", &HybridXlsxConditionalFormatsSpec::getByIndex);
|
|
20
|
+
prototype.registerHybridMethod("summary", &HybridXlsxConditionalFormatsSpec::summary);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
} // namespace margelo::nitro::xlsx
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridXlsxConditionalFormatsSpec.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#if __has_include(<NitroModules/HybridObject.hpp>)
|
|
11
|
+
#include <NitroModules/HybridObject.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
|
|
16
|
+
// Forward declaration of `HybridXlsxConditionalFormatSpec` to properly resolve imports.
|
|
17
|
+
namespace margelo::nitro::xlsx { class HybridXlsxConditionalFormatSpec; }
|
|
18
|
+
|
|
19
|
+
#include <memory>
|
|
20
|
+
#include "HybridXlsxConditionalFormatSpec.hpp"
|
|
21
|
+
#include <string>
|
|
22
|
+
|
|
23
|
+
namespace margelo::nitro::xlsx {
|
|
24
|
+
|
|
25
|
+
using namespace margelo::nitro;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* An abstract base class for `XlsxConditionalFormats`
|
|
29
|
+
* Inherit this class to create instances of `HybridXlsxConditionalFormatsSpec` in C++.
|
|
30
|
+
* You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
|
|
31
|
+
* @example
|
|
32
|
+
* ```cpp
|
|
33
|
+
* class HybridXlsxConditionalFormats: public HybridXlsxConditionalFormatsSpec {
|
|
34
|
+
* public:
|
|
35
|
+
* HybridXlsxConditionalFormats(...): HybridObject(TAG) { ... }
|
|
36
|
+
* // ...
|
|
37
|
+
* };
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
class HybridXlsxConditionalFormatsSpec: public virtual HybridObject {
|
|
41
|
+
public:
|
|
42
|
+
// Constructor
|
|
43
|
+
explicit HybridXlsxConditionalFormatsSpec(): HybridObject(TAG) { }
|
|
44
|
+
|
|
45
|
+
// Destructor
|
|
46
|
+
~HybridXlsxConditionalFormatsSpec() override = default;
|
|
47
|
+
|
|
48
|
+
public:
|
|
49
|
+
// Properties
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
public:
|
|
53
|
+
// Methods
|
|
54
|
+
virtual double getCount() = 0;
|
|
55
|
+
virtual std::shared_ptr<HybridXlsxConditionalFormatSpec> create(const std::string& sqref) = 0;
|
|
56
|
+
virtual std::shared_ptr<HybridXlsxConditionalFormatSpec> getByIndex(double index) = 0;
|
|
57
|
+
virtual std::string summary() = 0;
|
|
58
|
+
|
|
59
|
+
protected:
|
|
60
|
+
// Hybrid Setup
|
|
61
|
+
void loadHybridMethods() override;
|
|
62
|
+
|
|
63
|
+
protected:
|
|
64
|
+
// Tag for logging
|
|
65
|
+
static constexpr auto TAG = "XlsxConditionalFormats";
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
} // namespace margelo::nitro::xlsx
|
|
@@ -19,6 +19,9 @@ namespace margelo::nitro::xlsx {
|
|
|
19
19
|
prototype.registerHybridMethod("getWorksheetByName", &HybridXlsxWorkbookSpec::getWorksheetByName);
|
|
20
20
|
prototype.registerHybridMethod("getOrAddWorksheet", &HybridXlsxWorkbookSpec::getOrAddWorksheet);
|
|
21
21
|
prototype.registerHybridMethod("getWorksheetCount", &HybridXlsxWorkbookSpec::getWorksheetCount);
|
|
22
|
+
prototype.registerHybridMethod("deleteSheet", &HybridXlsxWorkbookSpec::deleteSheet);
|
|
23
|
+
prototype.registerHybridMethod("updateSheetName", &HybridXlsxWorkbookSpec::updateSheetName);
|
|
24
|
+
prototype.registerHybridMethod("clone", &HybridXlsxWorkbookSpec::clone);
|
|
22
25
|
prototype.registerHybridMethod("addCellFormat", &HybridXlsxWorkbookSpec::addCellFormat);
|
|
23
26
|
prototype.registerHybridMethod("getBuffer", &HybridXlsxWorkbookSpec::getBuffer);
|
|
24
27
|
prototype.registerHybridMethod("toJSON", &HybridXlsxWorkbookSpec::toJSON);
|
|
@@ -25,7 +25,9 @@ namespace margelo::nitro::xlsx { class HybridXlsxCellFormatSpec; }
|
|
|
25
25
|
#include "HybridXlsxCellFormatSpec.hpp"
|
|
26
26
|
#include <NitroModules/ArrayBuffer.hpp>
|
|
27
27
|
#include <NitroModules/Promise.hpp>
|
|
28
|
+
#include <NitroModules/AnyMap.hpp>
|
|
28
29
|
#include <vector>
|
|
30
|
+
#include <unordered_map>
|
|
29
31
|
|
|
30
32
|
namespace margelo::nitro::xlsx {
|
|
31
33
|
|
|
@@ -63,9 +65,12 @@ namespace margelo::nitro::xlsx {
|
|
|
63
65
|
virtual std::shared_ptr<HybridXlsxWorksheetSpec> getWorksheetByName(const std::string& name) = 0;
|
|
64
66
|
virtual std::shared_ptr<HybridXlsxWorksheetSpec> getOrAddWorksheet(const std::string& name) = 0;
|
|
65
67
|
virtual double getWorksheetCount() = 0;
|
|
68
|
+
virtual void deleteSheet(const std::string& name) = 0;
|
|
69
|
+
virtual void updateSheetName(const std::string& oldName, const std::string& newName) = 0;
|
|
70
|
+
virtual std::shared_ptr<HybridXlsxWorksheetSpec> clone(const std::string& existingName, const std::string& newName) = 0;
|
|
66
71
|
virtual std::shared_ptr<HybridXlsxCellFormatSpec> addCellFormat() = 0;
|
|
67
72
|
virtual std::shared_ptr<Promise<std::shared_ptr<ArrayBuffer>>> getBuffer() = 0;
|
|
68
|
-
virtual std::string
|
|
73
|
+
virtual std::unordered_map<std::string, std::vector<std::shared_ptr<AnyMap>>> toJSON() = 0;
|
|
69
74
|
|
|
70
75
|
protected:
|
|
71
76
|
// Hybrid Setup
|
|
@@ -27,42 +27,70 @@ namespace margelo::nitro::xlsx {
|
|
|
27
27
|
prototype.registerHybridMethod("writeURL", &HybridXlsxWorksheetSpec::writeURL);
|
|
28
28
|
prototype.registerHybridMethod("setColumn", &HybridXlsxWorksheetSpec::setColumn);
|
|
29
29
|
prototype.registerHybridMethod("setRow", &HybridXlsxWorksheetSpec::setRow);
|
|
30
|
+
prototype.registerHybridMethod("deleteRow", &HybridXlsxWorksheetSpec::deleteRow);
|
|
31
|
+
prototype.registerHybridMethod("deleteColumn", &HybridXlsxWorksheetSpec::deleteColumn);
|
|
30
32
|
prototype.registerHybridMethod("mergeRange", &HybridXlsxWorksheetSpec::mergeRange);
|
|
31
33
|
prototype.registerHybridMethod("mergeRangeNum", &HybridXlsxWorksheetSpec::mergeRangeNum);
|
|
32
|
-
prototype.registerHybridMethod("
|
|
33
|
-
prototype.registerHybridMethod("insertImageBuffer", &HybridXlsxWorksheetSpec::insertImageBuffer);
|
|
34
|
-
prototype.registerHybridMethod("autofilter", &HybridXlsxWorksheetSpec::autofilter);
|
|
35
|
-
prototype.registerHybridMethod("freezePanes", &HybridXlsxWorksheetSpec::freezePanes);
|
|
36
|
-
prototype.registerHybridMethod("splitPanes", &HybridXlsxWorksheetSpec::splitPanes);
|
|
37
|
-
prototype.registerHybridMethod("setTabColor", &HybridXlsxWorksheetSpec::setTabColor);
|
|
34
|
+
prototype.registerHybridMethod("unmergeCells", &HybridXlsxWorksheetSpec::unmergeCells);
|
|
38
35
|
prototype.registerHybridMethod("hide", &HybridXlsxWorksheetSpec::hide);
|
|
39
36
|
prototype.registerHybridMethod("activate", &HybridXlsxWorksheetSpec::activate);
|
|
40
|
-
prototype.registerHybridMethod("setFirstSheet", &HybridXlsxWorksheetSpec::setFirstSheet);
|
|
41
37
|
prototype.registerHybridMethod("protect", &HybridXlsxWorksheetSpec::protect);
|
|
42
|
-
prototype.registerHybridMethod("
|
|
43
|
-
prototype.registerHybridMethod("
|
|
44
|
-
prototype.registerHybridMethod("
|
|
45
|
-
prototype.registerHybridMethod("
|
|
46
|
-
prototype.registerHybridMethod("
|
|
47
|
-
prototype.registerHybridMethod("
|
|
48
|
-
prototype.registerHybridMethod("
|
|
49
|
-
prototype.registerHybridMethod("
|
|
50
|
-
prototype.registerHybridMethod("
|
|
51
|
-
prototype.registerHybridMethod("
|
|
52
|
-
prototype.registerHybridMethod("
|
|
53
|
-
prototype.registerHybridMethod("
|
|
38
|
+
prototype.registerHybridMethod("protectSheet", &HybridXlsxWorksheetSpec::protectSheet);
|
|
39
|
+
prototype.registerHybridMethod("protectObjects", &HybridXlsxWorksheetSpec::protectObjects);
|
|
40
|
+
prototype.registerHybridMethod("protectScenarios", &HybridXlsxWorksheetSpec::protectScenarios);
|
|
41
|
+
prototype.registerHybridMethod("setPassword", &HybridXlsxWorksheetSpec::setPassword);
|
|
42
|
+
prototype.registerHybridMethod("setPasswordHash", &HybridXlsxWorksheetSpec::setPasswordHash);
|
|
43
|
+
prototype.registerHybridMethod("clearPassword", &HybridXlsxWorksheetSpec::clearPassword);
|
|
44
|
+
prototype.registerHybridMethod("clearSheetProtection", &HybridXlsxWorksheetSpec::clearSheetProtection);
|
|
45
|
+
prototype.registerHybridMethod("allowInsertColumns", &HybridXlsxWorksheetSpec::allowInsertColumns);
|
|
46
|
+
prototype.registerHybridMethod("allowInsertRows", &HybridXlsxWorksheetSpec::allowInsertRows);
|
|
47
|
+
prototype.registerHybridMethod("allowDeleteColumns", &HybridXlsxWorksheetSpec::allowDeleteColumns);
|
|
48
|
+
prototype.registerHybridMethod("allowDeleteRows", &HybridXlsxWorksheetSpec::allowDeleteRows);
|
|
49
|
+
prototype.registerHybridMethod("allowSelectLockedCells", &HybridXlsxWorksheetSpec::allowSelectLockedCells);
|
|
50
|
+
prototype.registerHybridMethod("allowSelectUnlockedCells", &HybridXlsxWorksheetSpec::allowSelectUnlockedCells);
|
|
51
|
+
prototype.registerHybridMethod("denyInsertColumns", &HybridXlsxWorksheetSpec::denyInsertColumns);
|
|
52
|
+
prototype.registerHybridMethod("denyInsertRows", &HybridXlsxWorksheetSpec::denyInsertRows);
|
|
53
|
+
prototype.registerHybridMethod("denyDeleteColumns", &HybridXlsxWorksheetSpec::denyDeleteColumns);
|
|
54
|
+
prototype.registerHybridMethod("denyDeleteRows", &HybridXlsxWorksheetSpec::denyDeleteRows);
|
|
55
|
+
prototype.registerHybridMethod("denySelectLockedCells", &HybridXlsxWorksheetSpec::denySelectLockedCells);
|
|
56
|
+
prototype.registerHybridMethod("denySelectUnlockedCells", &HybridXlsxWorksheetSpec::denySelectUnlockedCells);
|
|
57
|
+
prototype.registerHybridMethod("sheetProtected", &HybridXlsxWorksheetSpec::sheetProtected);
|
|
58
|
+
prototype.registerHybridMethod("objectsProtected", &HybridXlsxWorksheetSpec::objectsProtected);
|
|
59
|
+
prototype.registerHybridMethod("scenariosProtected", &HybridXlsxWorksheetSpec::scenariosProtected);
|
|
60
|
+
prototype.registerHybridMethod("insertColumnsAllowed", &HybridXlsxWorksheetSpec::insertColumnsAllowed);
|
|
61
|
+
prototype.registerHybridMethod("insertRowsAllowed", &HybridXlsxWorksheetSpec::insertRowsAllowed);
|
|
62
|
+
prototype.registerHybridMethod("deleteColumnsAllowed", &HybridXlsxWorksheetSpec::deleteColumnsAllowed);
|
|
63
|
+
prototype.registerHybridMethod("deleteRowsAllowed", &HybridXlsxWorksheetSpec::deleteRowsAllowed);
|
|
64
|
+
prototype.registerHybridMethod("selectLockedCellsAllowed", &HybridXlsxWorksheetSpec::selectLockedCellsAllowed);
|
|
65
|
+
prototype.registerHybridMethod("selectUnlockedCellsAllowed", &HybridXlsxWorksheetSpec::selectUnlockedCellsAllowed);
|
|
66
|
+
prototype.registerHybridMethod("passwordIsSet", &HybridXlsxWorksheetSpec::passwordIsSet);
|
|
67
|
+
prototype.registerHybridMethod("passwordHash", &HybridXlsxWorksheetSpec::passwordHash);
|
|
68
|
+
prototype.registerHybridMethod("sheetProtectionSummary", &HybridXlsxWorksheetSpec::sheetProtectionSummary);
|
|
54
69
|
prototype.registerHybridMethod("setColumnHidden", &HybridXlsxWorksheetSpec::setColumnHidden);
|
|
55
70
|
prototype.registerHybridMethod("setRowHidden", &HybridXlsxWorksheetSpec::setRowHidden);
|
|
71
|
+
prototype.registerHybridMethod("setComment", &HybridXlsxWorksheetSpec::setComment);
|
|
72
|
+
prototype.registerHybridMethod("getComment", &HybridXlsxWorksheetSpec::getComment);
|
|
73
|
+
prototype.registerHybridMethod("hasComment", &HybridXlsxWorksheetSpec::hasComment);
|
|
74
|
+
prototype.registerHybridMethod("deleteComment", &HybridXlsxWorksheetSpec::deleteComment);
|
|
75
|
+
prototype.registerHybridMethod("getCommentCount", &HybridXlsxWorksheetSpec::getCommentCount);
|
|
76
|
+
prototype.registerHybridMethod("addCommentAuthor", &HybridXlsxWorksheetSpec::addCommentAuthor);
|
|
77
|
+
prototype.registerHybridMethod("getCommentAuthor", &HybridXlsxWorksheetSpec::getCommentAuthor);
|
|
78
|
+
prototype.registerHybridMethod("getConditionalFormats", &HybridXlsxWorksheetSpec::getConditionalFormats);
|
|
56
79
|
prototype.registerHybridMethod("getCellValue", &HybridXlsxWorksheetSpec::getCellValue);
|
|
57
80
|
prototype.registerHybridMethod("getCellString", &HybridXlsxWorksheetSpec::getCellString);
|
|
58
81
|
prototype.registerHybridMethod("getCellRawValue", &HybridXlsxWorksheetSpec::getCellRawValue);
|
|
59
82
|
prototype.registerHybridMethod("getCellType", &HybridXlsxWorksheetSpec::getCellType);
|
|
60
83
|
prototype.registerHybridMethod("getCellFormat", &HybridXlsxWorksheetSpec::getCellFormat);
|
|
84
|
+
prototype.registerHybridMethod("hasFormula", &HybridXlsxWorksheetSpec::hasFormula);
|
|
85
|
+
prototype.registerHybridMethod("formula", &HybridXlsxWorksheetSpec::formula);
|
|
86
|
+
prototype.registerHybridMethod("findCell", &HybridXlsxWorksheetSpec::findCell);
|
|
61
87
|
prototype.registerHybridMethod("getRowCount", &HybridXlsxWorksheetSpec::getRowCount);
|
|
62
88
|
prototype.registerHybridMethod("getColumnCount", &HybridXlsxWorksheetSpec::getColumnCount);
|
|
63
89
|
prototype.registerHybridMethod("getLastRow", &HybridXlsxWorksheetSpec::getLastRow);
|
|
64
90
|
prototype.registerHybridMethod("getLastColumn", &HybridXlsxWorksheetSpec::getLastColumn);
|
|
65
91
|
prototype.registerHybridMethod("getName", &HybridXlsxWorksheetSpec::getName);
|
|
92
|
+
prototype.registerHybridMethod("toJSON", &HybridXlsxWorksheetSpec::toJSON);
|
|
93
|
+
prototype.registerHybridMethod("fromJSON", &HybridXlsxWorksheetSpec::fromJSON);
|
|
66
94
|
});
|
|
67
95
|
}
|
|
68
96
|
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
|
|
16
16
|
// Forward declaration of `HybridXlsxCellFormatSpec` to properly resolve imports.
|
|
17
17
|
namespace margelo::nitro::xlsx { class HybridXlsxCellFormatSpec; }
|
|
18
|
+
// Forward declaration of `HybridXlsxConditionalFormatsSpec` to properly resolve imports.
|
|
19
|
+
namespace margelo::nitro::xlsx { class HybridXlsxConditionalFormatsSpec; }
|
|
18
20
|
// Forward declaration of `CellType` to properly resolve imports.
|
|
19
21
|
namespace margelo::nitro::xlsx { enum class CellType; }
|
|
20
22
|
|
|
@@ -22,10 +24,12 @@ namespace margelo::nitro::xlsx { enum class CellType; }
|
|
|
22
24
|
#include <memory>
|
|
23
25
|
#include "HybridXlsxCellFormatSpec.hpp"
|
|
24
26
|
#include <optional>
|
|
25
|
-
#include
|
|
27
|
+
#include "HybridXlsxConditionalFormatsSpec.hpp"
|
|
26
28
|
#include <NitroModules/Null.hpp>
|
|
27
29
|
#include <variant>
|
|
28
30
|
#include "CellType.hpp"
|
|
31
|
+
#include <NitroModules/AnyMap.hpp>
|
|
32
|
+
#include <vector>
|
|
29
33
|
|
|
30
34
|
namespace margelo::nitro::xlsx {
|
|
31
35
|
|
|
@@ -71,42 +75,70 @@ namespace margelo::nitro::xlsx {
|
|
|
71
75
|
virtual void writeURL(double row, double col, const std::string& url, const std::optional<std::shared_ptr<HybridXlsxCellFormatSpec>>& format) = 0;
|
|
72
76
|
virtual void setColumn(double firstCol, double lastCol, double width, const std::optional<std::shared_ptr<HybridXlsxCellFormatSpec>>& format) = 0;
|
|
73
77
|
virtual void setRow(double row, double height, const std::optional<std::shared_ptr<HybridXlsxCellFormatSpec>>& format) = 0;
|
|
78
|
+
virtual bool deleteRow(double row) = 0;
|
|
79
|
+
virtual bool deleteColumn(double col) = 0;
|
|
74
80
|
virtual void mergeRange(double firstRow, double firstCol, double lastRow, double lastCol, const std::string& value, const std::optional<std::shared_ptr<HybridXlsxCellFormatSpec>>& format) = 0;
|
|
75
81
|
virtual void mergeRangeNum(double firstRow, double firstCol, double lastRow, double lastCol, double value, const std::optional<std::shared_ptr<HybridXlsxCellFormatSpec>>& format) = 0;
|
|
76
|
-
virtual void
|
|
77
|
-
virtual void insertImageBuffer(double row, double col, const std::shared_ptr<ArrayBuffer>& buffer, const std::string& extension, std::optional<double> xOffset, std::optional<double> yOffset, std::optional<double> xScale, std::optional<double> yScale) = 0;
|
|
78
|
-
virtual void autofilter(double firstRow, double firstCol, double lastRow, double lastCol) = 0;
|
|
79
|
-
virtual void freezePanes(double row, double col) = 0;
|
|
80
|
-
virtual void splitPanes(double row, double col) = 0;
|
|
81
|
-
virtual void setTabColor(double color) = 0;
|
|
82
|
+
virtual void unmergeCells(double firstRow, double firstCol, double lastRow, double lastCol) = 0;
|
|
82
83
|
virtual void hide() = 0;
|
|
83
84
|
virtual void activate() = 0;
|
|
84
|
-
virtual void setFirstSheet() = 0;
|
|
85
85
|
virtual void protect(const std::optional<std::string>& password) = 0;
|
|
86
|
-
virtual void
|
|
87
|
-
virtual void
|
|
88
|
-
virtual void
|
|
89
|
-
virtual void
|
|
90
|
-
virtual void
|
|
91
|
-
virtual void
|
|
92
|
-
virtual void
|
|
93
|
-
virtual void
|
|
94
|
-
virtual void
|
|
95
|
-
virtual void
|
|
96
|
-
virtual void
|
|
97
|
-
virtual void
|
|
86
|
+
virtual void protectSheet(std::optional<bool> set) = 0;
|
|
87
|
+
virtual void protectObjects(std::optional<bool> set) = 0;
|
|
88
|
+
virtual void protectScenarios(std::optional<bool> set) = 0;
|
|
89
|
+
virtual void setPassword(const std::string& password) = 0;
|
|
90
|
+
virtual void setPasswordHash(const std::string& hash) = 0;
|
|
91
|
+
virtual void clearPassword() = 0;
|
|
92
|
+
virtual void clearSheetProtection() = 0;
|
|
93
|
+
virtual void allowInsertColumns(std::optional<bool> set) = 0;
|
|
94
|
+
virtual void allowInsertRows(std::optional<bool> set) = 0;
|
|
95
|
+
virtual void allowDeleteColumns(std::optional<bool> set) = 0;
|
|
96
|
+
virtual void allowDeleteRows(std::optional<bool> set) = 0;
|
|
97
|
+
virtual void allowSelectLockedCells(std::optional<bool> set) = 0;
|
|
98
|
+
virtual void allowSelectUnlockedCells(std::optional<bool> set) = 0;
|
|
99
|
+
virtual void denyInsertColumns() = 0;
|
|
100
|
+
virtual void denyInsertRows() = 0;
|
|
101
|
+
virtual void denyDeleteColumns() = 0;
|
|
102
|
+
virtual void denyDeleteRows() = 0;
|
|
103
|
+
virtual void denySelectLockedCells() = 0;
|
|
104
|
+
virtual void denySelectUnlockedCells() = 0;
|
|
105
|
+
virtual bool sheetProtected() = 0;
|
|
106
|
+
virtual bool objectsProtected() = 0;
|
|
107
|
+
virtual bool scenariosProtected() = 0;
|
|
108
|
+
virtual bool insertColumnsAllowed() = 0;
|
|
109
|
+
virtual bool insertRowsAllowed() = 0;
|
|
110
|
+
virtual bool deleteColumnsAllowed() = 0;
|
|
111
|
+
virtual bool deleteRowsAllowed() = 0;
|
|
112
|
+
virtual bool selectLockedCellsAllowed() = 0;
|
|
113
|
+
virtual bool selectUnlockedCellsAllowed() = 0;
|
|
114
|
+
virtual bool passwordIsSet() = 0;
|
|
115
|
+
virtual std::string passwordHash() = 0;
|
|
116
|
+
virtual std::string sheetProtectionSummary() = 0;
|
|
98
117
|
virtual void setColumnHidden(double firstCol, double lastCol, bool hidden) = 0;
|
|
99
118
|
virtual void setRowHidden(double row, bool hidden) = 0;
|
|
119
|
+
virtual void setComment(double row, double col, const std::string& text, std::optional<double> authorId) = 0;
|
|
120
|
+
virtual std::string getComment(double row, double col) = 0;
|
|
121
|
+
virtual bool hasComment(double row, double col) = 0;
|
|
122
|
+
virtual bool deleteComment(double row, double col) = 0;
|
|
123
|
+
virtual double getCommentCount() = 0;
|
|
124
|
+
virtual double addCommentAuthor(const std::string& author) = 0;
|
|
125
|
+
virtual std::string getCommentAuthor(double authorId) = 0;
|
|
126
|
+
virtual std::shared_ptr<HybridXlsxConditionalFormatsSpec> getConditionalFormats() = 0;
|
|
100
127
|
virtual std::variant<bool, nitro::NullType, std::string, double> getCellValue(double row, double col) = 0;
|
|
101
128
|
virtual std::string getCellString(double row, double col) = 0;
|
|
102
129
|
virtual std::string getCellRawValue(double row, double col) = 0;
|
|
103
130
|
virtual CellType getCellType(double row, double col) = 0;
|
|
104
131
|
virtual std::shared_ptr<HybridXlsxCellFormatSpec> getCellFormat(double row, double col) = 0;
|
|
132
|
+
virtual bool hasFormula(double row, double col) = 0;
|
|
133
|
+
virtual std::string formula(double row, double col) = 0;
|
|
134
|
+
virtual bool findCell(double row, double col) = 0;
|
|
105
135
|
virtual double getRowCount() = 0;
|
|
106
136
|
virtual double getColumnCount() = 0;
|
|
107
137
|
virtual double getLastRow() = 0;
|
|
108
138
|
virtual double getLastColumn() = 0;
|
|
109
139
|
virtual std::string getName() = 0;
|
|
140
|
+
virtual std::vector<std::shared_ptr<AnyMap>> toJSON(const std::optional<std::vector<std::string>>& keys) = 0;
|
|
141
|
+
virtual void fromJSON(const std::vector<std::shared_ptr<AnyMap>>& data) = 0;
|
|
110
142
|
|
|
111
143
|
protected:
|
|
112
144
|
// Hybrid Setup
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-nitro-xlsx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "Fast XLSX file reading and writing for React Native using OpenXLSX and Nitro Modules",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/zydbkqf/react-native-nitro-xlsx",
|
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
"types": "src/index.ts",
|
|
11
11
|
"source": "src/index.ts",
|
|
12
12
|
"scripts": {
|
|
13
|
-
"postinstall": "node scripts/prepare-openxlsx.js",
|
|
14
13
|
"specs": "nitrogen",
|
|
15
14
|
"test": "jest",
|
|
16
|
-
"test:cpp": "
|
|
15
|
+
"test:cpp": "bash scripts/run-cpp-tests.sh",
|
|
17
16
|
"test:cpp:clean": "rm -rf cpp/tests/build"
|
|
18
17
|
},
|
|
19
18
|
"peerDependencies": {
|
|
@@ -35,6 +34,7 @@
|
|
|
35
34
|
"src",
|
|
36
35
|
"cpp",
|
|
37
36
|
"!cpp/tests",
|
|
37
|
+
"thirdparty",
|
|
38
38
|
"android",
|
|
39
39
|
"ios",
|
|
40
40
|
"scripts",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
5
|
+
cd "$ROOT/cpp/tests"
|
|
6
|
+
|
|
7
|
+
if [ -z "${OPENXLSX_PATH:-}" ]; then
|
|
8
|
+
OPENXLSX_PATH="$ROOT/thirdparty/OpenXLSX"
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
cmake -B build -DOPENXLSX_PATH="$OPENXLSX_PATH"
|
|
12
|
+
cmake --build build
|
|
13
|
+
cd build
|
|
14
|
+
ctest --output-on-failure
|
|
@@ -10,7 +10,11 @@ import {
|
|
|
10
10
|
Gridlines,
|
|
11
11
|
Colors,
|
|
12
12
|
NumFormat,
|
|
13
|
-
|
|
13
|
+
XlsxError,
|
|
14
|
+
XlsxErrorCode,
|
|
15
|
+
CfType,
|
|
16
|
+
CfOperator,
|
|
17
|
+
CfTimePeriod,
|
|
14
18
|
} from '../index';
|
|
15
19
|
|
|
16
20
|
describe('NitroXlsx', () => {
|
|
@@ -33,6 +37,14 @@ describe('NitroXlsx', () => {
|
|
|
33
37
|
expect(NitroXlsx.openWorkbookFromBuffer).toBeDefined();
|
|
34
38
|
expect(typeof NitroXlsx.openWorkbookFromBuffer).toBe('function');
|
|
35
39
|
});
|
|
40
|
+
|
|
41
|
+
it('should have fromJSON method that accepts a Record of sheet rows', () => {
|
|
42
|
+
expect(NitroXlsx.fromJSON).toBeDefined();
|
|
43
|
+
expect(typeof NitroXlsx.fromJSON).toBe('function');
|
|
44
|
+
expect(() =>
|
|
45
|
+
NitroXlsx.fromJSON({ Sheet1: [{ Name: 'Alice', Age: 30 }] })
|
|
46
|
+
).not.toThrow();
|
|
47
|
+
});
|
|
36
48
|
});
|
|
37
49
|
|
|
38
50
|
describe('Constants', () => {
|
|
@@ -130,12 +142,69 @@ describe('Constants', () => {
|
|
|
130
142
|
});
|
|
131
143
|
});
|
|
132
144
|
|
|
133
|
-
describe('
|
|
134
|
-
it('should export
|
|
135
|
-
expect(
|
|
136
|
-
expect(
|
|
137
|
-
expect(
|
|
138
|
-
expect(
|
|
145
|
+
describe('CfType', () => {
|
|
146
|
+
it('should export CfType constants', () => {
|
|
147
|
+
expect(CfType).toBeDefined();
|
|
148
|
+
expect(CfType.EXPRESSION).toBe(0);
|
|
149
|
+
expect(CfType.CELL_IS).toBe(1);
|
|
150
|
+
expect(CfType.TOP10).toBe(5);
|
|
151
|
+
expect(CfType.CONTAINS_TEXT).toBe(8);
|
|
152
|
+
expect(CfType.TIME_PERIOD).toBe(16);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
describe('CfOperator', () => {
|
|
157
|
+
it('should export CfOperator constants', () => {
|
|
158
|
+
expect(CfOperator).toBeDefined();
|
|
159
|
+
expect(CfOperator.LESS_THAN).toBe(0);
|
|
160
|
+
expect(CfOperator.EQUAL).toBe(2);
|
|
161
|
+
expect(CfOperator.GREATER_THAN).toBe(5);
|
|
162
|
+
expect(CfOperator.BETWEEN).toBe(6);
|
|
139
163
|
});
|
|
140
164
|
});
|
|
165
|
+
|
|
166
|
+
describe('CfTimePeriod', () => {
|
|
167
|
+
it('should export CfTimePeriod constants', () => {
|
|
168
|
+
expect(CfTimePeriod).toBeDefined();
|
|
169
|
+
expect(CfTimePeriod.TODAY).toBe(0);
|
|
170
|
+
expect(CfTimePeriod.YESTERDAY).toBe(1);
|
|
171
|
+
expect(CfTimePeriod.THIS_WEEK).toBe(7);
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
describe('XlsxError', () => {
|
|
177
|
+
it('should export XlsxErrorCode constants', () => {
|
|
178
|
+
expect(XlsxErrorCode.INVALID_ARGUMENT).toBe('INVALID_ARGUMENT');
|
|
179
|
+
expect(XlsxErrorCode.SHEET_NOT_FOUND).toBe('SHEET_NOT_FOUND');
|
|
180
|
+
expect(XlsxErrorCode.INDEX_OUT_OF_RANGE).toBe('INDEX_OUT_OF_RANGE');
|
|
181
|
+
expect(XlsxErrorCode.UNSUPPORTED).toBe('UNSUPPORTED');
|
|
182
|
+
expect(XlsxErrorCode.XLSX_ERROR).toBe('XLSX_ERROR');
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
it('should create XlsxError with code and message', () => {
|
|
186
|
+
const err = new XlsxError(XlsxErrorCode.SHEET_NOT_FOUND, 'Sheet missing');
|
|
187
|
+
expect(err).toBeInstanceOf(Error);
|
|
188
|
+
expect(err.name).toBe('XlsxError');
|
|
189
|
+
expect(err.code).toBe('SHEET_NOT_FOUND');
|
|
190
|
+
expect(err.message).toContain('SHEET_NOT_FOUND');
|
|
191
|
+
expect(err.message).toContain('Sheet missing');
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
it('should parse native error message into XlsxError', () => {
|
|
195
|
+
const native = new Error('deleteSheet: SHEET_NOT_FOUND: Worksheet not found: Foo');
|
|
196
|
+
const err = XlsxError.from(native);
|
|
197
|
+
expect(err.code).toBe('SHEET_NOT_FOUND');
|
|
198
|
+
expect(err.message).toContain('Worksheet not found: Foo');
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
it('should wrap unknown errors with INTERNAL_ERROR', () => {
|
|
202
|
+
const err = XlsxError.from(new Error('something odd'));
|
|
203
|
+
expect(err.code).toBe('INTERNAL_ERROR');
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
it('should return the same instance if already XlsxError', () => {
|
|
207
|
+
const original = new XlsxError(XlsxErrorCode.IO_ERROR, 'disk');
|
|
208
|
+
expect(XlsxError.from(original)).toBe(original);
|
|
209
|
+
});
|
|
141
210
|
});
|