react-native-nitro-xlsx 0.2.5 → 0.2.7

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.
Files changed (449) hide show
  1. package/NitroXlsx.podspec +26 -27
  2. package/Package.swift +31 -10
  3. package/README.md +21 -9
  4. package/android/CMakeLists.txt +20 -27
  5. package/cpp/HybridNitroXlsx.cpp +25 -1
  6. package/cpp/HybridXlsxCellFormat.cpp +46 -146
  7. package/cpp/HybridXlsxCellFormat.hpp +9 -41
  8. package/cpp/HybridXlsxConditionalFormat.cpp +4 -1
  9. package/cpp/HybridXlsxConditionalFormats.cpp +5 -1
  10. package/cpp/HybridXlsxWorkbook.cpp +38 -8
  11. package/cpp/HybridXlsxWorkbook.hpp +10 -1
  12. package/cpp/HybridXlsxWorksheet.cpp +422 -141
  13. package/cpp/HybridXlsxWorksheet.hpp +4 -1
  14. package/cpp/XlsxCacheDir.cpp +25 -2
  15. package/cpp/XlsxCacheDir.hpp +3 -1
  16. package/cpp/XlsxCellStyle.hpp +360 -0
  17. package/cpp/XlsxJson.cpp +29 -8
  18. package/package.json +2 -2
  19. package/scripts/run-cpp-tests.sh +1 -1
  20. package/scripts/sync-openxlsx-headers.sh +34 -0
  21. package/src/__mocks__/react-native-nitro-modules.ts +523 -20
  22. package/src/__tests__/index.test.ts +124 -16
  23. package/src/index.ts +13 -13
  24. package/thirdparty/OpenXLSX/.clang-format +118 -0
  25. package/thirdparty/OpenXLSX/.clang-tidy +28 -0
  26. package/thirdparty/OpenXLSX/.gitignore +130 -0
  27. package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_before_XMLNode_wrappers +46 -0
  28. package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_and_stripping +49 -0
  29. package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_char_support +49 -0
  30. package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_support +49 -0
  31. package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespaced_name_disabled +49 -0
  32. package/thirdparty/OpenXLSX/Benchmarks/2024-08-11-benchmarks_post-XLCellIterator-Rework +46 -0
  33. package/thirdparty/OpenXLSX/Benchmarks/2024-08-14-benchmarks_post-default-row-column-style-support +46 -0
  34. package/thirdparty/OpenXLSX/Benchmarks/2024-09-02-benchmarks +46 -0
  35. package/thirdparty/OpenXLSX/Benchmarks/2024-12-19-benchmarks +46 -0
  36. package/thirdparty/OpenXLSX/Benchmarks/2024-12-30-benchmarks-post-XLSharedStrings-by-ref +46 -0
  37. package/thirdparty/OpenXLSX/Benchmarks/2025-01-09-benchmarks-post-conditionalFormatsAndSheetProtection +46 -0
  38. package/thirdparty/OpenXLSX/Benchmarks/2025-01-10-benchmarks-post-XLCellValue-bugfix +46 -0
  39. package/thirdparty/OpenXLSX/Benchmarks/2025-01-31-benchmarks-post-XLComments-implementation +46 -0
  40. package/thirdparty/OpenXLSX/Benchmarks/2025-02-02-benchmarks-post-XLRowIterator-Rework +46 -0
  41. package/thirdparty/OpenXLSX/Benchmarks/2025-07-20-benchmarks-after-hiding-pugixml-internals +46 -0
  42. package/thirdparty/OpenXLSX/Benchmarks/2025-08-29-benchmarks-after-code-review-with-libzip +46 -0
  43. package/thirdparty/OpenXLSX/Benchmarks/Benchmark.cpp +249 -0
  44. package/thirdparty/OpenXLSX/Benchmarks/CMakeLists.txt +19 -0
  45. package/thirdparty/OpenXLSX/CMakeLists.txt +466 -0
  46. package/thirdparty/OpenXLSX/Documentation/CMakeLists.txt +31 -0
  47. package/thirdparty/OpenXLSX/Documentation/Doxyfile.in +2471 -0
  48. package/thirdparty/OpenXLSX/Documentation/DoxygenLayout.xml +194 -0
  49. package/thirdparty/OpenXLSX/Documentation/customdoxygen.css +1355 -0
  50. package/thirdparty/OpenXLSX/Examples/CMakeLists.txt +103 -0
  51. package/thirdparty/OpenXLSX/Examples/Demo1.cpp +279 -0
  52. package/thirdparty/OpenXLSX/Examples/Demo10.cpp +545 -0
  53. package/thirdparty/OpenXLSX/Examples/Demo1A.cpp +137 -0
  54. package/thirdparty/OpenXLSX/Examples/Demo2.cpp +65 -0
  55. package/thirdparty/OpenXLSX/Examples/Demo3.cpp +89 -0
  56. package/thirdparty/OpenXLSX/Examples/Demo4.cpp +86 -0
  57. package/thirdparty/OpenXLSX/Examples/Demo5.cpp +77 -0
  58. package/thirdparty/OpenXLSX/Examples/Demo6.cpp +103 -0
  59. package/thirdparty/OpenXLSX/Examples/Demo7.cpp +79 -0
  60. package/thirdparty/OpenXLSX/Examples/Demo8.cpp +117 -0
  61. package/thirdparty/OpenXLSX/Examples/Demo9.cpp +363 -0
  62. package/thirdparty/OpenXLSX/Examples/cmake/FindLIBZIP.cmake +61 -0
  63. package/thirdparty/OpenXLSX/Examples/external/CustomZip/CustomZip.hpp +256 -0
  64. package/thirdparty/OpenXLSX/LICENSE.md +29 -0
  65. package/thirdparty/OpenXLSX/Makefile.GNU +530 -0
  66. package/thirdparty/OpenXLSX/Notes/TBDs.txt +16 -0
  67. package/thirdparty/OpenXLSX/Notes/confirmed-TBCs.txt +8 -0
  68. package/thirdparty/OpenXLSX/Notes/styles-missing-support.xml +12 -0
  69. package/thirdparty/OpenXLSX/Notes/todo-list.txt +108 -0
  70. package/thirdparty/OpenXLSX/OpenXLSX/CMakeLists.txt +631 -0
  71. package/thirdparty/OpenXLSX/OpenXLSX/OpenXLSX.hpp +63 -0
  72. package/thirdparty/OpenXLSX/OpenXLSX/OpenXLSXConfig.cmake +11 -0
  73. package/thirdparty/OpenXLSX/OpenXLSX/cmake/bundle_static_library.cmake +198 -0
  74. package/thirdparty/OpenXLSX/OpenXLSX/cmake/patch_pkg_config.cmake +69 -0
  75. package/thirdparty/OpenXLSX/OpenXLSX/headers/IZipArchive.hpp +361 -0
  76. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/IZipArchive.hpp +361 -0
  77. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/OpenXLSX-Exports.hpp +12 -0
  78. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLCell.hpp +367 -0
  79. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLCellIterator.hpp +252 -0
  80. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLCellRange.hpp +223 -0
  81. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLCellReference.hpp +317 -0
  82. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLCellValue.hpp +793 -0
  83. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLColor.hpp +232 -0
  84. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLColumn.hpp +159 -0
  85. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLCommandQuery.hpp +228 -0
  86. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLComments.hpp +270 -0
  87. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLConstants.hpp +18 -0
  88. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLContentTypes.hpp +264 -0
  89. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLDateTime.hpp +175 -0
  90. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLDocument.hpp +505 -0
  91. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLDrawing.hpp +452 -0
  92. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLException.hpp +161 -0
  93. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLFormula.hpp +375 -0
  94. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLIterator.hpp +40 -0
  95. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLMergeCells.hpp +216 -0
  96. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLProperties.hpp +348 -0
  97. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLRelationships.hpp +348 -0
  98. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLRow.hpp +721 -0
  99. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLRowData.hpp +488 -0
  100. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLSharedStrings.hpp +204 -0
  101. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLSheet.hpp +1640 -0
  102. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLStyles.hpp +2390 -0
  103. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLTables.hpp +132 -0
  104. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLWorkbook.hpp +404 -0
  105. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLXmlData.hpp +283 -0
  106. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLXmlFile.hpp +194 -0
  107. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLXmlParser.hpp +282 -0
  108. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLXmlParserForwardDeclarations.hpp +85 -0
  109. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/XLZipArchive.hpp +232 -0
  110. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/detail/LibZip.hpp +447 -0
  111. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/detail/OpenXLSXFileSystemTools.hpp +207 -0
  112. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX/detail/Zippy.hpp +1375 -0
  113. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX-Exports.hpp +12 -0
  114. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCell.hpp +367 -0
  115. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellIterator.hpp +252 -0
  116. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellRange.hpp +223 -0
  117. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellReference.hpp +317 -0
  118. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellValue.hpp +793 -0
  119. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLColor.hpp +232 -0
  120. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLColumn.hpp +159 -0
  121. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCommandQuery.hpp +228 -0
  122. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLComments.hpp +270 -0
  123. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLConstants.hpp +18 -0
  124. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLContentTypes.hpp +264 -0
  125. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDateTime.hpp +175 -0
  126. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDocument.hpp +505 -0
  127. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDrawing.hpp +452 -0
  128. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLException.hpp +161 -0
  129. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLFormula.hpp +375 -0
  130. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLIterator.hpp +40 -0
  131. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLMergeCells.hpp +216 -0
  132. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLProperties.hpp +348 -0
  133. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRelationships.hpp +348 -0
  134. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRow.hpp +721 -0
  135. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRowData.hpp +488 -0
  136. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLSharedStrings.hpp +204 -0
  137. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLSheet.hpp +1640 -0
  138. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLStyles.hpp +2390 -0
  139. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLTables.hpp +132 -0
  140. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLWorkbook.hpp +404 -0
  141. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlData.hpp +283 -0
  142. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlFile.hpp +194 -0
  143. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlParser.hpp +282 -0
  144. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlParserForwardDeclarations.hpp +85 -0
  145. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLZipArchive.hpp +232 -0
  146. package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/LibZip.hpp +447 -0
  147. package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/OpenXLSXFileSystemTools.hpp +207 -0
  148. package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/Zippy.hpp +1375 -0
  149. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCell.cpp +340 -0
  150. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellIterator.cpp +427 -0
  151. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellRange.cpp +221 -0
  152. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellReference.cpp +408 -0
  153. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellValue.cpp +519 -0
  154. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLColor.cpp +202 -0
  155. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLColumn.cpp +141 -0
  156. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLComments.cpp +637 -0
  157. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLContentTypes.cpp +329 -0
  158. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDateTime.cpp +269 -0
  159. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDocument.cpp +1678 -0
  160. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDrawing.cpp +784 -0
  161. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLFormula.cpp +201 -0
  162. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLMergeCells.cpp +357 -0
  163. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLProperties.cpp +810 -0
  164. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRelationships.cpp +529 -0
  165. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRow.cpp +918 -0
  166. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRowData.cpp +508 -0
  167. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLSharedStrings.cpp +220 -0
  168. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLSheet.cpp +1970 -0
  169. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLStyles.cpp +3014 -0
  170. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLTables.cpp +125 -0
  171. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLWorkbook.cpp +784 -0
  172. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlData.cpp +247 -0
  173. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlFile.cpp +160 -0
  174. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlParser.cpp +261 -0
  175. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLZipArchive.cpp +266 -0
  176. package/thirdparty/OpenXLSX/OpenXLSX/sources/utilities/XLUtilities.hpp +478 -0
  177. package/thirdparty/OpenXLSX/README.md +1279 -0
  178. package/thirdparty/OpenXLSX/Scripts/cmake-cleanup.sh +102 -0
  179. package/thirdparty/OpenXLSX/Scripts/compile.sh +23 -0
  180. package/thirdparty/OpenXLSX/Scripts/demos-cleanup.sh +25 -0
  181. package/thirdparty/OpenXLSX/Scripts/demos-run-all.sh +60 -0
  182. package/thirdparty/OpenXLSX/Scripts/guarded-xml-format.sh +47 -0
  183. package/thirdparty/OpenXLSX/Scripts/make-gnu.sh +11 -0
  184. package/thirdparty/OpenXLSX/Scripts/uninstall-manifest.sh +48 -0
  185. package/thirdparty/OpenXLSX/Scripts/xml-format-all.sh +19 -0
  186. package/thirdparty/OpenXLSX/Scripts/xml-format.sh +38 -0
  187. package/thirdparty/OpenXLSX/Tests/CMakeLists.txt +37 -0
  188. package/thirdparty/OpenXLSX/Tests/catch/catch.hpp +17799 -0
  189. package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_automake.hpp +68 -0
  190. package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_sonarqube.hpp +182 -0
  191. package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_tap.hpp +278 -0
  192. package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_teamcity.hpp +212 -0
  193. package/thirdparty/OpenXLSX/Tests/main.cpp +55 -0
  194. package/thirdparty/OpenXLSX/Tests/testXLCell.cpp +176 -0
  195. package/thirdparty/OpenXLSX/Tests/testXLCellRange.cpp +180 -0
  196. package/thirdparty/OpenXLSX/Tests/testXLCellReference.cpp +160 -0
  197. package/thirdparty/OpenXLSX/Tests/testXLCellValue.cpp +366 -0
  198. package/thirdparty/OpenXLSX/Tests/testXLCellValueProxy.cpp +255 -0
  199. package/thirdparty/OpenXLSX/Tests/testXLColor.cpp +75 -0
  200. package/thirdparty/OpenXLSX/Tests/testXLDateTime.cpp +229 -0
  201. package/thirdparty/OpenXLSX/Tests/testXLDocument.cpp +197 -0
  202. package/thirdparty/OpenXLSX/Tests/testXLFormula.cpp +131 -0
  203. package/thirdparty/OpenXLSX/Tests/testXLRow.cpp +597 -0
  204. package/thirdparty/OpenXLSX/Tests/testXLSheet.cpp +77 -0
  205. package/thirdparty/OpenXLSX/Tests/ziptest-with-libs.cpp +88 -0
  206. package/thirdparty/OpenXLSX/Tests/ziptest.cpp +735 -0
  207. package/thirdparty/OpenXLSX/cmake/get-git-HEAD-ID.cmake +45 -0
  208. package/thirdparty/OpenXLSX/cmake/libopenxlsxCPackOptions.cmake.in +20 -0
  209. package/thirdparty/OpenXLSX/cmake/manage_dependency.cmake +813 -0
  210. package/thirdparty/OpenXLSX/cmake/recursive_library_type_test.cmake +52 -0
  211. package/thirdparty/OpenXLSX/gnu-make-crutch/OpenXLSX-Exports-shared.hpp +42 -0
  212. package/thirdparty/OpenXLSX/gnu-make-crutch/OpenXLSX-Exports-static.hpp +42 -0
  213. package/thirdparty/OpenXLSX/vcpkg.json +24 -0
  214. package/thirdparty/README.md +46 -0
  215. package/thirdparty/miniz/.clang-format +47 -0
  216. package/thirdparty/miniz/.travis.yml +2 -0
  217. package/thirdparty/miniz/CMakeLists.txt +333 -0
  218. package/thirdparty/miniz/CMakePresets.json +31 -0
  219. package/thirdparty/miniz/ChangeLog.md +272 -0
  220. package/thirdparty/miniz/Config.cmake.in +1 -0
  221. package/thirdparty/miniz/LICENSE +22 -0
  222. package/thirdparty/miniz/amalgamate.sh +57 -0
  223. package/thirdparty/miniz/examples/example1.c +105 -0
  224. package/thirdparty/miniz/examples/example2.c +164 -0
  225. package/thirdparty/miniz/examples/example3.c +269 -0
  226. package/thirdparty/miniz/examples/example4.c +102 -0
  227. package/thirdparty/miniz/examples/example5.c +327 -0
  228. package/thirdparty/miniz/examples/example6.c +189 -0
  229. package/thirdparty/miniz/meson.build +21 -0
  230. package/thirdparty/miniz/miniz.c +646 -0
  231. package/thirdparty/miniz/miniz.h +615 -0
  232. package/thirdparty/miniz/miniz.pc.in +13 -0
  233. package/thirdparty/miniz/miniz_common.h +89 -0
  234. package/thirdparty/miniz/miniz_export.h +20 -0
  235. package/thirdparty/miniz/miniz_tdef.c +1602 -0
  236. package/thirdparty/miniz/miniz_tdef.h +199 -0
  237. package/thirdparty/miniz/miniz_tinfl.c +778 -0
  238. package/thirdparty/miniz/miniz_tinfl.h +150 -0
  239. package/thirdparty/miniz/miniz_zip.c +4895 -0
  240. package/thirdparty/miniz/miniz_zip.h +454 -0
  241. package/thirdparty/miniz/readme.md +46 -0
  242. package/thirdparty/miniz/test.sh +36 -0
  243. package/thirdparty/miniz/tests/add_in_place_fuzzer.c +87 -0
  244. package/thirdparty/miniz/tests/catch_amalgamated.cpp +10795 -0
  245. package/thirdparty/miniz/tests/catch_amalgamated.hpp +13143 -0
  246. package/thirdparty/miniz/tests/checksum_fuzzer.c +26 -0
  247. package/thirdparty/miniz/tests/compress_fuzzer.c +91 -0
  248. package/thirdparty/miniz/tests/flush_fuzzer.c +88 -0
  249. package/thirdparty/miniz/tests/fuzz_main.c +55 -0
  250. package/thirdparty/miniz/tests/large_fuzzer.c +133 -0
  251. package/thirdparty/miniz/tests/main.cpp +185 -0
  252. package/thirdparty/miniz/tests/miniz_tdefl_fuzzer.cc +115 -0
  253. package/thirdparty/miniz/tests/miniz_tester.cpp +1881 -0
  254. package/thirdparty/miniz/tests/miniz_zip_validate_fuzzer.cc +71 -0
  255. package/thirdparty/miniz/tests/miniz_zip_writer_fuzzer.cc +96 -0
  256. package/thirdparty/miniz/tests/ossfuzz.sh +48 -0
  257. package/thirdparty/miniz/tests/small_fuzzer.c +126 -0
  258. package/thirdparty/miniz/tests/timer.cpp +152 -0
  259. package/thirdparty/miniz/tests/timer.h +40 -0
  260. package/thirdparty/miniz/tests/uncompress2_fuzzer.c +21 -0
  261. package/thirdparty/miniz/tests/uncompress_fuzzer.c +30 -0
  262. package/thirdparty/miniz/tests/zip.dict +9 -0
  263. package/thirdparty/miniz/tests/zip_fuzzer.c +63 -0
  264. package/thirdparty/pugixml/.codecov.yml +7 -0
  265. package/thirdparty/pugixml/.gitattributes +1 -0
  266. package/thirdparty/pugixml/CMakeLists.txt +330 -0
  267. package/thirdparty/pugixml/LICENSE.md +24 -0
  268. package/thirdparty/pugixml/Makefile +98 -0
  269. package/thirdparty/pugixml/README.md +81 -0
  270. package/thirdparty/pugixml/SECURITY.md +9 -0
  271. package/thirdparty/pugixml/appveyor.yml +50 -0
  272. package/thirdparty/pugixml/docs/config.adoc +7 -0
  273. package/thirdparty/pugixml/docs/images/dom_tree.png +0 -0
  274. package/thirdparty/pugixml/docs/images/vs2005_link1.png +0 -0
  275. package/thirdparty/pugixml/docs/images/vs2005_link2.png +0 -0
  276. package/thirdparty/pugixml/docs/images/vs2005_pch1.png +0 -0
  277. package/thirdparty/pugixml/docs/images/vs2005_pch2.png +0 -0
  278. package/thirdparty/pugixml/docs/images/vs2005_pch3.png +0 -0
  279. package/thirdparty/pugixml/docs/images/vs2005_pch4.png +0 -0
  280. package/thirdparty/pugixml/docs/images/vs2010_link1.png +0 -0
  281. package/thirdparty/pugixml/docs/images/vs2010_link2.png +0 -0
  282. package/thirdparty/pugixml/docs/manual.adoc +3326 -0
  283. package/thirdparty/pugixml/docs/manual.html +6395 -0
  284. package/thirdparty/pugixml/docs/quickstart.adoc +287 -0
  285. package/thirdparty/pugixml/docs/quickstart.html +1107 -0
  286. package/thirdparty/pugixml/docs/samples/character.xml +8 -0
  287. package/thirdparty/pugixml/docs/samples/custom_memory_management.cpp +27 -0
  288. package/thirdparty/pugixml/docs/samples/include.cpp +64 -0
  289. package/thirdparty/pugixml/docs/samples/load_error_handling.cpp +33 -0
  290. package/thirdparty/pugixml/docs/samples/load_file.cpp +16 -0
  291. package/thirdparty/pugixml/docs/samples/load_memory.cpp +66 -0
  292. package/thirdparty/pugixml/docs/samples/load_options.cpp +30 -0
  293. package/thirdparty/pugixml/docs/samples/load_stream.cpp +97 -0
  294. package/thirdparty/pugixml/docs/samples/modify_add.cpp +29 -0
  295. package/thirdparty/pugixml/docs/samples/modify_base.cpp +43 -0
  296. package/thirdparty/pugixml/docs/samples/modify_remove.cpp +27 -0
  297. package/thirdparty/pugixml/docs/samples/save_custom_writer.cpp +116 -0
  298. package/thirdparty/pugixml/docs/samples/save_declaration.cpp +27 -0
  299. package/thirdparty/pugixml/docs/samples/save_file.cpp +17 -0
  300. package/thirdparty/pugixml/docs/samples/save_options.cpp +48 -0
  301. package/thirdparty/pugixml/docs/samples/save_stream.cpp +18 -0
  302. package/thirdparty/pugixml/docs/samples/save_subtree.cpp +26 -0
  303. package/thirdparty/pugixml/docs/samples/text.cpp +35 -0
  304. package/thirdparty/pugixml/docs/samples/transitions.xml +7 -0
  305. package/thirdparty/pugixml/docs/samples/traverse_base.cpp +51 -0
  306. package/thirdparty/pugixml/docs/samples/traverse_iter.cpp +27 -0
  307. package/thirdparty/pugixml/docs/samples/traverse_predicate.cpp +48 -0
  308. package/thirdparty/pugixml/docs/samples/traverse_rangefor.cpp +32 -0
  309. package/thirdparty/pugixml/docs/samples/traverse_walker.cpp +35 -0
  310. package/thirdparty/pugixml/docs/samples/tree.xml +12 -0
  311. package/thirdparty/pugixml/docs/samples/weekly-shift_jis.xml +78 -0
  312. package/thirdparty/pugixml/docs/samples/weekly-utf-16.xml +0 -0
  313. package/thirdparty/pugixml/docs/samples/weekly-utf-8.xml +78 -0
  314. package/thirdparty/pugixml/docs/samples/xgconsole.xml +12 -0
  315. package/thirdparty/pugixml/docs/samples/xpath_error.cpp +43 -0
  316. package/thirdparty/pugixml/docs/samples/xpath_query.cpp +36 -0
  317. package/thirdparty/pugixml/docs/samples/xpath_select.cpp +28 -0
  318. package/thirdparty/pugixml/docs/samples/xpath_variables.cpp +38 -0
  319. package/thirdparty/pugixml/readme.txt +50 -0
  320. package/thirdparty/pugixml/scripts/archive.py +54 -0
  321. package/thirdparty/pugixml/scripts/cocoapods_push.sh +4 -0
  322. package/thirdparty/pugixml/scripts/natvis/pugixml.natvis +77 -0
  323. package/thirdparty/pugixml/scripts/natvis/pugixml_compact.natvis +506 -0
  324. package/thirdparty/pugixml/scripts/nuget/build/native/pugixml-propertiesui.xml +17 -0
  325. package/thirdparty/pugixml/scripts/nuget/build/native/pugixml.targets +28 -0
  326. package/thirdparty/pugixml/scripts/nuget/pugixml.nuspec +20 -0
  327. package/thirdparty/pugixml/scripts/nuget_build.ps1 +60 -0
  328. package/thirdparty/pugixml/scripts/premake4.lua +92 -0
  329. package/thirdparty/pugixml/scripts/pugixml-config.cmake.in +12 -0
  330. package/thirdparty/pugixml/scripts/pugixml.pc.in +11 -0
  331. package/thirdparty/pugixml/scripts/pugixml.podspec +14 -0
  332. package/thirdparty/pugixml/scripts/pugixml.xcodeproj/project.pbxproj +212 -0
  333. package/thirdparty/pugixml/scripts/pugixml_airplay.mkf +13 -0
  334. package/thirdparty/pugixml/scripts/pugixml_codeblocks.cbp +44 -0
  335. package/thirdparty/pugixml/scripts/pugixml_codelite.project +56 -0
  336. package/thirdparty/pugixml/scripts/pugixml_dll.rc +45 -0
  337. package/thirdparty/pugixml/scripts/pugixml_vs2005.vcproj +343 -0
  338. package/thirdparty/pugixml/scripts/pugixml_vs2005_static.vcproj +343 -0
  339. package/thirdparty/pugixml/scripts/pugixml_vs2008.vcproj +339 -0
  340. package/thirdparty/pugixml/scripts/pugixml_vs2008_static.vcproj +339 -0
  341. package/thirdparty/pugixml/scripts/pugixml_vs2010.vcxproj +191 -0
  342. package/thirdparty/pugixml/scripts/pugixml_vs2010_static.vcxproj +191 -0
  343. package/thirdparty/pugixml/scripts/pugixml_vs2013.vcxproj +199 -0
  344. package/thirdparty/pugixml/scripts/pugixml_vs2013_static.vcxproj +199 -0
  345. package/thirdparty/pugixml/scripts/pugixml_vs2015.vcxproj +172 -0
  346. package/thirdparty/pugixml/scripts/pugixml_vs2015_static.vcxproj +176 -0
  347. package/thirdparty/pugixml/scripts/pugixml_vs2017.vcxproj +172 -0
  348. package/thirdparty/pugixml/scripts/pugixml_vs2017_static.vcxproj +176 -0
  349. package/thirdparty/pugixml/scripts/pugixml_vs2019.vcxproj +176 -0
  350. package/thirdparty/pugixml/scripts/pugixml_vs2019_static.vcxproj +180 -0
  351. package/thirdparty/pugixml/scripts/pugixml_vs2022.vcxproj +176 -0
  352. package/thirdparty/pugixml/scripts/pugixml_vs2022_static.vcxproj +180 -0
  353. package/thirdparty/pugixml/scripts/pugixml_vs2026.vcxproj +176 -0
  354. package/thirdparty/pugixml/scripts/pugixml_vs2026_static.vcxproj +180 -0
  355. package/thirdparty/pugixml/scripts/sbom.cdx.json +47 -0
  356. package/thirdparty/pugixml/src/pugiconfig.hpp +81 -0
  357. package/thirdparty/pugixml/src/pugixml.cpp +13776 -0
  358. package/thirdparty/pugixml/src/pugixml.hpp +1604 -0
  359. package/thirdparty/pugixml/tests/allocator.cpp +175 -0
  360. package/thirdparty/pugixml/tests/allocator.hpp +10 -0
  361. package/thirdparty/pugixml/tests/autotest-appveyor.ps1 +93 -0
  362. package/thirdparty/pugixml/tests/cmake-appveyor.ps1 +57 -0
  363. package/thirdparty/pugixml/tests/data/empty.xml +0 -0
  364. package/thirdparty/pugixml/tests/data/large.xml +1 -0
  365. package/thirdparty/pugixml/tests/data/latintest_latin1.xml +1 -0
  366. package/thirdparty/pugixml/tests/data/latintest_utf8.xml +1 -0
  367. package/thirdparty/pugixml/tests/data/multiline.xml +3 -0
  368. package/thirdparty/pugixml/tests/data/small.xml +1 -0
  369. package/thirdparty/pugixml/tests/data/truncation.xml +19 -0
  370. package/thirdparty/pugixml/tests/data/utftest_utf16_be.xml +0 -0
  371. package/thirdparty/pugixml/tests/data/utftest_utf16_be_bom.xml +0 -0
  372. package/thirdparty/pugixml/tests/data/utftest_utf16_be_clean.xml +0 -0
  373. package/thirdparty/pugixml/tests/data/utftest_utf16_be_nodecl.xml +0 -0
  374. package/thirdparty/pugixml/tests/data/utftest_utf16_le.xml +0 -0
  375. package/thirdparty/pugixml/tests/data/utftest_utf16_le_bom.xml +0 -0
  376. package/thirdparty/pugixml/tests/data/utftest_utf16_le_clean.xml +0 -0
  377. package/thirdparty/pugixml/tests/data/utftest_utf16_le_nodecl.xml +0 -0
  378. package/thirdparty/pugixml/tests/data/utftest_utf32_be.xml +0 -0
  379. package/thirdparty/pugixml/tests/data/utftest_utf32_be_bom.xml +0 -0
  380. package/thirdparty/pugixml/tests/data/utftest_utf32_be_clean.xml +0 -0
  381. package/thirdparty/pugixml/tests/data/utftest_utf32_be_nodecl.xml +0 -0
  382. package/thirdparty/pugixml/tests/data/utftest_utf32_le.xml +0 -0
  383. package/thirdparty/pugixml/tests/data/utftest_utf32_le_bom.xml +0 -0
  384. package/thirdparty/pugixml/tests/data/utftest_utf32_le_clean.xml +0 -0
  385. package/thirdparty/pugixml/tests/data/utftest_utf32_le_nodecl.xml +0 -0
  386. package/thirdparty/pugixml/tests/data/utftest_utf8.xml +87 -0
  387. package/thirdparty/pugixml/tests/data/utftest_utf8_bom.xml +87 -0
  388. package/thirdparty/pugixml/tests/data/utftest_utf8_clean.xml +84 -0
  389. package/thirdparty/pugixml/tests/data/utftest_utf8_nodecl.xml +86 -0
  390. package/thirdparty/pugixml/tests/data//321/202/320/265/321/201/321/202.xml +1 -0
  391. package/thirdparty/pugixml/tests/data_fuzz_parse/basic.xml +1 -0
  392. package/thirdparty/pugixml/tests/data_fuzz_parse/doctype.xml +1 -0
  393. package/thirdparty/pugixml/tests/data_fuzz_parse/refs.xml +1 -0
  394. package/thirdparty/pugixml/tests/data_fuzz_parse/types.xml +1 -0
  395. package/thirdparty/pugixml/tests/data_fuzz_parse/utf16.xml +0 -0
  396. package/thirdparty/pugixml/tests/data_fuzz_parse/utf32.xml +0 -0
  397. package/thirdparty/pugixml/tests/data_fuzz_xpath/basic.xpath +1 -0
  398. package/thirdparty/pugixml/tests/data_fuzz_xpath/functions.xpath +1 -0
  399. package/thirdparty/pugixml/tests/data_fuzz_xpath/math.xpath +1 -0
  400. package/thirdparty/pugixml/tests/data_fuzz_xpath/path.xpath +1 -0
  401. package/thirdparty/pugixml/tests/data_fuzz_xpath/predicate.xpath +1 -0
  402. package/thirdparty/pugixml/tests/fuzz_parse.cpp +14 -0
  403. package/thirdparty/pugixml/tests/fuzz_parse.dict +72 -0
  404. package/thirdparty/pugixml/tests/fuzz_setup.sh +11 -0
  405. package/thirdparty/pugixml/tests/fuzz_xpath.cpp +46 -0
  406. package/thirdparty/pugixml/tests/fuzz_xpath.dict +72 -0
  407. package/thirdparty/pugixml/tests/helpers.hpp +114 -0
  408. package/thirdparty/pugixml/tests/main.cpp +218 -0
  409. package/thirdparty/pugixml/tests/test.cpp +220 -0
  410. package/thirdparty/pugixml/tests/test.hpp +175 -0
  411. package/thirdparty/pugixml/tests/test_compact.cpp +150 -0
  412. package/thirdparty/pugixml/tests/test_deprecated.cpp +25 -0
  413. package/thirdparty/pugixml/tests/test_document.cpp +1910 -0
  414. package/thirdparty/pugixml/tests/test_dom_modify.cpp +2122 -0
  415. package/thirdparty/pugixml/tests/test_dom_text.cpp +601 -0
  416. package/thirdparty/pugixml/tests/test_dom_traverse.cpp +1481 -0
  417. package/thirdparty/pugixml/tests/test_header_guard.cpp +3 -0
  418. package/thirdparty/pugixml/tests/test_header_iosfwd_1.cpp +3 -0
  419. package/thirdparty/pugixml/tests/test_header_iosfwd_2.cpp +3 -0
  420. package/thirdparty/pugixml/tests/test_header_iostream_1.cpp +3 -0
  421. package/thirdparty/pugixml/tests/test_header_iostream_2.cpp +3 -0
  422. package/thirdparty/pugixml/tests/test_header_only_1.cpp +21 -0
  423. package/thirdparty/pugixml/tests/test_header_only_2.cpp +21 -0
  424. package/thirdparty/pugixml/tests/test_header_string_1.cpp +3 -0
  425. package/thirdparty/pugixml/tests/test_header_string_2.cpp +3 -0
  426. package/thirdparty/pugixml/tests/test_header_string_iostream.cpp +5 -0
  427. package/thirdparty/pugixml/tests/test_memory.cpp +303 -0
  428. package/thirdparty/pugixml/tests/test_parse.cpp +1463 -0
  429. package/thirdparty/pugixml/tests/test_parse_doctype.cpp +366 -0
  430. package/thirdparty/pugixml/tests/test_unicode.cpp +152 -0
  431. package/thirdparty/pugixml/tests/test_version.cpp +5 -0
  432. package/thirdparty/pugixml/tests/test_write.cpp +757 -0
  433. package/thirdparty/pugixml/tests/test_xpath.cpp +833 -0
  434. package/thirdparty/pugixml/tests/test_xpath_api.cpp +646 -0
  435. package/thirdparty/pugixml/tests/test_xpath_functions.cpp +844 -0
  436. package/thirdparty/pugixml/tests/test_xpath_operators.cpp +566 -0
  437. package/thirdparty/pugixml/tests/test_xpath_parse.cpp +428 -0
  438. package/thirdparty/pugixml/tests/test_xpath_paths.cpp +787 -0
  439. package/thirdparty/pugixml/tests/test_xpath_paths_abbrev_w3c.cpp +219 -0
  440. package/thirdparty/pugixml/tests/test_xpath_paths_w3c.cpp +312 -0
  441. package/thirdparty/pugixml/tests/test_xpath_variables.cpp +683 -0
  442. package/thirdparty/pugixml/tests/test_xpath_xalan_1.cpp +411 -0
  443. package/thirdparty/pugixml/tests/test_xpath_xalan_2.cpp +417 -0
  444. package/thirdparty/pugixml/tests/test_xpath_xalan_3.cpp +321 -0
  445. package/thirdparty/pugixml/tests/test_xpath_xalan_4.cpp +300 -0
  446. package/thirdparty/pugixml/tests/test_xpath_xalan_5.cpp +295 -0
  447. package/thirdparty/pugixml/tests/writer_string.cpp +79 -0
  448. package/thirdparty/pugixml/tests/writer_string.hpp +27 -0
  449. package/scripts/prepare-openxlsx.js +0 -126
