fast_excel 0.6.0 → 0.6.1

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 (97) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +1 -1
  3. data/CHANGELOG.md +3 -1
  4. data/Rakefile +4 -1
  5. data/fast_excel.gemspec +1 -1
  6. data/lib/fast_excel/binding/workbook.rb +9 -0
  7. data/lib/fast_excel/binding/worksheet.rb +2 -2
  8. data/lib/fast_excel/binding.rb +16 -13
  9. data/libxlsxwriter/.cirrus.yml +9 -0
  10. data/libxlsxwriter/.github/workflows/cmake_actions.yml +10 -6
  11. data/libxlsxwriter/.github/workflows/code_style.yml +2 -0
  12. data/libxlsxwriter/.github/workflows/make_32_actions.yml +43 -0
  13. data/libxlsxwriter/.github/workflows/windows_build.yml +7 -6
  14. data/libxlsxwriter/.github/workflows/zig_build.yml +1 -3
  15. data/libxlsxwriter/.gitignore +9 -7
  16. data/libxlsxwriter/.indent.pro +6 -0
  17. data/libxlsxwriter/CMakeLists.txt +377 -238
  18. data/libxlsxwriter/Changes.txt +189 -0
  19. data/libxlsxwriter/LICENSE.txt +1 -1
  20. data/libxlsxwriter/Makefile +36 -4
  21. data/libxlsxwriter/Readme.md +1 -1
  22. data/libxlsxwriter/build.zig +181 -92
  23. data/libxlsxwriter/build.zig.zon +15 -4
  24. data/libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h +4 -0
  25. data/libxlsxwriter/include/xlsxwriter/app.h +2 -1
  26. data/libxlsxwriter/include/xlsxwriter/chart.h +134 -1
  27. data/libxlsxwriter/include/xlsxwriter/chartsheet.h +2 -1
  28. data/libxlsxwriter/include/xlsxwriter/comment.h +2 -1
  29. data/libxlsxwriter/include/xlsxwriter/common.h +12 -8
  30. data/libxlsxwriter/include/xlsxwriter/content_types.h +3 -1
  31. data/libxlsxwriter/include/xlsxwriter/core.h +2 -1
  32. data/libxlsxwriter/include/xlsxwriter/custom.h +2 -1
  33. data/libxlsxwriter/include/xlsxwriter/drawing.h +2 -1
  34. data/libxlsxwriter/include/xlsxwriter/format.h +34 -3
  35. data/libxlsxwriter/include/xlsxwriter/hash_table.h +2 -1
  36. data/libxlsxwriter/include/xlsxwriter/metadata.h +5 -1
  37. data/libxlsxwriter/include/xlsxwriter/packager.h +6 -1
  38. data/libxlsxwriter/include/xlsxwriter/relationships.h +3 -1
  39. data/libxlsxwriter/include/xlsxwriter/rich_value.h +51 -0
  40. data/libxlsxwriter/include/xlsxwriter/rich_value_rel.h +50 -0
  41. data/libxlsxwriter/include/xlsxwriter/rich_value_structure.h +53 -0
  42. data/libxlsxwriter/include/xlsxwriter/rich_value_types.h +49 -0
  43. data/libxlsxwriter/include/xlsxwriter/shared_strings.h +2 -1
  44. data/libxlsxwriter/include/xlsxwriter/styles.h +2 -1
  45. data/libxlsxwriter/include/xlsxwriter/table.h +2 -1
  46. data/libxlsxwriter/include/xlsxwriter/theme.h +2 -1
  47. data/libxlsxwriter/include/xlsxwriter/third_party/ioapi.h +4 -4
  48. data/libxlsxwriter/include/xlsxwriter/third_party/zip.h +3 -3
  49. data/libxlsxwriter/include/xlsxwriter/utility.h +58 -7
  50. data/libxlsxwriter/include/xlsxwriter/vml.h +2 -1
  51. data/libxlsxwriter/include/xlsxwriter/workbook.h +59 -2
  52. data/libxlsxwriter/include/xlsxwriter/worksheet.h +159 -13
  53. data/libxlsxwriter/include/xlsxwriter/xmlwriter.h +11 -10
  54. data/libxlsxwriter/include/xlsxwriter.h +5 -4
  55. data/libxlsxwriter/libxlsxwriter.podspec +6 -6
  56. data/libxlsxwriter/src/Makefile +2 -1
  57. data/libxlsxwriter/src/app.c +2 -1
  58. data/libxlsxwriter/src/chart.c +360 -63
  59. data/libxlsxwriter/src/chartsheet.c +2 -1
  60. data/libxlsxwriter/src/comment.c +2 -1
  61. data/libxlsxwriter/src/content_types.c +22 -1
  62. data/libxlsxwriter/src/core.c +2 -1
  63. data/libxlsxwriter/src/custom.c +2 -1
  64. data/libxlsxwriter/src/drawing.c +7 -3
  65. data/libxlsxwriter/src/format.c +21 -1
  66. data/libxlsxwriter/src/hash_table.c +2 -1
  67. data/libxlsxwriter/src/metadata.c +176 -20
  68. data/libxlsxwriter/src/packager.c +306 -6
  69. data/libxlsxwriter/src/relationships.c +25 -1
  70. data/libxlsxwriter/src/rich_value.c +191 -0
  71. data/libxlsxwriter/src/rich_value_rel.c +142 -0
  72. data/libxlsxwriter/src/rich_value_structure.c +162 -0
  73. data/libxlsxwriter/src/rich_value_types.c +199 -0
  74. data/libxlsxwriter/src/shared_strings.c +2 -1
  75. data/libxlsxwriter/src/styles.c +31 -7
  76. data/libxlsxwriter/src/table.c +2 -1
  77. data/libxlsxwriter/src/theme.c +2 -1
  78. data/libxlsxwriter/src/utility.c +136 -46
  79. data/libxlsxwriter/src/vml.c +2 -1
  80. data/libxlsxwriter/src/workbook.c +191 -10
  81. data/libxlsxwriter/src/worksheet.c +514 -34
  82. data/libxlsxwriter/src/xmlwriter.c +17 -22
  83. data/libxlsxwriter/third_party/minizip/Makefile.orig +1 -1
  84. data/libxlsxwriter/third_party/minizip/configure.ac +1 -1
  85. data/libxlsxwriter/third_party/minizip/ioapi.h +6 -6
  86. data/libxlsxwriter/third_party/minizip/miniunz.c +16 -2
  87. data/libxlsxwriter/third_party/minizip/unzip.c +4 -4
  88. data/libxlsxwriter/third_party/minizip/unzip.h +1 -1
  89. data/libxlsxwriter/third_party/minizip/zip.c +5 -5
  90. data/libxlsxwriter/third_party/minizip/zip.h +3 -3
  91. data/libxlsxwriter/version.txt +1 -1
  92. data/test/validations_test.rb +3 -3
  93. data/test/worksheet_test.rb +10 -2
  94. metadata +11 -4
  95. data/libxlsxwriter/cmake/FindMINIZIP.cmake +0 -121
  96. data/libxlsxwriter/cmake/FindPackage.cmake +0 -183
  97. data/libxlsxwriter/cmake/i686-toolchain.cmake +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3735cb9c55d31df98975baa51a0547f67ca33fb1519b7bbd986af3ea9d78658
