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.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +1 -1
- data/CHANGELOG.md +3 -1
- data/Rakefile +4 -1
- data/fast_excel.gemspec +1 -1
- data/lib/fast_excel/binding/workbook.rb +9 -0
- data/lib/fast_excel/binding/worksheet.rb +2 -2
- data/lib/fast_excel/binding.rb +16 -13
- data/libxlsxwriter/.cirrus.yml +9 -0
- data/libxlsxwriter/.github/workflows/cmake_actions.yml +10 -6
- data/libxlsxwriter/.github/workflows/code_style.yml +2 -0
- data/libxlsxwriter/.github/workflows/make_32_actions.yml +43 -0
- data/libxlsxwriter/.github/workflows/windows_build.yml +7 -6
- data/libxlsxwriter/.github/workflows/zig_build.yml +1 -3
- data/libxlsxwriter/.gitignore +9 -7
- data/libxlsxwriter/.indent.pro +6 -0
- data/libxlsxwriter/CMakeLists.txt +377 -238
- data/libxlsxwriter/Changes.txt +189 -0
- data/libxlsxwriter/LICENSE.txt +1 -1
- data/libxlsxwriter/Makefile +36 -4
- data/libxlsxwriter/Readme.md +1 -1
- data/libxlsxwriter/build.zig +181 -92
- data/libxlsxwriter/build.zig.zon +15 -4
- data/libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h +4 -0
- data/libxlsxwriter/include/xlsxwriter/app.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/chart.h +134 -1
- data/libxlsxwriter/include/xlsxwriter/chartsheet.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/comment.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/common.h +12 -8
- data/libxlsxwriter/include/xlsxwriter/content_types.h +3 -1
- data/libxlsxwriter/include/xlsxwriter/core.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/custom.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/drawing.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/format.h +34 -3
- data/libxlsxwriter/include/xlsxwriter/hash_table.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/metadata.h +5 -1
- data/libxlsxwriter/include/xlsxwriter/packager.h +6 -1
- data/libxlsxwriter/include/xlsxwriter/relationships.h +3 -1
- data/libxlsxwriter/include/xlsxwriter/rich_value.h +51 -0
- data/libxlsxwriter/include/xlsxwriter/rich_value_rel.h +50 -0
- data/libxlsxwriter/include/xlsxwriter/rich_value_structure.h +53 -0
- data/libxlsxwriter/include/xlsxwriter/rich_value_types.h +49 -0
- data/libxlsxwriter/include/xlsxwriter/shared_strings.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/styles.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/table.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/theme.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/third_party/ioapi.h +4 -4
- data/libxlsxwriter/include/xlsxwriter/third_party/zip.h +3 -3
- data/libxlsxwriter/include/xlsxwriter/utility.h +58 -7
- data/libxlsxwriter/include/xlsxwriter/vml.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/workbook.h +59 -2
- data/libxlsxwriter/include/xlsxwriter/worksheet.h +159 -13
- data/libxlsxwriter/include/xlsxwriter/xmlwriter.h +11 -10
- data/libxlsxwriter/include/xlsxwriter.h +5 -4
- data/libxlsxwriter/libxlsxwriter.podspec +6 -6
- data/libxlsxwriter/src/Makefile +2 -1
- data/libxlsxwriter/src/app.c +2 -1
- data/libxlsxwriter/src/chart.c +360 -63
- data/libxlsxwriter/src/chartsheet.c +2 -1
- data/libxlsxwriter/src/comment.c +2 -1
- data/libxlsxwriter/src/content_types.c +22 -1
- data/libxlsxwriter/src/core.c +2 -1
- data/libxlsxwriter/src/custom.c +2 -1
- data/libxlsxwriter/src/drawing.c +7 -3
- data/libxlsxwriter/src/format.c +21 -1
- data/libxlsxwriter/src/hash_table.c +2 -1
- data/libxlsxwriter/src/metadata.c +176 -20
- data/libxlsxwriter/src/packager.c +306 -6
- data/libxlsxwriter/src/relationships.c +25 -1
- data/libxlsxwriter/src/rich_value.c +191 -0
- data/libxlsxwriter/src/rich_value_rel.c +142 -0
- data/libxlsxwriter/src/rich_value_structure.c +162 -0
- data/libxlsxwriter/src/rich_value_types.c +199 -0
- data/libxlsxwriter/src/shared_strings.c +2 -1
- data/libxlsxwriter/src/styles.c +31 -7
- data/libxlsxwriter/src/table.c +2 -1
- data/libxlsxwriter/src/theme.c +2 -1
- data/libxlsxwriter/src/utility.c +136 -46
- data/libxlsxwriter/src/vml.c +2 -1
- data/libxlsxwriter/src/workbook.c +191 -10
- data/libxlsxwriter/src/worksheet.c +514 -34
- data/libxlsxwriter/src/xmlwriter.c +17 -22
- data/libxlsxwriter/third_party/minizip/Makefile.orig +1 -1
- data/libxlsxwriter/third_party/minizip/configure.ac +1 -1
- data/libxlsxwriter/third_party/minizip/ioapi.h +6 -6
- data/libxlsxwriter/third_party/minizip/miniunz.c +16 -2
- data/libxlsxwriter/third_party/minizip/unzip.c +4 -4
- data/libxlsxwriter/third_party/minizip/unzip.h +1 -1
- data/libxlsxwriter/third_party/minizip/zip.c +5 -5
- data/libxlsxwriter/third_party/minizip/zip.h +3 -3
- data/libxlsxwriter/version.txt +1 -1
- data/test/validations_test.rb +3 -3
- data/test/worksheet_test.rb +10 -2
- metadata +11 -4
- data/libxlsxwriter/cmake/FindMINIZIP.cmake +0 -121
- data/libxlsxwriter/cmake/FindPackage.cmake +0 -183
- data/libxlsxwriter/cmake/i686-toolchain.cmake +0 -7
data/libxlsxwriter/Changes.txt
CHANGED
|
@@ -1,6 +1,195 @@
|
|
|
1
1
|
/**
|
|
2
2
|
@page changes Changes
|
|
3
3
|
|
|
4
|
+
## Information for Packagers
|
|
5
|
+
|
|
6
|
+
- This is serial version 1.2.4. This is not a semver version number.
|
|
7
|
+
|
|
8
|
+
- This is shared object library version `libxlsxwriter.so.11`. This should be
|
|
9
|
+
updated automatically via `make` and `cmake` as part of the build process.
|
|
10
|
+
This version contains ABI changes since the previous release.
|
|
11
|
+
|
|
12
|
+
- Please report any downstream patches back upstream to help improve the overall
|
|
13
|
+
build process.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## 1.2.4 Jan 6 2026
|
|
17
|
+
|
|
18
|
+
- Added validation of `lxw_datetime` fields to ensure that they are
|
|
19
|
+
within Excel's allowable ranges.
|
|
20
|
+
|
|
21
|
+
Issue [#491][gh_491].
|
|
22
|
+
|
|
23
|
+
[gh_491]: https://github.com/jmcnamara/libxlsxwriter/issues/491
|
|
24
|
+
|
|
25
|
+
- Fixed an issue where setting the x or y scales to math.h
|
|
26
|
+
`INFINITY` resulted in an infinite loop.
|
|
27
|
+
|
|
28
|
+
Issue [#490][gh_490].
|
|
29
|
+
|
|
30
|
+
[gh_490]: https://github.com/jmcnamara/libxlsxwriter/issues/490
|
|
31
|
+
|
|
32
|
+
- Added validation checks for various enum values.
|
|
33
|
+
|
|
34
|
+
Issue [#487][gh_487].
|
|
35
|
+
|
|
36
|
+
[gh_487]: https://github.com/jmcnamara/libxlsxwriter/issues/487
|
|
37
|
+
|
|
38
|
+
- Fixed handling of invalid chart types.
|
|
39
|
+
|
|
40
|
+
Issue [#486][gh_486].
|
|
41
|
+
|
|
42
|
+
[gh_486]: https://github.com/jmcnamara/libxlsxwriter/issues/486
|
|
43
|
+
|
|
44
|
+
- zig: Updated to Zig 0.15.0. Also, Zig build refactored for compatibility with
|
|
45
|
+
v0.15.1 - 0.16.0-dev.
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
## 1.2.3 Jun 30 2025
|
|
49
|
+
|
|
50
|
+
- Added support for handling dates in the Excel 1904 epoch. See
|
|
51
|
+
`workbook_use_1904_epoch()`.
|
|
52
|
+
|
|
53
|
+
Feature request [#483][gh_483].
|
|
54
|
+
|
|
55
|
+
[gh_483]: https://github.com/jmcnamara/libxlsxwriter/issues/483
|
|
56
|
+
|
|
57
|
+
- Fixed undefined behavior bugs in string indexing.
|
|
58
|
+
|
|
59
|
+
Issue [#482][gh_482].
|
|
60
|
+
|
|
61
|
+
[gh_482]: https://github.com/jmcnamara/libxlsxwriter/issues/482
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
## 1.2.2 March 29 2025
|
|
65
|
+
|
|
66
|
+
- Added support for manually positioning chart elements such as the
|
|
67
|
+
chart axis labels, the chart legend, the chart plot area and the chart title.
|
|
68
|
+
See @ref chart_layout for more details.
|
|
69
|
+
|
|
70
|
+
Feature request [#477][gh_477].
|
|
71
|
+
|
|
72
|
+
[gh_477]: https://github.com/jmcnamara/libxlsxwriter/issues/477
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
## 1.2.1 February 26 2025
|
|
76
|
+
|
|
77
|
+
- Added the `workbook_set_size()` function to set the size of the window when
|
|
78
|
+
the file is opened. This is generally only useful on macOS since Microsoft
|
|
79
|
+
Windows uses the window size from the last time an Excel file was
|
|
80
|
+
opened/saved. Feature request [#472][gh_472].
|
|
81
|
+
|
|
82
|
+
[gh_472]: https://github.com/jmcnamara/libxlsxwriter/issues/472
|
|
83
|
+
|
|
84
|
+
- Improved the cmake build support for using the `minizip` library.
|
|
85
|
+
Pull request [#471][gh_471].
|
|
86
|
+
|
|
87
|
+
[gh_471]: https://github.com/jmcnamara/libxlsxwriter/issues/471
|
|
88
|
+
|
|
89
|
+
- Fix buffer overflow in Table formula expansion.
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
## 1.2.0 January 11 2025
|
|
93
|
+
|
|
94
|
+
- Added `format_set_font_family()` and `format_set_font_charset()` format
|
|
95
|
+
functions to support Middle Eastern and Asian fonts.
|
|
96
|
+
Feature request [#468][gh_468].
|
|
97
|
+
|
|
98
|
+
[gh_468]: https://github.com/jmcnamara/libxlsxwriter/issues/468
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
## 1.1.9 October 24 2024
|
|
102
|
+
|
|
103
|
+
- Fix minor pointer/value error in `lxw_name_to_row()` and `lxw_name_to_col()`
|
|
104
|
+
utility functions. Issue [#459][gh_459].
|
|
105
|
+
|
|
106
|
+
[gh_459]: https://github.com/jmcnamara/libxlsxwriter/issues/459
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
## 1.1.8 July 31 2024
|
|
110
|
+
|
|
111
|
+
- Added support for embedding images into worksheets with
|
|
112
|
+
`worksheet_embed_image()`.
|
|
113
|
+
|
|
114
|
+
This can be useful if you are building up a spreadsheet of products with a
|
|
115
|
+
column of images for each product. Embedded images move with the cell so they
|
|
116
|
+
can be used in worksheet tables or data ranges that will be sorted or
|
|
117
|
+
filtered.
|
|
118
|
+
|
|
119
|
+
This functionality is the equivalent of Excel's menu option to insert an image
|
|
120
|
+
using the option to "Place in Cell" which is available in Excel 365 versions
|
|
121
|
+
from 2023 onwards.
|
|
122
|
+
|
|
123
|
+
- Fixed various issues:
|
|
124
|
+
|
|
125
|
+
- [Failure on 32bit architectures #441](https://github.com/jmcnamara/libxlsxwriter/issues/441)
|
|
126
|
+
- [workbook_validate_sheet_name buffer-overflow #442](https://github.com/jmcnamara/libxlsxwriter/issues/442)
|
|
127
|
+
- [workbook_add_worksheet does not return a reasonable worksheet #443](https://github.com/jmcnamara/libxlsxwriter/issues/443)
|
|
128
|
+
- [workbook_define_name stack-buffer-underflow #444](https://github.com/jmcnamara/libxlsxwriter/issues/444)
|
|
129
|
+
- [workbook_close stack-buffer-overflow #445](https://github.com/jmcnamara/libxlsxwriter/issues/445)
|
|
130
|
+
- [_store_array_formula heap-buffer-overflow #446](https://github.com/jmcnamara/libxlsxwriter/issues/446)
|
|
131
|
+
- [worksheet_set_selection stack-buffer-overflow #447](https://github.com/jmcnamara/libxlsxwriter/issues/447)
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
- Note this version is tagged as `v1.1.8` instead of `RELEASE_1.1.8` for better
|
|
135
|
+
interoperability with Xcode.
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
## 1.1.7 April 5 2024
|
|
139
|
+
|
|
140
|
+
- Bump `.so` version to 6. This was missed in the previous release.
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
## 1.1.6 April 4 2024
|
|
144
|
+
|
|
145
|
+
- Updated vendored version of minizip to v 1.3.0 to include upstream fixes.
|
|
146
|
+
|
|
147
|
+
Feature request [#419][gh_419].
|
|
148
|
+
|
|
149
|
+
[gh_419]: https://github.com/jmcnamara/libxlsxwriter/issues/419
|
|
150
|
+
|
|
151
|
+
- Added `quote_prefix` format property.
|
|
152
|
+
|
|
153
|
+
Feature request [#385][gh_385].
|
|
154
|
+
|
|
155
|
+
[gh_385]: https://github.com/jmcnamara/libxlsxwriter/issues/385
|
|
156
|
+
|
|
157
|
+
- Added support for signed VBA projects.
|
|
158
|
+
</p>
|
|
159
|
+
|
|
160
|
+
- Fix worksheet password hashing algorithm for long passwords. Replace/fix
|
|
161
|
+
the worksheet protection password algorithm so that is works correctly
|
|
162
|
+
for strings over 24 chars.
|
|
163
|
+
</p>
|
|
164
|
+
|
|
165
|
+
- Fix cmake minizip version check.
|
|
166
|
+
|
|
167
|
+
Feature request [#405][gh_405].
|
|
168
|
+
|
|
169
|
+
[gh_405]: https://github.com/jmcnamara/libxlsxwriter/issues/405
|
|
170
|
+
|
|
171
|
+
- Fix for buffer overflow with utf-8 strings in data validation.
|
|
172
|
+
|
|
173
|
+
Feature request [#394][gh_394].
|
|
174
|
+
|
|
175
|
+
[gh_394]: https://github.com/jmcnamara/libxlsxwriter/issues/394
|
|
176
|
+
|
|
177
|
+
- Fix for range in text type conditional format.
|
|
178
|
+
|
|
179
|
+
Feature request [#395][gh_395].
|
|
180
|
+
|
|
181
|
+
[gh_395]: https://github.com/jmcnamara/libxlsxwriter/issues/395
|
|
182
|
+
|
|
183
|
+
- Fix 32bit multiply with overflow issue for images.
|
|
184
|
+
|
|
185
|
+
Fix multiply with overflow issue when image locations in the worksheet
|
|
186
|
+
were greater than the u32 max value.
|
|
187
|
+
|
|
188
|
+
- Added Swift package manager support.
|
|
189
|
+
</p>
|
|
190
|
+
|
|
191
|
+
- Added support for building Zig library.
|
|
192
|
+
</p>
|
|
4
193
|
|
|
5
194
|
## 1.1.5 December 30 2022
|
|
6
195
|
|
data/libxlsxwriter/LICENSE.txt
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Libxlsxwriter is released under a FreeBSD license:
|
|
6
6
|
|
|
7
|
-
Copyright 2014-
|
|
7
|
+
Copyright 2014-2026, John McNamara <jmcnamara@cpan.org>
|
|
8
8
|
All rights reserved.
|
|
9
9
|
|
|
10
10
|
Redistribution and use in source and binary forms, with or without
|
data/libxlsxwriter/Makefile
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
#
|
|
3
3
|
# Makefile for libxlsxwriter library.
|
|
4
4
|
#
|
|
5
|
-
#
|
|
5
|
+
# SPDX-License-Identifier: BSD-2-Clause
|
|
6
|
+
# Copyright 2014-2026, John McNamara, jmcnamara@cpan.org.
|
|
6
7
|
#
|
|
7
8
|
|
|
8
9
|
# Keep the output quiet by default.
|
|
@@ -20,6 +21,14 @@ PYTESTFILES ?= test
|
|
|
20
21
|
VERSION = $(shell sed -n -e 's/.*LXW_VERSION \"\(.*\)\"/\1/p' include/xlsxwriter.h)
|
|
21
22
|
SOVERSION = $(shell sed -n -e 's/.*LXW_SOVERSION \"\(.*\)\"/\1/p' include/xlsxwriter.h)
|
|
22
23
|
|
|
24
|
+
ENABLED_OPTIONS = zlib
|
|
25
|
+
ifdef USE_SYSTEM_MINIZIP
|
|
26
|
+
ENABLED_OPTIONS += minizip
|
|
27
|
+
endif
|
|
28
|
+
ifdef USE_OPENSSL_MD5
|
|
29
|
+
ENABLED_OPTIONS += libcrypto
|
|
30
|
+
endif
|
|
31
|
+
|
|
23
32
|
.PHONY: docs tags examples third_party
|
|
24
33
|
|
|
25
34
|
# Build libxlsxwriter.
|
|
@@ -98,11 +107,21 @@ test_const : all
|
|
|
98
107
|
$(Q)! $(MAKE) -C test/functional/src CFLAGS=-Wwrite-strings 2>&1 | grep -A 1 "note:"
|
|
99
108
|
|
|
100
109
|
|
|
101
|
-
# Run the functional tests.
|
|
110
|
+
# Run the functional tests. Can be run as a subset:
|
|
111
|
+
# make test_functional PYTESTFILES="test_image" SRCTESTFILES="test_image*.c"
|
|
112
|
+
#
|
|
102
113
|
test_functional : all
|
|
103
114
|
$(Q)$(MAKE) -C test/functional/src
|
|
104
115
|
$(Q)$(PYTEST) test/functional -v -k $(PYTESTFILES)
|
|
105
116
|
|
|
117
|
+
# Similar to `test_functional` above but builds all the test cases into a single
|
|
118
|
+
# executable to avoid a slow link step per test. Can be run as a subset:
|
|
119
|
+
# make fast_functional PYTESTFILES="test_image" SRCTESTFILES="test_image*.c"
|
|
120
|
+
#
|
|
121
|
+
fast_functional : all
|
|
122
|
+
$(Q)$(MAKE) -C test/functional/src functional_all
|
|
123
|
+
$(Q)LXW_FUNCTIONAL_EXE=./functional_all $(PYTEST) test/functional -v -k $(PYTESTFILES)
|
|
124
|
+
|
|
106
125
|
# Run all tests.
|
|
107
126
|
test_unit : all
|
|
108
127
|
$(Q)$(MAKE) -C src test_lib
|
|
@@ -117,7 +136,10 @@ test_cpp : all
|
|
|
117
136
|
test_cmake :
|
|
118
137
|
ifneq ($(findstring m32,$(CFLAGS)),m32)
|
|
119
138
|
$(Q)$(MAKE) -C src clean
|
|
120
|
-
$(Q)
|
|
139
|
+
$(Q)mkdir -p build
|
|
140
|
+
$(Q)cd build
|
|
141
|
+
$(Q)cmake .. -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON
|
|
142
|
+
$(Q)make clean; make; cp libxlsxwriter.a ../src/
|
|
121
143
|
$(Q)cmake/xlsxwriter_unit
|
|
122
144
|
$(Q)$(MAKE) -C test/functional/src
|
|
123
145
|
$(Q)$(PYTEST) test/functional -v -k $(PYTESTFILES)
|
|
@@ -139,6 +161,7 @@ test_compile :
|
|
|
139
161
|
# Indent the source files with the .indent.pro settings.
|
|
140
162
|
indent:
|
|
141
163
|
$(Q)gindent src/*.c include/*.h include/xlsxwriter/*.h
|
|
164
|
+
$(Q)gersemi --no-warn-about-unknown-commands -i CMakeLists.txt
|
|
142
165
|
|
|
143
166
|
tags:
|
|
144
167
|
$(Q)rm -f TAGS
|
|
@@ -163,7 +186,11 @@ install: all
|
|
|
163
186
|
$(Q)mkdir -p $(DESTDIR)$(PREFIX)/lib
|
|
164
187
|
$(Q)cp -R lib/* $(DESTDIR)$(PREFIX)/lib
|
|
165
188
|
$(Q)mkdir -p $(DESTDIR)$(PREFIX)/lib/pkgconfig
|
|
166
|
-
$(Q)sed
|
|
189
|
+
$(Q)sed -e 's|@PREFIX@|$(PREFIX)|g' \
|
|
190
|
+
-e 's|@VERSION@|$(VERSION)|g' \
|
|
191
|
+
-e 's|@ENABLED_OPTIONS@|$(ENABLED_OPTIONS)|g' \
|
|
192
|
+
dev/release/pkg-config.txt \
|
|
193
|
+
> $(DESTDIR)$(PREFIX)/lib/pkgconfig/xlsxwriter.pc
|
|
167
194
|
|
|
168
195
|
# Simpler uninstall.
|
|
169
196
|
uninstall:
|
|
@@ -184,6 +211,11 @@ coverity: clean_src third_party
|
|
|
184
211
|
$(Q)$(MAKE) -C src clean
|
|
185
212
|
$(Q)rm -f lib/*
|
|
186
213
|
|
|
214
|
+
# Run address sanitiser.
|
|
215
|
+
address_sanitiser: third_party
|
|
216
|
+
$(Q)$(MAKE) -C src libxlsxwriter.a CFLAGS="-fsanitize=address -O1 -fsanitize-coverage=trace-pc-guard -fno-omit-frame-pointer -g"
|
|
217
|
+
$(Q)$(MAKE) -C examples CFLAGS="-fsanitize=address -O1 -fsanitize-coverage=trace-pc-guard -fno-omit-frame-pointer -g"
|
|
218
|
+
|
|
187
219
|
# Run gcov coverage analysis.
|
|
188
220
|
gcov: third_party
|
|
189
221
|
$(Q)$(MAKE) -C src clean
|
data/libxlsxwriter/Readme.md
CHANGED