package/NitroXlsx.podspec CHANGED
@@ -13,27 +13,33 @@ Pod::Spec.new do |s|
13
13
  s.platforms = { :ios => "15.1" }
14
14
  s.source = { :git => "https://github.com/zydbkqf/react-native-nitro-xlsx.git", :tag => "#{s.version}" }
15
15
 
16
+ # OpenXLSX, pugixml and miniz are vendored under thirdparty/ and shipped
17
+ # with the package, so no network access is needed during pod install.
16
18
  s.exclude_files = [
17
19
  "cpp/tests/**/*",
18
- "OpenXLSX/ThirdParty/miniz/tests/**/*",
19
- "OpenXLSX/ThirdParty/miniz/examples/**/*",
20
+ "thirdparty/miniz/tests/**/*",
21
+ "thirdparty/miniz/examples/**/*",
22
+ "thirdparty/pugixml/tests/**/*",
23
+ "thirdparty/OpenXLSX/Tests/**/*",
24
+ "thirdparty/OpenXLSX/Examples/**/*",
25
+ "thirdparty/OpenXLSX/Benchmarks/**/*",
20
26
  ]
21
27
 
22
28
  s.source_files = [
23
29
  "cpp/**/*.{h,hpp,cpp}",
24
30
  "ios/**/*.{h,hpp,mm}",
25
- "OpenXLSX/OpenXLSX/**/*.hpp",
26
- "OpenXLSX/OpenXLSX/**/*.cpp",
27
- "OpenXLSX/ThirdParty/pugixml/src/**/*.hpp",
28
- "OpenXLSX/ThirdParty/pugixml/src/**/*.cpp",
29
- "OpenXLSX/OpenXLSX/headers/detail/Zippy.hpp",
30
- "OpenXLSX/ThirdParty/miniz/**/*.h",
31
- "OpenXLSX/ThirdParty/miniz/**/*.c",
31
+ "thirdparty/OpenXLSX/OpenXLSX/**/*.hpp",
32
+ "thirdparty/OpenXLSX/OpenXLSX/**/*.cpp",
33
+ "thirdparty/pugixml/src/**/*.hpp",
34
+ "thirdparty/pugixml/src/**/*.cpp",
35
+ "thirdparty/OpenXLSX/OpenXLSX/headers/detail/Zippy.hpp",
36
+ "thirdparty/miniz/**/*.h",
37
+ "thirdparty/miniz/**/*.c",
32
38
  ]