4
- data.tar.gz: 9e79dcc1be146f889e86f373d87959754b1ffbfb4a617cbf363db04652fbfc45
3
+ metadata.gz: 4230ede32a57ecc66b00a96a722d61e52b37c4657ee64a2cbb42222f596113c3
4
+ data.tar.gz: 04d992357aa76f454775d62a2a14e7641e96908b6c56008fd53952dfbc8ca7d4
5
5
  SHA512:
6
- metadata.gz: b91c2d94389477e2aa48ecf5354783c5ad4d003f20646e1ee9265a2d79ff88c66811465755b9dd62f32691d3caab4f4fb04c708722da4cc41b70b7de29f2167b
7
- data.tar.gz: f84e5a0db01a38502b1325ec019725ada1ab87700d79ecfded77570d495da12b533387e963439bde75b93b9168cf6e899e16091bf2bf4c024d621ca2ede250c9
6
+ metadata.gz: '08f05e65b527700c7b919f5ebd1c63cf6c65229a127ad4d15912021a2c6a5e4b9af09ed183efbbbfcd071d957bc828a72c522da251a81e5014f9b5fbd9666d77'
7
+ data.tar.gz: f45565c465f7f0107079737743a2b822308326fef5a4a5a1dc3ff254547f0d1cf1d11b88ea4099d01f36a442a3a20cb796318e4114be6cf9d3356b726ea06f1d
@@ -8,7 +8,7 @@ jobs:
8
8
  fail-fast: false
