fast_excel 0.2.6 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.dockerignore +2 -0
- data/.gitignore +3 -0
- data/.travis.yml +18 -6
- data/CHANGELOG.md +14 -1
- data/Dockerfile.test +16 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +21 -21
- data/Makefile +13 -2
- data/README.md +148 -38
- data/Rakefile +2 -0
- data/examples/example.rb +3 -3
- data/examples/example_filters.rb +36 -0
- data/examples/example_formula.rb +1 -3
- data/examples/example_hyperlink.rb +20 -0
- data/fast_excel.gemspec +1 -1
- data/lib/fast_excel.rb +36 -12
- data/lib/fast_excel/binding.rb +31 -21
- data/lib/fast_excel/binding/chart.rb +20 -1
- data/lib/fast_excel/binding/workbook.rb +10 -2
- data/lib/fast_excel/binding/worksheet.rb +44 -27
- data/libxlsxwriter/.gitignore +1 -0
- data/libxlsxwriter/.indent.pro +5 -0
- data/libxlsxwriter/CMakeLists.txt +1 -11
- data/libxlsxwriter/CONTRIBUTING.md +1 -1
- data/libxlsxwriter/Changes.txt +84 -0
- data/libxlsxwriter/LICENSE.txt +1 -1
- data/libxlsxwriter/Makefile +7 -5
- data/libxlsxwriter/Readme.md +1 -1
- data/libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h +1 -0
- data/libxlsxwriter/include/xlsxwriter.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/app.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/chart.h +56 -6
- data/libxlsxwriter/include/xlsxwriter/chartsheet.h +544 -0
- data/libxlsxwriter/include/xlsxwriter/common.h +27 -6
- data/libxlsxwriter/include/xlsxwriter/content_types.h +5 -2
- data/libxlsxwriter/include/xlsxwriter/core.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/custom.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/drawing.h +3 -2
- data/libxlsxwriter/include/xlsxwriter/format.h +3 -3
- data/libxlsxwriter/include/xlsxwriter/hash_table.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/packager.h +13 -8
- data/libxlsxwriter/include/xlsxwriter/relationships.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/shared_strings.h +5 -3
- data/libxlsxwriter/include/xlsxwriter/styles.h +9 -4
- data/libxlsxwriter/include/xlsxwriter/theme.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/utility.h +26 -2
- data/libxlsxwriter/include/xlsxwriter/workbook.h +232 -55
- data/libxlsxwriter/include/xlsxwriter/worksheet.h +264 -53
- data/libxlsxwriter/include/xlsxwriter/xmlwriter.h +3 -1
- data/libxlsxwriter/libxlsxwriter.podspec +1 -1
- data/libxlsxwriter/src/Makefile +3 -3
- data/libxlsxwriter/src/app.c +2 -2
- data/libxlsxwriter/src/chart.c +41 -5
- data/libxlsxwriter/src/chartsheet.c +508 -0
- data/libxlsxwriter/src/content_types.c +12 -4
- data/libxlsxwriter/src/core.c +2 -2
- data/libxlsxwriter/src/custom.c +2 -2
- data/libxlsxwriter/src/drawing.c +114 -17
- data/libxlsxwriter/src/format.c +3 -3
- data/libxlsxwriter/src/hash_table.c +1 -1
- data/libxlsxwriter/src/packager.c +369 -65
- data/libxlsxwriter/src/relationships.c +2 -2
- data/libxlsxwriter/src/shared_strings.c +18 -4
- data/libxlsxwriter/src/styles.c +56 -9
- data/libxlsxwriter/src/theme.c +2 -2
- data/libxlsxwriter/src/utility.c +53 -6
- data/libxlsxwriter/src/workbook.c +372 -56
- data/libxlsxwriter/src/worksheet.c +425 -76
- data/libxlsxwriter/src/xmlwriter.c +17 -8
- data/libxlsxwriter/third_party/minizip/ioapi.c +10 -0
- data/libxlsxwriter/third_party/minizip/zip.c +2 -0
- data/libxlsxwriter/third_party/tmpfileplus/tmpfileplus.c +2 -2
- data/libxlsxwriter/version.txt +1 -1
- data/test/tmpfile_test.rb +1 -0
- data/test/validations_test.rb +26 -6
- data/test/worksheet_test.rb +43 -0
- metadata +9 -6
- data/libxlsxwriter/.drone.yml +0 -27
- data/libxlsxwriter/appveyor.yml +0 -65
- data/libxlsxwriter/cmake/FindZLIB.cmake +0 -123
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af06f03372f15efb18eaf09669f7822ee81b67a5d4c6be7a55c3b8eb2609fd82
|
4
|
+
data.tar.gz: af892b143b010078e56380d38c76216ff19cb524f3e73c5206d18131546f216c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 979827252546904e71283dcf5996636fad7d04963ea1d07f6adf916484ac94a39e9b5a6f7d479529cb42971f53dc2dbadf0c08d1d57caf3eac7a91747308b6f2
|
7
|
+
data.tar.gz: 6a64e0cfa1894134759a2a1784c78c2641ff6aec2b81c48e9afb81fcc335d24ff7a0022f3ef252bb2ba0824fc8afe5220159829bee5bc32556687ed170009bbd
|
data/.dockerignore
ADDED
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -12,21 +12,33 @@ matrix:
|
|
12
12
|
- os: osx
|
13
13
|
rvm: 2.3.8
|
14
14
|
- os: linux
|
15
|
-
rvm: 2.4.
|
15
|
+
rvm: 2.4.6
|
16
16
|
- os: osx
|
17
|
-
rvm: 2.4.
|
17
|
+
rvm: 2.4.6
|
18
18
|
- os: linux
|
19
|
-
rvm: 2.5.
|
19
|
+
rvm: 2.5.5
|
20
20
|
- os: osx
|
21
|
-
rvm: 2.5.
|
21
|
+
rvm: 2.5.5
|
22
22
|
- os: linux
|
23
|
-
rvm: 2.6.
|
23
|
+
rvm: 2.6.3
|
24
|
+
env: BUILD_DOCKER=true
|
25
|
+
services:
|
26
|
+
- docker
|
24
27
|
- os: osx
|
25
|
-
rvm: 2.6.
|
28
|
+
rvm: 2.6.3
|
29
|
+
osx_image: xcode10.2
|
30
|
+
before_script:
|
31
|
+
- ls -lah /Applications
|
32
|
+
- sudo xcode-select -s /Applications/Xcode-10.2.1.app/Contents/Developer
|
33
|
+
- clang --version
|
26
34
|
fast_finish: true
|
27
35
|
|
36
|
+
before_install:
|
37
|
+
- gem install bundler -v 2.0.2
|
38
|
+
|
28
39
|
script:
|
29
40
|
- bundle install
|
30
41
|
- make
|
31
42
|
- bundle exec rake test
|
32
43
|
- bundle exec rake examples
|
44
|
+
- if [ -n "$BUILD_DOCKER" ]; then docker build . -f Dockerfile.test --build-arg TRAVIS_COMMIT --build-arg TRAVIS_BRANCH ; fi
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
#### Version 0.3.0 - 23 jul 2020
|
2
|
+
|
3
|
+
* Add support for FastExcel::URL
|
4
|
+
* Add support for writing boolean values
|
5
|
+
* Add enable_filters!(end_col: X)
|
6
|
+
* Allow to open with an empty existing file
|
7
|
+
* Add missing enums to chart
|
8
|
+
* Don't change sheet name from "" to nil
|
9
|
+
* Support build with docker
|
10
|
+
* Fix crash when sheet name exceeds maximum length.
|
11
|
+
* [BREAKING CHANGE] Rename `worksheet.right_to_left` to `worksheet.set_right_to_left`:
|
12
|
+
- now it will work properly when using the `pry-rails` gem, not forcing the document start from right even when this method is not called.
|
13
|
+
|
1
14
|
#### Version 0.2.6 - 26 jan 2019
|
2
15
|
|
3
16
|
* Add column auto width (thanks to @duffyjp)
|
@@ -37,4 +50,4 @@
|
|
37
50
|
|
38
51
|
#### Version 0.1.0 - 24 feb 2017
|
39
52
|
|
40
|
-
Initial
|
53
|
+
Initial
|
data/Dockerfile.test
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
FROM ruby
|
2
|
+
|
3
|
+
RUN gem install fast_excel
|
4
|
+
|
5
|
+
ARG TRAVIS_COMMIT
|
6
|
+
ARG TRAVIS_BRANCH
|
7
|
+
|
8
|
+
RUN echo "source 'https://rubygems.org'" > Gemfile
|
9
|
+
|
10
|
+
RUN [ -z "$TRAVIS_COMMIT" ] && \
|
11
|
+
echo "gem 'fast_excel', git: 'https://github.com/Paxa/fast_excel.git'" >> Gemfile || true
|
12
|
+
RUN [ -z "$TRAVIS_COMMIT" ] || \
|
13
|
+
echo "gem 'fast_excel', git: 'https://github.com/Paxa/fast_excel.git', branch: '$TRAVIS_BRANCH', ref: '$TRAVIS_COMMIT'" >> Gemfile
|
14
|
+
|
15
|
+
RUN cat Gemfile
|
16
|
+
RUN bundle
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -6,7 +6,7 @@ GIT
|
|
6
6
|
|
7
7
|
GIT
|
8
8
|
remote: https://github.com/randym/axlsx.git
|
9
|
-
revision:
|
9
|
+
revision: 8e7b4b3b7259103452c191f73ce0bf64f66033fe
|
10
10
|
specs:
|
11
11
|
axlsx (3.0.0.pre)
|
12
12
|
htmlentities (~> 4.3, >= 4.3.4)
|
@@ -16,44 +16,44 @@ GIT
|
|
16
16
|
|
17
17
|
GIT
|
18
18
|
remote: https://github.com/roo-rb/roo.git
|
19
|
-
revision:
|
20
|
-
tag: v2.8.
|
19
|
+
revision: d416f1520c50bbab160ca2ed9a49498fcc3edf50
|
20
|
+
tag: v2.8.3
|
21
21
|
specs:
|
22
|
-
roo (2.8.
|
22
|
+
roo (2.8.3)
|
23
23
|
nokogiri (~> 1)
|
24
|
-
rubyzip (>= 1.
|
24
|
+
rubyzip (>= 1.3.0, < 3.0.0)
|
25
25
|
|
26
26
|
GEM
|
27
27
|
remote: https://rubygems.org/
|
28
28
|
specs:
|
29
29
|
ansi (1.5.0)
|
30
|
-
benchmark-ips (2.
|
31
|
-
builder (3.2.
|
32
|
-
ffi (1.
|
30
|
+
benchmark-ips (2.8.2)
|
31
|
+
builder (3.2.4)
|
32
|
+
ffi (1.13.1)
|
33
33
|
ffi_gen (1.2.0)
|
34
34
|
ffi (~> 1.0)
|
35
35
|
htmlentities (4.3.4)
|
36
|
-
mimemagic (0.3.
|
36
|
+
mimemagic (0.3.5)
|
37
37
|
mini_portile2 (2.4.0)
|
38
|
-
minitest (5.
|
39
|
-
minitest-reporters (1.
|
38
|
+
minitest (5.14.1)
|
39
|
+
minitest-reporters (1.4.2)
|
40
40
|
ansi
|
41
41
|
builder
|
42
42
|
minitest (>= 5.0)
|
43
43
|
ruby-progressbar
|
44
|
-
nokogiri (1.10.
|
44
|
+
nokogiri (1.10.10)
|
45
45
|
mini_portile2 (~> 2.4.0)
|
46
|
-
rake (
|
47
|
-
ruby-progressbar (1.10.
|
48
|
-
rubyzip (1.
|
49
|
-
write_xlsx (0.85.
|
46
|
+
rake (13.0.1)
|
47
|
+
ruby-progressbar (1.10.1)
|
48
|
+
rubyzip (1.3.0)
|
49
|
+
write_xlsx (0.85.7)
|
50
50
|
rubyzip (>= 1.0.0)
|
51
51
|
zip-zip
|
52
|
-
xlsxtream (2.
|
53
|
-
zip_tricks (
|
52
|
+
xlsxtream (2.4.0)
|
53
|
+
zip_tricks (>= 4.5, < 6)
|
54
54
|
zip-zip (0.3)
|
55
55
|
rubyzip (>= 1.0.0)
|
56
|
-
zip_tricks (
|
56
|
+
zip_tricks (5.3.1)
|
57
57
|
|
58
58
|
PLATFORMS
|
59
59
|
ruby
|
@@ -67,9 +67,9 @@ DEPENDENCIES
|
|
67
67
|
minitest-reporters
|
68
68
|
process_memory!
|
69
69
|
rake
|
70
|
-
roo (= 2.8.
|
70
|
+
roo (= 2.8.3)!
|
71
71
|
write_xlsx
|
72
72
|
xlsxtream
|
73
73
|
|
74
74
|
BUNDLED WITH
|
75
|
-
|
75
|
+
2.0.2
|
data/Makefile
CHANGED
@@ -3,11 +3,22 @@ ifdef V
|
|
3
3
|
Q=
|
4
4
|
endif
|
5
5
|
|
6
|
+
# with xcode better to use cmake
|
7
|
+
UNAME_S := $(shell uname -s)
|
8
|
+
ifeq ($(UNAME_S),"Darwin")
|
9
|
+
USE_CMAKE := $(shell command -v cmake 2> /dev/null)
|
10
|
+
endif
|
11
|
+
|
6
12
|
all :
|
7
|
-
@echo "Compiling ext/text_width ..."
|
8
|
-
rake compile
|
13
|
+
# @echo "Compiling ext/text_width ..."
|
14
|
+
# rake compile
|
9
15
|
@echo "Compiling libxlsxwriter ..."
|
16
|
+
ifdef USE_CMAKE
|
17
|
+
@echo "run cmake libxlsxwriter ..."
|
18
|
+
cmake libxlsxwriter
|
19
|
+
else
|
10
20
|
$(Q)$(MAKE) -C libxlsxwriter
|
21
|
+
endif
|
11
22
|
|
12
23
|
clean :
|
13
24
|
$(Q)$(MAKE) clean -C libxlsxwriter
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
```ruby
|
4
4
|
require 'fast_excel'
|
5
5
|
|
6
|
-
workbook = FastExcel.open("
|
6
|
+
workbook = FastExcel.open("hello_world.xlsx", constant_memory: true)
|
7
7
|
workbook.default_format.set(
|
8
8
|
font_size: 0, # user's default
|
9
9
|
font_family: "Arial"
|
@@ -11,7 +11,7 @@ workbook.default_format.set(
|
|
11
11
|
|
12
12
|
worksheet = workbook.add_worksheet("Example Report")
|
13
13
|
|
14
|
-
bold = workbook.
|
14
|
+
bold = workbook.bold_format
|
15
15
|
worksheet.set_column(0, 0, FastExcel::DEF_COL_WIDTH, bold)
|
16
16
|
|
17
17
|
price = workbook.number_format("#,##0.00")
|
@@ -35,43 +35,141 @@ See [more examples](https://github.com/Paxa/fast_excel/tree/master/examples)
|
|
35
35
|
|
36
36
|
This repository and gem contain sources of [libxlsxwriter](https://github.com/jmcnamara/libxlsxwriter)
|
37
37
|
|
38
|
-
##
|
38
|
+
## Install
|
39
39
|
|
40
|
-
|
40
|
+
```ruby
|
41
|
+
# Gemfile
|
42
|
+
gem 'fast_excel'
|
41
43
|
```
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
write_xlsx: 6.9 i/s - 4.62x slower
|
44
|
+
Or
|
45
|
+
```
|
46
|
+
gem install fast_excel
|
46
47
|
```
|
47
48
|
|
48
|
-
|
49
|
+
|
50
|
+
|
51
|
+
### Create Document
|
52
|
+
```ruby
|
53
|
+
workbook = FastExcel.open # creates tmp file
|
54
|
+
# ...
|
55
|
+
send_data(workbook.read_string, filename: "table.xlsx") # read tmp file and delete it
|
49
56
|
```
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
57
|
+
|
58
|
+
Also can use `workbook.remove_tmp_file` to delete tmp file manually
|
59
|
+
|
60
|
+
|
61
|
+
**Constant memory mode**: saves each row to disk, good for really big files but can not change previous lines that already saved
|
62
|
+
```ruby
|
63
|
+
workbook = FastExcel.open(constant_memory: true)
|
54
64
|
```
|
55
65
|
|
56
|
-
|
66
|
+
**Save to file**
|
67
|
+
```ruby
|
68
|
+
workbook = FastExcel.open("my_dinner.xlsx")
|
57
69
|
```
|
58
|
-
|
59
|
-
|
60
|
-
|
70
|
+
|
71
|
+
### Write Data
|
72
|
+
FastExcel will automatically detect data type and one of `write_number` or `write_datetime` or `write_formula` or `write_string` or `write_url`
|
73
|
+
```ruby
|
74
|
+
workbook = FastExcel.open
|
75
|
+
worksheet = workbook.add_worksheet
|
76
|
+
|
77
|
+
# write specific type value value
|
78
|
+
worksheet.write_number(row = 0, col = 5, 1_234_567, format = nil)
|
79
|
+
|
80
|
+
# write value with type detection
|
81
|
+
worksheet.write_value(row = 0, col = 5, 1_234_567, format = nil)
|
82
|
+
|
83
|
+
# write row of values. format argument can be format object or array of format objects
|
84
|
+
worksheet.write_row(row = 1, ["strong", 123_456, Time.now], format = nil)
|
85
|
+
|
86
|
+
# write row to the bottom
|
87
|
+
worksheet.append_row(["strong", 123_456, Time.now], )
|
88
|
+
|
89
|
+
# shortcut for append_row()
|
90
|
+
worksheet << ["strong", 123_456, Time.now]
|
61
91
|
```
|
62
92
|
|
63
|
-
|
93
|
+
**Saving dates**: excel store dates as number of days since 1st January 1900, and FastExcel will make it for you.
|
64
94
|
|
95
|
+
To make saving of dates slightly faster can use `FastExcel.date_num` helper:
|
65
96
|
```ruby
|
66
|
-
|
67
|
-
|
97
|
+
date_format = workbook.number_format("[$-409]m/d/yy hh:mm;@")
|
98
|
+
worksheet.write_number(0, 0, FastExcel.date_num(Time.now, Time.zone.utc_offset), date_format)
|
68
99
|
```
|
69
|
-
|
100
|
+
|
101
|
+
**Formulas**: special type of value in excel
|
102
|
+
```ruby
|
103
|
+
worksheet << [1, 2, 3, 4]
|
104
|
+
worksheet << [FastExcel::Formula.new("SUM(A1:D1)")] # A2 will be shown as 10
|
70
105
|
```
|
71
|
-
|
106
|
+
|
107
|
+
**URL**: Link to website or something else
|
108
|
+
```ruby
|
109
|
+
url_format = workbook.add_format(underline: :underline_single, font_color: :blue) # format is optional
|
110
|
+
worksheet.append_row([
|
111
|
+
FastExcel::URL.new("https://github.com/Paxa/fast_excel"),
|
112
|
+
FastExcel::URL.new("postgres://localhost")
|
113
|
+
], url_format)
|
114
|
+
# or
|
115
|
+
worksheet.write_url(0, 2, "https://github.com/Paxa/fast_excel", url_format)
|
116
|
+
```
|
117
|
+
|
118
|
+
|
119
|
+
### Data Formatting
|
120
|
+
```ruby
|
121
|
+
format = worksheet.add_format(
|
122
|
+
bold: true,
|
123
|
+
italic: true,
|
124
|
+
font_outline: true,
|
125
|
+
font_shadow: true,
|
126
|
+
text_wrap: true,
|
127
|
+
font_strikeout: true,
|
128
|
+
shrink: true,
|
129
|
+
text_justlast: true,
|
130
|
+
font_size: 13, # default is 11, use 0 for user's default
|
131
|
+
font_name: "Arial", # default is Calibri, also accessible via font_family
|
132
|
+
font_color: :orange, # can use RGB hex as "#FF0000" or 0x00FF00 or color name as symbol or string
|
133
|
+
font_script: :font_subscript,
|
134
|
+
rotation: 10,
|
135
|
+
underline: :underline_single, # or :underline_double or :underline_single_accounting or :underline_double_accounting
|
136
|
+
indent: 1,
|
137
|
+
# border styles
|
138
|
+
border: :border_thin,
|
139
|
+
left: :medium,
|
140
|
+
top: :dashed,
|
141
|
+
right: :double,
|
142
|
+
bottom: :hair,
|
143
|
+
bottom_color: :alice_blue,
|
144
|
+
top_color: "#11ABCD",
|
145
|
+
# Align
|
146
|
+
align: {h: :align_center, v: :align_vertical_center},
|
147
|
+
num_format: "#,##0.00"
|
148
|
+
)
|
149
|
+
```
|
150
|
+
|
151
|
+
**Shortcuts**:
|
152
|
+
```ruby
|
153
|
+
workbook.bold_format # bold text
|
154
|
+
workbook.number_format("[$-409]m/d/yy h:mm AM/PM;@") # format for date
|
72
155
|
```
|
73
156
|
|
74
|
-
|
157
|
+
### Set Column Width
|
158
|
+
|
159
|
+
```ruby
|
160
|
+
worksheet.set_column(start_col, end_col, width = nil, format = nil)
|
161
|
+
# or
|
162
|
+
worksheet.set_column_width(col, width = 60)
|
163
|
+
# or
|
164
|
+
worksheet.set_columns_width(start_col, end_col, width = 60)
|
165
|
+
```
|
166
|
+
|
167
|
+
### Set Row Height
|
168
|
+
```ruby
|
169
|
+
worksheet.set_row(row_num = 0, height = 30, format = nil)
|
170
|
+
```
|
171
|
+
|
172
|
+
### Column Auto Width
|
75
173
|
|
76
174
|
Column authwidth only works for string values, because numbers may have custom formatting
|
77
175
|
|
@@ -94,7 +192,7 @@ File.open('./some_file.xlsx', 'wb') {|f| f.write(content) }
|
|
94
192
|
![fast_excel_auto_width](https://user-images.githubusercontent.com/26019/51788441-ba981300-21b0-11e9-9611-54dda78effcd.png)
|
95
193
|
|
96
194
|
|
97
|
-
|
195
|
+
### API
|
98
196
|
|
99
197
|
This gem is FFI binding for libxlsxwriter C library with some syntax sugar. All original functions is avaliable, for example:
|
100
198
|
|
@@ -106,17 +204,29 @@ worksheet.activate
|
|
106
204
|
|
107
205
|
Full libxlsxwriter documentation: [http://libxlsxwriter.github.io/](http://libxlsxwriter.github.io/)
|
108
206
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
207
|
+
Generated rdoc: [rubydoc.info/github/Paxa/fast_excel](https://www.rubydoc.info/github/Paxa/fast_excel)
|
208
|
+
|
209
|
+
## Benchmarks
|
210
|
+
|
211
|
+
1000 rows:
|
212
|
+
```
|
213
|
+
Comparison:
|
214
|
+
FastExcel: 31.7 i/s
|
215
|
+
Axlsx: 8.0 i/s - 3.98x slower
|
216
|
+
write_xlsx: 6.9 i/s - 4.62x slower
|
217
|
+
```
|
218
|
+
|
219
|
+
20000 rows:
|
220
|
+
```
|
221
|
+
Comparison:
|
222
|
+
FastExcel: 1.4 i/s
|
223
|
+
Axlsx: 0.4 i/s - 3.46x slower
|
224
|
+
write_xlsx: 0.1 i/s - 17.04x slower
|
225
|
+
```
|
226
|
+
|
227
|
+
Max memory usage, generating 100k rows:
|
228
|
+
```
|
229
|
+
FastExcel - 20 MB
|
230
|
+
Axlsx - 60 MB
|
231
|
+
write_xlsx - 100 MB
|
232
|
+
```
|