33
39
 
34
40
  s.private_header_files = [
35
- "OpenXLSX/**/*.hpp",
36
- "OpenXLSX/**/*.h",
41
+ "thirdparty/OpenXLSX/**/*.hpp",
42
+ "thirdparty/OpenXLSX/**/*.h",
37
43
  ]
38
44
 
39
45
  s.dependency "React"
@@ -45,29 +51,22 @@ Pod::Spec.new do |s|
45
51
  "SWIFT_INSTALL_OBJC_HEADER" => "NO",
46
52
  "OTHER_CFLAGS" => "$(inherited) -fmodules",
47
53
  "OTHER_CPLUSPLUSFLAGS" => "$(inherited) -fmodules",
48
- "HEADER_SEARCH_PATHS" => "$(inherited) ${PODS_TARGET_SRCROOT}/OpenXLSX ${PODS_TARGET_SRCROOT}/OpenXLSX/OpenXLSX ${PODS_TARGET_SRCROOT}/OpenXLSX/OpenXLSX/headers ${PODS_TARGET_SRCROOT}/OpenXLSX/ThirdParty/pugixml/src ${PODS_TARGET_SRCROOT}/OpenXLSX/ThirdParty/miniz",
54
+ "HEADER_SEARCH_PATHS" => "$(inherited) ${PODS_TARGET_SRCROOT}/thirdparty/OpenXLSX ${PODS_TARGET_SRCROOT}/thirdparty/OpenXLSX/OpenXLSX ${PODS_TARGET_SRCROOT}/thirdparty/OpenXLSX/OpenXLSX/headers ${PODS_TARGET_SRCROOT}/thirdparty/pugixml/src ${PODS_TARGET_SRCROOT}/thirdparty/miniz",
49
55
  }