9
9
  matrix:
10
10
  os: [ubuntu-latest, macos-latest, windows-latest]
11
- ruby: [2.7, 3.1, 3.3, 3.4]
11
+ ruby: ['2.7', '3.1', '3.3', '3.4', '4.0']
12
12
 
13
13
  runs-on: ${{ matrix.os }}
14
14
 
data/CHANGELOG.md CHANGED
@@ -1,8 +1,10 @@
1
- #### Version 0.6.0 - 19 oct 2026
1
+ #### Version 0.6.1 - 19 oct 2026
2
2
 
3
3
  * Fix segfault in `workbook#get_worksheet_by_name` when sheet does not exist (Thanks to @amberstarlight)
4
4
  * Add support for `worksheet_write_comment_opt` with styled comments and hash options (Thanks to @ololoshka12345)
5
5
  * Respect current environment's temp directory and add `tmpdir:` option to `FastExcel.open` (Thanks to @spyderdfx)
6
+ * Sync latest libxlsxwriter (v1.2.4)
7
+ * Support Ruby 4.0 and add to CI test matrix
6
8
  * Add tests for `FastExcel.lxw_time`, `color_to_hex`, and pretty print improvements
7
9
 
8
10
  #### Version 0.5.0 - 02 jan 2024
data/Rakefile CHANGED
@@ -19,9 +19,12 @@ end
19
19
 
20
20
  desc "Run all examples"
21
21
  task :examples do
22
+ require 'fileutils'
23
+ FileUtils.rm_f(Dir.glob('*.xlsx'))
22
24
  Dir.glob('examples/**/*.rb').each do |file|
23
- require './' + file.sub(/\.rb$/, '')
25
+ load './' + file
24
26
  end
27
+ FileUtils.rm_f(Dir.glob('*.xlsx'))
25
28
  end
26
29
 
27
30
  desc "Compile libxlsxwriter shared library"
data/fast_excel.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "fast_excel"
3
- s.version = "0.6.0"
3
+ s.version = "0.6.1"
4
4
  s.author = ["Pavel Evstigneev"]
5
5
  s.email = ["pavel.evst@gmail.com"]
6
6
  s.homepage = "https://github.com/paxa/fast_excel"
@@ -215,6 +215,7 @@ module Libxlsxwriter
215
215
  :worksheet_names, WorksheetNames.ptr,
216
216
  :chartsheet_names, :pointer,
217
217
  :image_md5s, :pointer,
218
+ :embedded_image_md5s, :pointer,
218
219
  :header_image_md5s, :pointer,
219
220
  :background_md5s, :pointer,
220
221
  :charts, Charts.ptr,
@@ -237,6 +238,9 @@ module Libxlsxwriter
237
238
  :num_format_count, :uint16,
238
239
  :drawing_count, :uint16,
239
240
  :comment_count, :uint16,