50
56
 
51
57
  s.user_target_xcconfig = {
52
58
  "OTHER_CFLAGS" => "$(inherited) -fmodules",
53
59
  "OTHER_CPLUSPLUSFLAGS" => "$(inherited) -fmodules",
54
- "HEADER_SEARCH_PATHS" => "$(inherited) ${PODS_TARGET_SRCROOT}/OpenXLSX ${PODS_TARGET_SRCROOT}/OpenXLSX/OpenXLSX ${PODS_TARGET_SRCROOT}/OpenXLSX/OpenXLSX/headers ${PODS_TARGET_SRCROOT}/OpenXLSX/ThirdParty/pugixml/src ${PODS_TARGET_SRCROOT}/OpenXLSX/ThirdParty/miniz",
60
+ "HEADER_SEARCH_PATHS" => "$(inherited) ${PODS_TARGET_SRCROOT}/thirdparty/OpenXLSX ${PODS_TARGET_SRCROOT}/thirdparty/OpenXLSX/OpenXLSX ${PODS_TARGET_SRCROOT}/thirdparty/OpenXLSX/OpenXLSX/headers ${PODS_TARGET_SRCROOT}/thirdparty/pugixml/src ${PODS_TARGET_SRCROOT}/thirdparty/miniz",
55
61
  }