241
+ :num_embedded_images, :uint32,
242
+ :window_width, :uint16,
243
+ :window_height, :uint16,
240
244
 
241
245
  :font_count, :uint16,
242
246
  :border_count, :uint16,
@@ -252,6 +256,9 @@ module Libxlsxwriter
252
256
  :has_vml, :uchar,
253
257
  :has_comments, :uchar,
254
258
  :has_metadata, :uchar,
259
+ :has_embedded_images, :uchar,
260
+ :has_dynamic_functions, :uchar,
261
+ :has_embedded_image_descriptions, :uchar,
255
262
 
256
263
  :used_xf_formats, HashTable.ptr,
257
264
  :used_dxf_formats, HashTable.ptr,
@@ -260,6 +267,8 @@ module Libxlsxwriter
260
267
  :vba_project_signature, :string,
261
268
  :vba_codename, :string,
262
269
 
270
+ :use_1904_epoch, :uchar,
271
+
263
272
  :default_url_format, :pointer
264
273
  end
265
274
 
@@ -709,11 +709,11 @@ module Libxlsxwriter
709
709
  :comments, TableRows.ptr,
710
710
  :array, :pointer,
711
711
  :merged_ranges, MergedRanges.ptr,
712
- #:selections, Selections.ptr,
712
+ :selections, :pointer,
713
713
  :data_validations, :pointer, # TODO add real definition for lxw_data_validations
714
714
  :conditional_formats, :pointer,
715
715
  :image_props, :pointer,
716
- :image_data, ImageData.ptr,
716
+ :embedded_image_props, :pointer,
717
717
  :chart_data, ChartData.ptr,
718
718
  :drawing_rel_ids, :pointer,
719
719
  :vml_drawing_rel_ids, :pointer,
@@ -330,19 +330,22 @@ module Libxlsxwriter
330
330
  :error_feature_not_supported, 11,
331
331
  :error_null_parameter_ignored, 12,
332
332
  :error_parameter_validation, 13,
333
- :error_sheetname_length_exceeded, 14,
334
- :error_invalid_sheetname_character, 15,
335
- :error_sheetname_start_end_apostrophe, 16,
336
- :error_sheetname_already_used, 17,
337
- :error_32_string_length_exceeded, 18,
338
- :error_128_string_length_exceeded, 19,
339
- :error_255_string_length_exceeded, 20,
340
- :error_max_string_length_exceeded, 21,
341
- :error_shared_string_index_not_found, 22,
342
- :error_worksheet_index_out_of_range, 23,
343
- :error_worksheet_max_number_urls_exceeded, 24,
344
- :error_image_dimensions, 25,
345
- :max_errno, 26
333
+ :error_parameter_is_empty, 14,
334
+ :error_datetime_validation, 15,
335
+ :error_sheetname_length_exceeded, 16,
336
+ :error_invalid_sheetname_character, 17,
337
+ :error_sheetname_start_end_apostrophe, 18,
338
+ :error_sheetname_already_used, 19,
339
+ :error_32_string_length_exceeded, 20,
340
+ :error_128_string_length_exceeded, 21,
341
+ :error_255_string_length_exceeded, 22,
342
+ :error_max_string_length_exceeded, 23,
343
+ :error_shared_string_index_not_found, 24,
344
+ :error_worksheet_index_out_of_range, 25,
345
+ :error_worksheet_max_url_length_exceeded, 26,
346
+ :error_worksheet_max_number_urls_exceeded, 27,
347
+ :error_image_dimensions, 28,
348
+ :max_errno, 29
346
349
  ]
347
350
 
348
351
  # = Fields:
@@ -0,0 +1,9 @@
1
+ FreeBSD_task:
2
+ freebsd_instance:
3
+ image_family: freebsd-14-0
4
+ setup_script:
5
+ pkg install -y gmake devel/py-pytest
6
+ build_script:
7
+ gmake
8
+ test_script:
9
+ gmake test
@@ -36,13 +36,17 @@ jobs:
36
36
  sudo apt-get -y install libssl-dev
37
37
 
38
38
  - name: Configure CMake
39
- working-directory: ${{ github.workspace }}/cmake
40
- run: cmake .. -DBUILD_TESTS=ON ${{ matrix.cmake_flags }} -DCMAKE_BUILD_TYPE=Release
39
+ run: |
40
+ mkdir build
41
+ cd build
42
+ cmake .. -DBUILD_TESTS=ON ${{ matrix.cmake_flags }} -DCMAKE_BUILD_TYPE=Release
41
43
 
42
44
  - name: Build
43
- working-directory: ${{ github.workspace }}/cmake
44
- run: cmake --build . --config Release --parallel
45
+ run: |
46
+ cd build
47
+ cmake --build . --config Release --parallel
45
48
 
46
49
  - name: Test
47
- working-directory: ${{ github.workspace }}/cmake
48
- run: ctest -C Release -V
50
+ run: |
51
+ cd build
52
+ ctest -C Release -V
@@ -16,6 +16,8 @@ jobs:
16
16
  run: |
17
17
  sudo apt-get -y install indent
18
18
  sudo ln -s /usr/bin/indent /usr/bin/gindent
19
+ python -m pip install --upgrade pip
20
+ pip install gersemi
19
21
 
20
22
  - name: Make indent
21
23
  run: |
@@ -0,0 +1,43 @@
1
+ name: Test Make 32bit build
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ name:
8
+ Make
9
+ strategy:
10
+ fail-fast: false
11
+ matrix:
12
+ cc: [gcc, clang]
13
+ make_flags: ["CFLAGS=-m32",
14
+ "CFLAGS=-m32 USE_STANDARD_TMPFILE=1",
15
+ "CFLAGS=-m32 USE_DTOA_LIBRARY=1",
16
+ "CFLAGS=-m32 USE_NO_MD5=1",
17
+ "CFLAGS=-m32 USE_MEM_FILE=1"]
18
+ runs-on: ubuntu-latest
19
+ env:
20
+ CC: ${{ matrix.cc }}
21
+ CXX: ${{ matrix.cc }}
22
+ CFLAGS: '-Werror'
23
+
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+
27
+ - name: Install dependencies
28
+ run: |
29
+ python -m pip install --upgrade pip
30
+ pip install pytest
31
+ sudo dpkg --add-architecture i386
32
+ sudo apt update
33
+ sudo apt-get -y install gcc-multilib
34
+ sudo apt-get -y install zlib1g-dev:i386
35
+
36
+ - name: make
37
+ run: ${{ matrix.make_flags }} make V=1
38
+
39
+ - name: test functional
40
+ run: ${{ matrix.make_flags }} make test_functional V=1 -j
41
+
42
+ - name: test examples
43
+ run: ${{ matrix.make_flags }} make examples V=1
@@ -11,8 +11,8 @@ jobs:
11
11
  matrix:
12
12
  cmake_flags: ["-DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON",
13
13
  "-DUSE_DTOA_LIBRARY=ON -DBUILD_TESTS=ON",
14
- #"-DUSE_SYSTEM_MINIZIP=ON -DBUILD_TESTS=ON",
15
- #"-DUSE_SYSTEM_MINIZIP=ON -DUSE_OPENSSL_MD5=ON -DBUILD_TESTS=ON",
14
+ "-DUSE_SYSTEM_MINIZIP=ON -DBUILD_TESTS=ON",
15
+ "-DUSE_SYSTEM_MINIZIP=ON -DUSE_OPENSSL_MD5=ON -DBUILD_TESTS=ON",
16
16
  "-DUSE_OPENSSL_MD5=ON -DBUILD_TESTS=ON",
17
17
  ]
18
18
 
@@ -33,7 +33,8 @@ jobs:
33
33
  working-directory: ${{env.GITHUB_WORKSPACE}}