56
62
 
57
- # Prepare OpenXLSX and its dependencies (pugixml, miniz) via a Node script
58
- # so the same logic can be reused from both CocoaPods and Android CMake.
59
- s.prepare_command = "node #{__dir__}/scripts/prepare-openxlsx.js"
60
-
61
- # Swift Package Manager declaration for React Native 0.87+.
62
- # This exposes NitroXlsx as a local Swift package; the heavy lifting for
63
- # OpenXLSX is still done by the prepare command above.
64
- if ENV['NITRO_XLSX_USE_SPM'] == '1' && defined?(SPM) && SPM.respond_to?(:dependency)
65
- SPM.dependency(s,
66
- url: File.join(__dir__, "."),
67
- requirement: { kind: 'upToNextMajorVersion', minimumVersion: s.version.to_s },
68
- products: ['NitroXlsx']
69
- )
70
- end
63
+ # Swift Package Manager note: this podspec intentionally declares nothing for
64
+ # SPM. React Native 0.88+ drives SwiftPM from `package.json` (`swiftpmConfig`)
65
+ # and `npx react-native spm`, and the manifest lives in Package.swift. That
66
+ # manifest is still a placeholder (it only compiles ios/XlsxCacheDir.mm) and
67
+ # CocoaPods remains the build path for this library until the C++ targets,
68
+ # the vendored thirdparty/ tree and the NitroModules dependency are wired
69
+ # into it.
71
70
 
72
71
  load 'nitrogen/generated/ios/NitroXlsx+autolinking.rb'
73
72
  add_nitrogen_files(s)
package/Package.swift CHANGED
@@ -1,20 +1,39 @@
1
1
  // swift-tools-version: 5.9
2
2
  import PackageDescription
3
3
 
4
- // NOTE: This Package.swift is a Swift Package Manager manifest stub for
5
- // React Native 0.87+ compatibility. The library is still primarily built
6
- // through CocoaPods (NitroXlsx.podspec), where OpenXLSX, pugixml and miniz
7
- // are cloned and compiled from source by scripts/prepare-openxlsx.js.
4
+ // NOTE: This manifest is a placeholder for the Swift Package Manager migration,
5
+ // not the build path used today. CocoaPods (NitroXlsx.podspec) still compiles
6
+ // the library, including the vendored OpenXLSX / pugixml / miniz tree under
7
+ // thirdparty/.
8
8
  //
9
- // The local package reference below lets RN 0.87's spm_dependency helper
10
- // register NitroXlsx in the Pods project when SwiftPM mode is enabled.
11
- // Full SPM-based compilation of the C++ sources is not yet supported —
12
- // ios/XlsxCacheDir.mm is listed so the target has a real source file.
9
+ // It is kept so that (a) the package is syntactically valid and `swift package
10
+ // describe` / `swift build` work, and (b) the eventual migration has a starting
11
+ // point. Today the target only compiles ios/XlsxCacheDir.mm — it exposes
12
+ // getCacheDir / setCacheDir but not the Nitro module itself.
13
+ //
14
+ // Migration target (React Native 0.88+ / nitro-modules 1.x): the package becomes
15
+ // one library product whose targets cover `cpp/`, `ios/XlsxCacheDir.mm` and the
16
+ // thirdparty/ sources, depending on `.product(name: "NitroModules",
17
+ // package: "NitroModules")`, with `swiftpmConfig` in package.json driving
18
+ // autolinking via `npx react-native spm`. The unrelated NITRO_XLSX_USE_SPM env
19
+ // switch that used to live in the podspec has been removed — it was never an
20
+ // upstream concept.
21
+ //
22
+ // Target settings worth knowing:
23
+ // - This is a C-family target, so SwiftPM insists on a public headers
24
+ // directory and defaults it to `include/`, which does not exist here.
25
+ // `publicHeadersPath: "."` points the generated umbrella header at the
26
+ // (header-less) source dir instead of failing to resolve the manifest.
27
+ // - cxxLanguageStandard must match the podspec's CLANG_CXX_LANGUAGE_STANDARD
28
+ // (c++20); SwiftPM defaults to gnu++14 and warns on the nested namespace
29
+ // definitions used by the sources.
13
30
 
14
31
  let package = Package(
15
32
  name: "NitroXlsx",
16
33
  platforms: [
17
- .iOS(.v15)
34
+ // Matches NitroXlsx.podspec (`:ios => "15.1"`). SwiftPM's .v15 only
35
+ // expresses 15.0, so the explicit version string is used instead.
36
+ .iOS("15.1")
18
37
  ],
19
38
  products: [
20
39
  .library(
@@ -27,9 +46,11 @@ let package = Package(
27
46
  name: "NitroXlsx",
28
47
  path: "ios",
29
48
  sources: ["XlsxCacheDir.mm"],
49
+ publicHeadersPath: ".",
30
50
  cxxSettings: [
31
51
  .headerSearchPath("../cpp")
32
52
  ]
33
53
  )
34
- ]
54
+ ],
55
+ cxxLanguageStandard: .cxx20
35
56
  )
package/README.md CHANGED
@@ -29,7 +29,7 @@ npm install react-native-nitro-xlsx
29
29
  yarn add react-native-nitro-xlsx
30
30
  ```
31
31
 
32
- > **Note**: Native dependencies (OpenXlsx) are downloaded from GitHub during the first build. Please make sure you have a stable network connection.
32
+ > **Note**: Native dependencies (OpenXLSX, pugixml and miniz) are vendored under `thirdparty/` and shipped with the package. The first build compiles them from source; no network access is required.
33
33
 
34
34
  ### iOS
35
35
 
@@ -197,7 +197,7 @@ const buffer = await workbook.getBuffer();
197
197
  - `createWorkbook(): XlsxWorkbook` - Create a new workbook. The native side supplies the platform cache directory automatically (`Context.getCacheDir()` on Android, `NSCachesDirectory` on iOS).
198
198
  - `openWorkbook(path: string): XlsxWorkbook` - Open workbook from file path
199
199
  - `openWorkbookFromBuffer(buffer: ArrayBuffer): XlsxWorkbook` - Open workbook from buffer
200
- - `fromJSON(data: Record<string, Array<Record<string, string | number | boolean | null>>>): XlsxWorkbook` - Create a workbook with one worksheet per key (native `AnyMap`s, no JSON round-trip)
200
+ - `fromJSON(data: Record<string, Array<Record<string, string | number | boolean | null>>>): XlsxWorkbook` - Create a workbook with one worksheet per key (native `AnyMap`s, no JSON round-trip). The default sheet is removed unless one of the keys is named after it
201
201
 
202
202
  ### XlsxWorkbook
203
203
 
@@ -211,7 +211,7 @@ const buffer = await workbook.getBuffer();
211
211
  - `clone(existingName: string, newName: string): XlsxWorksheet` - Copy a worksheet
212
212
  - `addCellFormat(): XlsxCellFormat` - Add a new cell format
213
213
  - `getBuffer(): Promise<ArrayBuffer>` - Generate and return the XLSX file as a buffer
214
- - `toJSON(): Record<string, Array<Record<string, string | number | boolean | null>>>` - Export every worksheet as a `Record` keyed by sheet name
214
+ - `toJSON(): Record<string, Array<Record<string, string | number | boolean | null>>>` - Export every worksheet as a `Record` keyed by sheet name. Worksheets without a single cell are skipped, so a fresh workbook exports as `{}`
215
215
 
216
216
  ### XlsxWorksheet
217
217
 
@@ -232,7 +232,7 @@ const buffer = await workbook.getBuffer();
232
232
  | `writeFormulaNum(row, col, formula, number, format?)` | Write a formula with number default |
233
233
  | `writeFormulaString(row, col, formula, string, format?)` | Write a formula with string default |
234
234
  | `writeFormulaBoolean(row, col, formula, boolean, format?)` | Write a formula with boolean default |
235
- | `writeArrayFormula(firstRow, firstCol, lastRow, lastCol, formula, format?)` | Write an array formula |
235
+ | `writeArrayFormula(firstRow, firstCol, lastRow, lastCol, formula, format?)` | Not supported by the underlying engine — always throws `UNSUPPORTED` |
236
236
 
237
237
  #### Date/URL
238
238
  | Method | Description |
@@ -409,7 +409,7 @@ The `XlsxCellFormat` interface is based on OpenXLSX's `XLCellFormat` class and p
409
409
  - `setNumFormatIndex(index)` - Set built-in format (use `NumFormat` constants)
410
410
 
411
411
  #### Colors/Pattern
412
- - `setBgColor(color)`, `setFgColor(color)`
412
+ - `setBgColor(color)`, `setFgColor(color)` - For solid fills Excel paints the foreground colour, so a colour set only via `setBgColor` is also written as the fill's foreground colour to make it visible
413
413
  - `setPattern(pattern)`
414
414
 
415
415
  #### Borders
@@ -436,9 +436,9 @@ The `XlsxCellFormat` interface is based on OpenXLSX's `XLCellFormat` class and p
436
436
 
437
437
  When reading cells, the following types are returned:
438
438
 
439
- - `empty` - Empty cell
440
439
  - `string` - Text string
441
- - `number` - Numeric value. Dates are stored as **Excel serial numbers in the 1900 date system** (days since `1900-01-01`, where `1900-01-01` = `1`, including the spurious `1900-02-29`), and are read back as `number`:
440
+ - `number` - Numeric value with no date/time number format applied
441
+ - `date` - Numeric value whose number format is a date/time code. This covers the built-in ids 14–22 and custom codes such as `yyyy-mm-dd`, `h:mm` or `yyyy-mm-dd h:mm:ss`. The stored value is still an **Excel serial number in the 1900 date system** (days since `1900-01-01`, where `1900-01-01` = `1`, including the spurious `1900-02-29`):
442
442
  ```ts
443
443
  // Excel serial (1900-based) → JS Date
444
444
  const date = new Date(Math.round((serial - 25569) * 86400000));
@@ -447,8 +447,11 @@ When reading cells, the following types are returned:
447
447
  ```
448
448
  - `boolean` - Boolean value
449
449
  - `error` - Error value
450
- - `formula` - Formula
451
- - `blank` - Blank cell
450
+ - `formula` - Cell holds a formula (checked before the value type, so a formula cell never reads as `number`/`string`)
451
+ - `blank` - Cell exists (e.g. it only carries a style) but has no value
452
+ - `empty` - No cell at these coordinates at all
453
+
454
+ `getCellType` returns `empty`/`blank` without creating the cell, so probing a cell never mutates the sheet.
452
455
 
453
456
  ## Constants
454
457
 
@@ -510,6 +513,15 @@ To regenerate the native specs after modifying the TypeScript spec files:
510
513
  npx nitrogen
511
514
  ```
512
515
 
516
+ ### Tests
517
+
518
+ ```sh
519
+ yarn test # JS/TS suite (Jest)
520
+ yarn test:cpp # configure + build cpp/tests into cpp/tests/build, then run gtest
521
+ ```
522
+
523
+ `yarn test:cpp` needs a local GoogleTest installation (`brew install googletest` on macOS); the CMake project looks under `/opt/homebrew`, `/usr/local` and `/usr` first and only falls back to downloading googletest when nothing is found. OpenXLSX, pugixml and miniz are vendored under `thirdparty/`, so the C++ build works offline.
524
+
513
525
  ## License
514
526
 
515
527
  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
@@ -4,33 +4,26 @@ project("NitroXlsx")
4
4
  set(CMAKE_CXX_STANDARD 20)
5
5
  set(CMAKE_CXX_STANDARD_REQUIRED ON)
6
6
 
7
- set(OPENXLSX_DIR ${CMAKE_SOURCE_DIR}/../OpenXLSX)
8
-
9
- # Prepare OpenXLSX and its dependencies (pugixml, miniz) using the same
10
- # Node script that CocoaPods' prepare_command runs on iOS.
11
- find_program(NODE_EXECUTABLE node REQUIRED)
12
- execute_process(
13
- COMMAND ${NODE_EXECUTABLE} ${CMAKE_SOURCE_DIR}/../scripts/prepare-openxlsx.js
14
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/..
15
- RESULT_VARIABLE PREPARE_RESULT
16
- )
17
- if(NOT PREPARE_RESULT EQUAL 0)
18
- message(FATAL_ERROR
19
- "Failed to prepare OpenXLSX dependencies.\n"
20
- "Please ensure Node.js is installed and run:\n"
21
- " node scripts/prepare-openxlsx.js"
22
- )
23
- endif()
24
-
25
- # Verify OpenXLSX is available
26
- if(NOT EXISTS ${OPENXLSX_DIR}/CMakeLists.txt)
27
- message(FATAL_ERROR
28
- "OpenXLSX not found at ${OPENXLSX_DIR}.\n"
29
- "Please manually clone OpenXLSX:\n"
30
- " cd ${CMAKE_SOURCE_DIR}/.. && git clone --depth 1 --branch v0.5.1 https://github.com/troldal/OpenXLSX.git OpenXLSX\n"
31
- "Then clean CMake cache and rebuild."
32
- )
33
- endif()
7
+ set(THIRDPARTY_DIR ${CMAKE_SOURCE_DIR}/../thirdparty)
8
+ set(OPENXLSX_DIR ${THIRDPARTY_DIR}/OpenXLSX)
9
+
10
+ # OpenXLSX, pugixml and miniz are vendored under thirdparty/ so the build
11
+ # never clones anything from GitHub.
12
+ foreach(required_dir OpenXLSX pugixml miniz)
13
+ if(NOT EXISTS ${THIRDPARTY_DIR}/${required_dir})
14
+ message(FATAL_ERROR
15
+ "Vendored dependency '${required_dir}' is missing at ${THIRDPARTY_DIR}/${required_dir}.\n"
16
+ "The thirdparty/ tree is part of the package - reinstall react-native-nitro-xlsx."
17
+ )
18
+ endif()
19
+ endforeach()
20
+
21
+ # Point OpenXLSX's FetchContent lookups at the vendored copies, so
22
+ # manage_dependency() populates them from disk instead of cloning GitHub.
23
+ set(FORCE_FETCH_ALL ON CACHE BOOL "" FORCE)
24
+ set(FETCHCONTENT_SOURCE_DIR_PUGIXML_FETCH ${THIRDPARTY_DIR}/pugixml CACHE PATH "" FORCE)
25
+ set(FETCHCONTENT_SOURCE_DIR_MINIZ_FETCH ${THIRDPARTY_DIR}/miniz CACHE PATH "" FORCE)
26
+ set(FETCHCONTENT_UPDATES_DISCONNECTED ON CACHE BOOL "" FORCE)
34
27
 