34
34
  shell: cmd
35
35
  run: |
36
- cd cmake
36
+ mkdir build
37
+ cd build
37
38
  call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
38
39
  cmake .. -DCMAKE_BUILD_TYPE=Release ${{ matrix.cmake_flags }} -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -A x64
39
40
 
@@ -41,7 +42,7 @@ jobs:
41
42
  working-directory: ${{env.GITHUB_WORKSPACE}}
42
43
  shell: cmd
43
44
  run: |
44
- cd cmake
45
+ cd build
45
46
  call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
46
47
  cmake --build . --config Release
47
48
 
@@ -49,6 +50,6 @@ jobs:
49
50
  working-directory: ${{env.GITHUB_WORKSPACE}}
50
51
  shell: cmd
51
52
  run: |
52
- cd cmake
53
- copy test\functional\src\Release\*.exe test\functional\src
53
+ cd build
54
+ copy test\functional\src\Release\*.* test\functional\src
54
55
  pytest -v test/functional
@@ -14,9 +14,7 @@ jobs:
14
14
  with:
15
15
  submodules: recursive
16
16
  fetch-depth: 0
17
- - uses: goto-bus-stop/setup-zig@v2
18
- with:
19
- version: 0.11.0
17
+ - uses: mlugg/setup-zig@v2
20
18
 
21
19
  - name: Build Summary
22
20
  run: zig build -DBUILD_TESTS -DBUILD_EXAMPLES -DUSE_SYSTEM_MINIZIP --summary all -freference-trace
@@ -1,5 +1,6 @@
1
1
  *.a
2
2
  *.o
3
+ *.fo
3
4
  *.so
4
5
  *.so.*
5
6
  *.to
@@ -9,10 +10,13 @@
9
10
  *.dll
10
11
  *.gcno
11
12
  *.gcda
13
+ *.dSYM/
12
14
  test_*
13
15
  !test_*.c
14
16
  !test_*.cpp
15
17
  !test_*.py
18
+ test/functional/src/functional_all
19
+ test/functional/src/functional_main.c
16
20
  *.tar.gz
17
21
  *~
18
22
  TAGS
@@ -54,12 +58,10 @@ third_party/zlib-1.2.8/minigzip
54
58
  third_party/zlib-1.2.8/minigzipsh
55
59
  third_party/zlib-1.2.8/zlib.pc
56
60
 
57
- cmake
58
- !cmake/FindMINIZIP.cmake
59
- !cmake/FindPackage.cmake
60
- !cmake/i686-toolchain.cmake
61
-
62
61
  .vscode
63
62
 
64
- zig-cache/
65
- zig-out/
63
+ *zig-cache/
64
+ zig-out/
65
+ zig-pkg/
66
+
67
+ .swiftpm/
@@ -41,6 +41,7 @@
41
41
  -T SLIST_ENTRY
42
42
  -T STAILQ_ENTRY
43
43
  -T TAILQ_ENTRY
44
+ -T FILE
44
45
 
45
46
  /* libxlsxwriter typedefs. */
46
47
  -T lxw_app
@@ -69,6 +70,7 @@
69
70
  -T lxw_chart_gridline
70
71
  -T lxw_chart_label_position
71
72
  -T lxw_chart_label_separator
73
+ -T lxw_chart_layout
72
74
  -T lxw_chart_legend
73
75
  -T lxw_chart_legend_position
74
76
  -T lxw_chart_line
@@ -132,6 +134,10 @@
132
134
  -T lxw_repeat_cols
133
135
  -T lxw_repeat_rows
134
136
  -T lxw_rich_string_tuple
137
+ -T lxw_rich_value
138
+ -T lxw_rich_value_rel
139
+ -T lxw_rich_value_structure
140
+ -T lxw_rich_value_types
135
141
  -T lxw_row
136
142
  -T lxw_row_col_options
137
143
  -T lxw_row_t