35
28
  set(OPENXLSX_BUILD_SAMPLES OFF CACHE BOOL "" FORCE)
36
29
  set(OPENXLSX_BUILD_TESTS OFF CACHE BOOL "" FORCE)
@@ -39,12 +39,36 @@ std::shared_ptr<HybridXlsxWorkbookSpec> HybridNitroXlsx::openWorkbookFromBuffer(
39
39
  std::shared_ptr<HybridXlsxWorkbookSpec> HybridNitroXlsx::fromJSON(const std::unordered_map<std::string, std::vector<std::shared_ptr<AnyMap>>>& data) {
40
40
  return withXlsxError(xlsx_error::INVALID_ARGUMENT, [&]() -> std::shared_ptr<HybridXlsxWorkbookSpec> {
41
41
  auto workbook = std::make_shared<HybridXlsxWorkbook>();
42
- if (data.empty()) return workbook;
42
+ // Always leave the workbook usable: create the underlying XLDocument even
43
+ // when there is no data, so getBuffer()/toJSON()/getWorksheetCount() work.
44
+ workbook->ensureOpen();
45
+
46
+ // Snapshot the sheet(s) OpenXLSX created by default (e.g. "Sheet1") so they
47
+ // can be removed once the key sheets exist (deleteSheet refuses to delete
48
+ // the last sheet, so key sheets must be added first).
49
+ std::vector<std::string> defaultNames;
50
+ {
51
+ double count = workbook->getWorksheetCount();
52
+ for (double i = 0; i < count; ++i) {
53
+ defaultNames.push_back(workbook->getWorksheet(i)->getName());
54
+ }
55
+ }
43
56
 
44
57
  for (const auto& [sheetName, rows] : data) {
45
58
  auto sheet = workbook->addWorksheet(sheetName);
46
59
  sheet->fromJSON(rows);
47
60
  }
61
+
62
+ // README promises one worksheet per key: drop the default sheet(s) unless a
63
+ // key claimed them. Skip when there is no data - a workbook must keep at
64
+ // least one sheet.
65
+ if (!data.empty()) {
66
+ for (const auto& name : defaultNames) {
67
+ if (data.count(name) == 0) {
68
+ workbook->deleteSheet(name);
69
+ }
70
+ }
71
+ }
48
72
  return workbook;
49
73
  });
50
74
  }
@@ -1,24 +1,7 @@
1
1
  #include "HybridXlsxCellFormat.hpp"
2
- #include <sstream>
3
- #include <iomanip>
4
- #include <cctype>
5
2
 
6
3
  namespace margelo::nitro::xlsx {
7
4
 
8
- static std::string doubleToHexColor(double color) {
9
- uint32_t c = static_cast<uint32_t>(color);
10
- // Excel uses ARGB format, prepend alpha channel (FF)
11
- uint32_t argb = c | 0xFF000000;
12
- std::stringstream ss;
13
- ss << std::hex << std::setfill('0') << std::setw(8) << argb;
14
- std::string result = ss.str();
15
- // Convert to uppercase (OpenXLSX expects uppercase hex)
16
- for (char& ch : result) {
17
- ch = std::toupper(ch);
18
- }
19
- return result;
20
- }
21
-
22
5
  HybridXlsxCellFormat::HybridXlsxCellFormat()
23
6
  : HybridObject("XlsxCellFormat"), HybridXlsxCellFormatSpec() {
24
7
  }
@@ -26,263 +9,180 @@ HybridXlsxCellFormat::HybridXlsxCellFormat()
26
9
  HybridXlsxCellFormat::~HybridXlsxCellFormat() {
27
10
  }
28
11
 
29
- OpenXLSX::XLStyleIndex HybridXlsxCellFormat::applyToDocument(OpenXLSX::XLStyles& styles) {
30
- if (_styleIndex.has_value()) {
31
- return *_styleIndex;
32
- }
33
-
34
- // Create cell format in document first to get a valid XML node.
35
- // OpenXLSX default-constructed style objects have empty XML nodes;
36
- // setters on empty nodes silently fail. We must create the node in
37
- // the document first, then modify the live node via operator[].
38
- OpenXLSX::XLCellFormat emptyCellFormat;
39
- OpenXLSX::XLStyleIndex cellFormatIndex = styles.cellFormats().create(emptyCellFormat);
40
- OpenXLSX::XLCellFormat cellFormat = styles.cellFormats()[cellFormatIndex];
41
-
42
- // Font
43
- if (!_fontName.empty() || _fontSize > 0 || _fontColor > 0 || _bold || _italic || _underline > 0 || _strikeout || _fontScript > 0) {
44
- OpenXLSX::XLFont emptyFont;
45
- OpenXLSX::XLStyleIndex fontIndex = styles.fonts().create(emptyFont);
46
- OpenXLSX::XLFont font = styles.fonts()[fontIndex];
47
- if (!_fontName.empty()) font.setFontName(_fontName);
48
- if (_fontSize > 0) font.setFontSize(static_cast<size_t>(_fontSize));
49
- if (_fontColor > 0) font.setFontColor(OpenXLSX::XLColor(doubleToHexColor(_fontColor)));
50
- if (_bold) font.setBold();
51
- if (_italic) font.setItalic();
52
- if (_underline > 0) font.setUnderline(static_cast<OpenXLSX::XLUnderlineStyle>(_underline));
53
- if (_strikeout) font.setStrikethrough();
54
- if (_fontScript > 0) font.setVertAlign(static_cast<OpenXLSX::XLVerticalAlignRunStyle>(_fontScript));
55
- cellFormat.setFontIndex(fontIndex);
56
- cellFormat.setApplyFont(true);
57
- }
58
-
59
- // Alignment
60
- if (_textWrap || _rotation != 0 || _indent > 0 || _align > 0 || _verticalAlign > 0 || _shrink) {
61
- if (_align > 0) cellFormat.alignment(true).setHorizontal(static_cast<OpenXLSX::XLAlignmentStyle>(_align));
62
- if (_verticalAlign > 0) cellFormat.alignment(true).setVertical(static_cast<OpenXLSX::XLAlignmentStyle>(_verticalAlign));
63
- if (_textWrap) cellFormat.alignment(true).setWrapText();
64
- if (_rotation != 0) cellFormat.alignment(true).setTextRotation(static_cast<uint16_t>(_rotation));
65
- if (_indent > 0) cellFormat.alignment(true).setIndent(static_cast<uint32_t>(_indent));
66
- if (_shrink) cellFormat.alignment(true).setShrinkToFit();
67
- cellFormat.setApplyAlignment(true);
68
- }
69
-
70
- // Number format
71
- if (!_numFormat.empty()) {
72
- OpenXLSX::XLNumberFormat emptyNumFormat;
73
- OpenXLSX::XLStyleIndex numFmtIndex = styles.numberFormats().create(emptyNumFormat);
74
- OpenXLSX::XLNumberFormat numFormat = styles.numberFormats()[numFmtIndex];
75
- numFormat.setFormatCode(_numFormat);
76
- // Assign a unique custom numFmtId (>= 164 for user-defined formats)
77
- static uint32_t nextCustomNumFmtId = 164;
78
- numFormat.setNumberFormatId(nextCustomNumFmtId++);
79
- cellFormat.setNumberFormatId(numFormat.numberFormatId());
80
- cellFormat.setApplyNumberFormat(true);
81
- }
82
-
83
- // Fill
84
- if (_bgColor > 0 || _fgColor > 0 || _pattern > 0) {
85
- OpenXLSX::XLFill emptyFill;
86
- OpenXLSX::XLStyleIndex fillIndex = styles.fills().create(emptyFill);
87
- OpenXLSX::XLFill fill = styles.fills()[fillIndex];
88
- fill.setPatternType(_pattern > 0
89
- ? static_cast<OpenXLSX::XLPatternType>(_pattern)
90
- : OpenXLSX::XLPatternType::XLPatternSolid);
91
- if (_bgColor > 0) fill.setBackgroundColor(OpenXLSX::XLColor(doubleToHexColor(_bgColor)));
92
- if (_fgColor > 0) fill.setColor(OpenXLSX::XLColor(doubleToHexColor(_fgColor)));
93
- cellFormat.setFillIndex(fillIndex);
94
- cellFormat.setApplyFill(true);
95
- }
96
-
97
- // Border
98
- if (_border > 0 || _bottom > 0 || _top > 0 || _left > 0 || _right > 0 || _diagonal > 0) {
99
- OpenXLSX::XLBorder emptyBorder;
100
- OpenXLSX::XLStyleIndex borderIndex = styles.borders().create(emptyBorder);
101
- OpenXLSX::XLBorder border = styles.borders()[borderIndex];
102
- // TODO: Implement border styling with OpenXLSX v0.5.1 API
103
- cellFormat.setBorderIndex(borderIndex);
104
- cellFormat.setApplyBorder(true);
105
- }
106
-
107
- // Protection
108
- if (_locked) {
109
- cellFormat.setLocked(true);
110
- cellFormat.setApplyProtection(true);
111
- }
112
-
113
- _styleIndex = cellFormatIndex;
114
- return cellFormatIndex;
12
+ OpenXLSX::XLStyleIndex HybridXlsxCellFormat::applyToDocument(OpenXLSX::XLStyles& styles, uint64_t documentGeneration) {
13
+ return _fmt.applyToDocument(styles, documentGeneration);
115
14
  }
116
15
 
117
16
  void HybridXlsxCellFormat::applyToCell(OpenXLSX::XLCell& cell, OpenXLSX::XLStyleIndex styleIndex) {
118
- cell.setCellFormat(styleIndex);
17
+ _fmt.applyToCell(cell, styleIndex);
119
18
  }
120
19
 
121
20
  void HybridXlsxCellFormat::setFontName(const std::string& name) {
122
- _fontName = name;
21
+ _fmt.setFontName(name);
123
22
  }
124
23
 
125
24
  void HybridXlsxCellFormat::setFontSize(double size) {
126
- _fontSize = size;
25
+ _fmt.setFontSize(size);
127
26
  }
128
27
 
129
28
  void HybridXlsxCellFormat::setFontColor(double color) {
130
- _fontColor = color;
29
+ _fmt.setFontColor(color);
131
30
  }
132
31
 
133
32
  void HybridXlsxCellFormat::setFontScript(double style) {
134
- _fontScript = style;
33
+ _fmt.setFontScript(style);
135
34
  }
136
35
 
137
36
  void HybridXlsxCellFormat::setBold() {
138
- _bold = true;
37
+ _fmt.setBold();
139
38
  }
140
39
 
141
40
  void HybridXlsxCellFormat::setItalic() {
142
- _italic = true;
41
+ _fmt.setItalic();
143
42
  }
144
43
 
145
44
  void HybridXlsxCellFormat::setUnderline(std::optional<double> style) {
146
- _underline = style.has_value() ? *style : 1;
45
+ _fmt.setUnderline(style);
147
46
  }
148
47
 
149
48
  void HybridXlsxCellFormat::setStrikeout() {
150
- _strikeout = true;
49
+ _fmt.setStrikeout();
151
50
  }
152
51
 
153
52
  void HybridXlsxCellFormat::setAlign(double align) {
154
- _align = align;
53
+ _fmt.setAlign(align);
155
54
  }
156
55
 
157
56
  void HybridXlsxCellFormat::setVerticalAlign(double align) {
158
- _verticalAlign = align;
57
+ _fmt.setVerticalAlign(align);
159
58
  }
160
59
 
161
60
  void HybridXlsxCellFormat::setTextWrap() {
162
- _textWrap = true;
61
+ _fmt.setTextWrap();
163
62
  }
164
63
 
165
64
  void HybridXlsxCellFormat::setRotation(double angle) {
166
- _rotation = angle;
65
+ _fmt.setRotation(angle);
167
66
  }
168
67
 
169
68
  void HybridXlsxCellFormat::setIndent(double level) {
170
- _indent = level;
69
+ _fmt.setIndent(level);
171
70
  }
172
71
 
173
72
  void HybridXlsxCellFormat::setShrink() {
174
- _shrink = true;
73
+ _fmt.setShrink();
175
74
  }
176
75
 
177
76
  void HybridXlsxCellFormat::setNumFormat(const std::string& format) {
178
- _numFormat = format;
77
+ _fmt.setNumFormat(format);
179
78
  }
180
79
 
181
80
  void HybridXlsxCellFormat::setNumFormatIndex(double index) {
182
- _numFormatIndex = index;
81
+ _fmt.setNumFormatIndex(index);
183
82
  }
184
83
 
185
84
  void HybridXlsxCellFormat::setBgColor(double color) {
186
- _bgColor = color;
85
+ _fmt.setBgColor(color);
187
86
  }
188
87
 
189
88
  void HybridXlsxCellFormat::setFgColor(double color) {
190
- _fgColor = color;
89
+ _fmt.setFgColor(color);
191
90
  }
192
91
 
193
92
  void HybridXlsxCellFormat::setPattern(double pattern) {
194
- _pattern = pattern;
93
+ _fmt.setPattern(pattern);
195
94
  }
196
95
 
197
96
  void HybridXlsxCellFormat::setBorder(double style) {
198
- _border = style;
97
+ _fmt.setBorder(style);
199
98
  }
200
99
 
201
100
  void HybridXlsxCellFormat::setBorderColor(double color) {
202
- _borderColor = color;
101
+ _fmt.setBorderColor(color);
203
102
  }
204
103
 
205
104
  void HybridXlsxCellFormat::setBottom(double style) {
206
- _bottom = style;
105
+ _fmt.setBottom(style);
207
106
  }
208
107
 
209
108
  void HybridXlsxCellFormat::setTop(double style) {
210
- _top = style;
109
+ _fmt.setTop(style);
211
110
  }
212
111
 
213
112
  void HybridXlsxCellFormat::setLeft(double style) {
214
- _left = style;
113
+ _fmt.setLeft(style);
215
114
  }
216
115
 
217
116
  void HybridXlsxCellFormat::setRight(double style) {
218
- _right = style;
117
+ _fmt.setRight(style);
219
118
  }
220
119
 
221
120
  void HybridXlsxCellFormat::setBottomColor(double color) {
222
- _bottomColor = color;
121
+ _fmt.setBottomColor(color);
223
122
  }
224
123
 
225
124
  void HybridXlsxCellFormat::setTopColor(double color) {
226
- _topColor = color;
125
+ _fmt.setTopColor(color);
227
126
  }
228
127
 
229
128
  void HybridXlsxCellFormat::setLeftColor(double color) {
230
- _leftColor = color;
129
+ _fmt.setLeftColor(color);
231
130
  }
232
131
 
233
132
  void HybridXlsxCellFormat::setRightColor(double color) {
234
- _rightColor = color;
133
+ _fmt.setRightColor(color);
235
134
  }
236
135
 
237
136
  void HybridXlsxCellFormat::setDiagonal(double style) {
238
- _diagonal = style;
137
+ _fmt.setDiagonal(style);
239
138
  }
240
139
 
241
140
  void HybridXlsxCellFormat::setDiagonalColor(double color) {
242
- _diagonalColor = color;
141
+ _fmt.setDiagonalColor(color);
243
142
  }
244
143
 
245
144
  void HybridXlsxCellFormat::setLocked() {
246
- _locked = true;
145
+ _fmt.setLocked();
247
146
  }
248
147
 
249
148
  void HybridXlsxCellFormat::setUnlocked() {
250
- _locked = false;
149
+ _fmt.setUnlocked();
251
150
  }
252
151
 
253
152
  void HybridXlsxCellFormat::setHyperlink() {
254
- _hyperlink = true;
153
+ _fmt.setHyperlink();
255
154
  }
256
155
 
257
156
  void HybridXlsxCellFormat::setFontOnly() {
157
+ _fmt.setFontOnly();
258
158
  }
259
159
 
260
160
  std::string HybridXlsxCellFormat::getFontName() {
261
- return _fontName;
161
+ return _fmt.getFontName();
262
162
  }
263
163
 
264
164
  double HybridXlsxCellFormat::getFontSize() {
265
- return _fontSize;
165
+ return _fmt.getFontSize();
266
166
  }
267
167
 
268
168
  double HybridXlsxCellFormat::getFontColor() {
269
- return _fontColor;
169
+ return _fmt.getFontColor();
270
170
  }
271
171
 
272
172
  bool HybridXlsxCellFormat::getIsBold() {
273
- return _bold;
173
+ return _fmt.getIsBold();
274
174
  }
275
175
 
276
176
  bool HybridXlsxCellFormat::getIsItalic() {
277
- return _italic;
177
+ return _fmt.getIsItalic();
278
178
  }
279
179
 
280
180
  std::string HybridXlsxCellFormat::getNumFormat() {
281
- return _numFormat;
181
+ return _fmt.getNumFormat();
282
182
  }
283
183
 
284
184
  double HybridXlsxCellFormat::getBgColor() {
285
- return _bgColor;
185
+ return _fmt.getBgColor();
286
186
  }
287
187
 
288
- }
188
+ }