fast_excel 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.dockerignore +2 -0
- data/.gitignore +7 -0
- data/.travis.yml +44 -0
- data/CHANGELOG.md +41 -1
- data/Dockerfile.test +16 -0
- data/Gemfile +5 -2
- data/Gemfile.lock +30 -23
- data/LICENSE +21 -0
- data/Makefile +13 -0
- data/README.md +177 -40
- data/Rakefile +16 -0
- data/appveyor.yml +25 -0
- data/benchmarks/1k_rows.rb +17 -4
- data/benchmarks/20k_rows.rb +4 -0
- data/benchmarks/auto_width.rb +37 -0
- data/benchmarks/init.rb +14 -2
- data/benchmarks/memory.rb +8 -0
- data/benchmarks/profiler.rb +27 -0
- data/benchmarks/write_value.rb +62 -0
- data/examples/example.rb +3 -4
- data/examples/example_align.rb +23 -0
- data/examples/example_auto_width.rb +26 -0
- data/examples/example_colors.rb +37 -0
- data/examples/example_filters.rb +36 -0
- data/examples/example_formula.rb +1 -5
- data/examples/example_hyperlink.rb +20 -0
- data/examples/example_image.rb +1 -1
- data/examples/example_styles.rb +27 -0
- data/examples/logo.png +0 -0
- data/ext/fast_excel/extconf.rb +3 -0
- data/ext/fast_excel/text_width_ext.c +460 -0
- data/fast_excel.gemspec +2 -3
- data/letters.html +114 -0
- data/lib/fast_excel.rb +455 -78
- data/lib/fast_excel/binding.rb +31 -21
- data/lib/fast_excel/binding/chart.rb +20 -1
- data/lib/fast_excel/binding/format.rb +11 -4
- 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 +8 -0
- data/libxlsxwriter/.travis.yml +12 -0
- data/libxlsxwriter/CMakeLists.txt +338 -0
- data/libxlsxwriter/CONTRIBUTING.md +1 -1
- data/libxlsxwriter/Changes.txt +162 -0
- data/libxlsxwriter/LICENSE.txt +65 -4
- data/libxlsxwriter/Makefile +33 -11
- data/libxlsxwriter/Readme.md +3 -1
- data/libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h +2 -1
- data/libxlsxwriter/cocoapods/libxlsxwriter.modulemap +2 -2
- data/libxlsxwriter/include/xlsxwriter.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/app.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/chart.h +164 -13
- data/libxlsxwriter/include/xlsxwriter/chartsheet.h +544 -0
- data/libxlsxwriter/include/xlsxwriter/common.h +35 -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 +8 -8
- data/libxlsxwriter/include/xlsxwriter/hash_table.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/packager.h +18 -8
- data/libxlsxwriter/include/xlsxwriter/relationships.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/shared_strings.h +5 -3
- data/libxlsxwriter/include/xlsxwriter/styles.h +10 -5
- data/libxlsxwriter/include/xlsxwriter/theme.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/utility.h +35 -5
- data/libxlsxwriter/include/xlsxwriter/workbook.h +234 -57
- data/libxlsxwriter/include/xlsxwriter/worksheet.h +780 -91
- data/libxlsxwriter/include/xlsxwriter/xmlwriter.h +4 -2
- data/libxlsxwriter/libxlsxwriter.podspec +4 -2
- data/libxlsxwriter/src/Makefile +31 -6
- data/libxlsxwriter/src/app.c +2 -2
- data/libxlsxwriter/src/chart.c +116 -23
- data/libxlsxwriter/src/chartsheet.c +508 -0
- data/libxlsxwriter/src/content_types.c +12 -4
- data/libxlsxwriter/src/core.c +11 -11
- data/libxlsxwriter/src/custom.c +3 -3
- data/libxlsxwriter/src/drawing.c +114 -17
- data/libxlsxwriter/src/format.c +5 -5
- data/libxlsxwriter/src/hash_table.c +1 -1
- data/libxlsxwriter/src/packager.c +378 -61
- data/libxlsxwriter/src/relationships.c +2 -2
- data/libxlsxwriter/src/shared_strings.c +18 -4
- data/libxlsxwriter/src/styles.c +59 -12
- data/libxlsxwriter/src/theme.c +2 -2
- data/libxlsxwriter/src/utility.c +93 -6
- data/libxlsxwriter/src/workbook.c +379 -61
- data/libxlsxwriter/src/worksheet.c +1240 -174
- data/libxlsxwriter/src/xmlwriter.c +18 -9
- data/libxlsxwriter/third_party/minizip/Makefile +6 -1
- 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/auto_width_test.rb +19 -0
- data/test/date_test.rb +34 -0
- data/test/format_test.rb +179 -0
- data/test/reopen_test.rb +22 -0
- data/test/test_helper.rb +23 -4
- data/test/text_width_test.rb +80 -0
- data/test/tmpfile_test.rb +1 -0
- data/test/validations_test.rb +47 -0
- data/test/worksheet_test.rb +129 -0
- metadata +34 -5
data/test/reopen_test.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
|
3
|
+
describe "FastExcel::Worksheet" do
|
4
|
+
|
5
|
+
it "should get_worksheet_by_name" do
|
6
|
+
workbook = FastExcel.open(constant_memory: false)
|
7
|
+
workbook.add_worksheet("Page1")
|
8
|
+
|
9
|
+
ws = workbook.get_worksheet_by_name("Page1")
|
10
|
+
ws.write_row(0, ['1'])
|
11
|
+
|
12
|
+
workbook.close
|
13
|
+
|
14
|
+
error = assert_raises do
|
15
|
+
FastExcel.open(workbook.filename, constant_memory: false)
|
16
|
+
end
|
17
|
+
|
18
|
+
assert_equal(error.class, ArgumentError)
|
19
|
+
assert_equal(error.message, "File '#{workbook.filename}' already exists. FastExcel can not open existing files, only create new files")
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'bundler/setup'
|
2
2
|
require 'minitest/autorun'
|
3
3
|
require "minitest/reporters"
|
4
|
+
require 'pp'
|
4
5
|
|
5
6
|
##Encoding.default_external = Encoding::UTF_8
|
6
7
|
##Encoding.default_internal = Encoding::UTF_8
|
@@ -20,9 +21,13 @@ ensure
|
|
20
21
|
File.delete(file_path)
|
21
22
|
end
|
22
23
|
|
24
|
+
def get_arrays(workbook)
|
25
|
+
workbook.close
|
26
|
+
parse_xlsx_as_matrix(workbook.filename)
|
27
|
+
end
|
28
|
+
|
23
29
|
def parse_xlsx_as_array(file_path)
|
24
|
-
|
25
|
-
data = excel.to_matrix.to_a
|
30
|
+
data = parse_xlsx_as_matrix(file_path)
|
26
31
|
headers = data.shift
|
27
32
|
|
28
33
|
data.map do |row|
|
@@ -32,5 +37,19 @@ end
|
|
32
37
|
|
33
38
|
def parse_xlsx_as_matrix(file_path)
|
34
39
|
excel = parse_xlsx(file_path)
|
35
|
-
|
36
|
-
|
40
|
+
|
41
|
+
sheet = excel.sheet(0)
|
42
|
+
|
43
|
+
rows = []
|
44
|
+
if sheet.last_row
|
45
|
+
1.upto(sheet.last_row) do |row_number|
|
46
|
+
row = 1.upto(sheet.last_column).map do |col|
|
47
|
+
sheet.cell(row_number, col)
|
48
|
+
end
|
49
|
+
|
50
|
+
rows << row
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
return rows
|
55
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
|
3
|
+
|
4
|
+
describe "FastExcel Arial text_width" do
|
5
|
+
|
6
|
+
before do
|
7
|
+
skip "Use basic width calc for now"
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should calculate width for character" do
|
11
|
+
assert_in_delta(FastExcel.arial_text_width('a'), 55.61, 0.1)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should calculate width with kerning" do
|
15
|
+
assert_in_delta(FastExcel.arial_text_width('A'), 66.69, 0.1)
|
16
|
+
assert_in_delta(FastExcel.arial_text_width('V'), 66.69, 0.1)
|
17
|
+
|
18
|
+
assert_in_delta(FastExcel.arial_text_width('AV'), 125.97, 0.1)
|
19
|
+
|
20
|
+
assert_in_delta(FastExcel.arial_text_width('11'), 103.80, 0.1)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should skip system characters" do
|
24
|
+
assert_in_delta(FastExcel.arial_text_width(10.chr), 0.0)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should handle multiline text" do
|
28
|
+
assert_in_delta(FastExcel.arial_text_width("More\nThen\nOne Line"), 405.85, 0.1)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "FastExcel Calibri text_width" do
|
33
|
+
|
34
|
+
before do
|
35
|
+
skip "Use basic width calc for now"
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should calculate width for character" do
|
39
|
+
assert_in_delta(FastExcel.calibri_text_width('a'), 47.90, 0.1)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should calculate width with kerning" do
|
43
|
+
assert_in_delta(FastExcel.calibri_text_width('A'), 57.86, 0.1)
|
44
|
+
assert_in_delta(FastExcel.calibri_text_width('V'), 56.73, 0.1)
|
45
|
+
|
46
|
+
assert_in_delta(FastExcel.calibri_text_width('AV'), 110.25, 0.1)
|
47
|
+
|
48
|
+
assert_in_delta(FastExcel.calibri_text_width('11'), 101.36, 0.1)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should skip system characters" do
|
52
|
+
assert_in_delta(FastExcel.calibri_text_width(10.chr), 0.0)
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "FastExcel Times New Roman text_width" do
|
58
|
+
|
59
|
+
before do
|
60
|
+
skip "Use basic width calc for now"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should calculate width for character" do
|
64
|
+
assert_in_delta(FastExcel.times_new_roman_text_width('a'), 44.38, 0.1)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should calculate width with kerning" do
|
68
|
+
assert_in_delta(FastExcel.times_new_roman_text_width('A'), 72.21, 0.1)
|
69
|
+
assert_in_delta(FastExcel.times_new_roman_text_width('V'), 72.21, 0.1)
|
70
|
+
|
71
|
+
assert_in_delta(FastExcel.times_new_roman_text_width('AV'), 131.54, 0.1)
|
72
|
+
|
73
|
+
assert_in_delta(FastExcel.times_new_roman_text_width('11'), 96.28, 0.1)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should skip system characters" do
|
77
|
+
assert_in_delta(FastExcel.times_new_roman_text_width(10.chr), 0.0)
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
data/test/tmpfile_test.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
|
3
|
+
describe "FastExcel validations" do
|
4
|
+
|
5
|
+
it "should raise error when duplicate sheet name" do
|
6
|
+
workbook = FastExcel.open(constant_memory: true)
|
7
|
+
|
8
|
+
workbook.add_worksheet("Payments Report")
|
9
|
+
error = assert_raises do
|
10
|
+
workbook.add_worksheet("Payments Report")
|
11
|
+
end
|
12
|
+
|
13
|
+
assert_equal(ArgumentError, error.class)
|
14
|
+
assert_equal("Worksheet name 'Payments Report' is already in use", error.message)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should not raise error when worksheet name is null" do
|
18
|
+
workbook = FastExcel.open(constant_memory: true)
|
19
|
+
|
20
|
+
ws1 = workbook.add_worksheet()
|
21
|
+
ws2 = workbook.add_worksheet()
|
22
|
+
ws2.write_value(0, 2, "aaa")
|
23
|
+
|
24
|
+
assert_equal("Sheet1", ws1[:name])
|
25
|
+
assert_equal("Sheet2", ws2[:name])
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should raise error when the sheet name exceeds maximum length" do
|
29
|
+
workbook = FastExcel.open(constant_memory: true)
|
30
|
+
|
31
|
+
error = assert_raises do
|
32
|
+
workbook.add_worksheet("ABCDEFGHIJKLMNOPQRSTUVWXYZ012345")
|
33
|
+
end
|
34
|
+
|
35
|
+
assert_equal(ArgumentError, error.class)
|
36
|
+
assert_equal("Worksheet name 'ABCDEFGHIJKLMNOPQRSTUVWXYZ012345' exceeds Excel's limit of 31 characters", error.message)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should not raise error when the sheet name is at maximum length" do
|
40
|
+
workbook = FastExcel.open(constant_memory: true)
|
41
|
+
|
42
|
+
worksheet = workbook.add_worksheet("ABCDEFGHIJKLMNOPQRSTUVWXYZ01234")
|
43
|
+
worksheet.append_row(["aaa", "bbb", "ccc"])
|
44
|
+
|
45
|
+
assert_equal("ABCDEFGHIJKLMNOPQRSTUVWXYZ01234", worksheet[:name])
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
|
3
|
+
describe "FastExcel::WorksheetExt append_row" do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@workbook = FastExcel.open(constant_memory: false)
|
7
|
+
@worksheet = @workbook.add_worksheet
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should have last_row_number = -1" do
|
11
|
+
assert_equal(-1, @worksheet.last_row_number)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should write_value and update last_row_number" do
|
15
|
+
@worksheet.write_value(0, 2, "aaa")
|
16
|
+
assert_equal(0, @worksheet.last_row_number)
|
17
|
+
assert_equal([[nil, nil, "aaa"]], get_arrays(@workbook))
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should append row and update last_row_number" do
|
21
|
+
@worksheet.append_row(["aaa", "bbb", "ccc"])
|
22
|
+
@worksheet.append_row(["ddd", "eee", "fff"])
|
23
|
+
|
24
|
+
assert_equal(1, @worksheet.last_row_number)
|
25
|
+
assert_equal([["aaa", "bbb", "ccc"], ["ddd", "eee", "fff"]], get_arrays(@workbook))
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should write_row then append and update last_row_number" do
|
29
|
+
@worksheet.write_row(3, ["aaa", "bbb", "ccc"])
|
30
|
+
@worksheet.append_row(["ddd", "eee", "fff"])
|
31
|
+
|
32
|
+
assert_equal(4, @worksheet.last_row_number)
|
33
|
+
assert_equal(
|
34
|
+
[
|
35
|
+
[nil, nil, nil],
|
36
|
+
[nil, nil, nil],
|
37
|
+
[nil, nil, nil],
|
38
|
+
["aaa", "bbb", "ccc"],
|
39
|
+
["ddd", "eee", "fff"]
|
40
|
+
],
|
41
|
+
get_arrays(@workbook)
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should not reduce last_row_number" do
|
46
|
+
@worksheet.append_row(["aaa", "bbb", "ccc"])
|
47
|
+
@worksheet.append_row(["ddd", "eee", "fff"])
|
48
|
+
@worksheet.write_value(0, 4, "foo")
|
49
|
+
@worksheet.append_row(["111", "222", "333"])
|
50
|
+
|
51
|
+
assert_equal(2, @worksheet.last_row_number)
|
52
|
+
assert_equal(
|
53
|
+
[
|
54
|
+
["aaa", "bbb", "ccc", nil, "foo"],
|
55
|
+
["ddd", "eee", "fff", nil, nil],
|
56
|
+
["111", "222", "333", nil, nil]
|
57
|
+
],
|
58
|
+
get_arrays(@workbook)
|
59
|
+
)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should not allow to write rows that already saved" do
|
63
|
+
@workbook = FastExcel.open(constant_memory: true)
|
64
|
+
@worksheet = @workbook.add_worksheet
|
65
|
+
|
66
|
+
@worksheet.append_row(["aaa", "bbb", "ccc"])
|
67
|
+
@worksheet.append_row(["ddd", "eee", "fff"])
|
68
|
+
|
69
|
+
error = assert_raises(ArgumentError) do
|
70
|
+
@worksheet.write_value(0, 4, "foo")
|
71
|
+
end
|
72
|
+
|
73
|
+
assert_equal("Can not write to saved row in constant_memory mode (attempted row: 0, last saved row: 1)", error.message)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should write bigdecimal as a number" do
|
77
|
+
require 'bigdecimal'
|
78
|
+
|
79
|
+
@workbook = FastExcel.open(constant_memory: true)
|
80
|
+
@worksheet = @workbook.add_worksheet
|
81
|
+
|
82
|
+
@worksheet.append_row([BigDecimal("0.1234")])
|
83
|
+
|
84
|
+
assert_equal([[0.1234]], get_arrays(@workbook))
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should set name correctly" do
|
88
|
+
workbook = FastExcel.open(constant_memory: true)
|
89
|
+
ws1 = workbook.add_worksheet("foo")
|
90
|
+
ws2 = workbook.add_worksheet("")
|
91
|
+
|
92
|
+
assert_equal("foo", ws1[:name])
|
93
|
+
assert_equal("", ws2[:name])
|
94
|
+
end
|
95
|
+
|
96
|
+
it "should map fields correctly" do
|
97
|
+
workbook = FastExcel.open(constant_memory: true)
|
98
|
+
|
99
|
+
ws = workbook.add_worksheet
|
100
|
+
ws.set_right_to_left
|
101
|
+
assert_equal(ws[:right_to_left], 1)
|
102
|
+
|
103
|
+
ws = workbook.add_worksheet
|
104
|
+
ws.center_vertically
|
105
|
+
assert_equal(ws[:print_options_changed], 1)
|
106
|
+
assert_equal(ws[:vcenter], 1)
|
107
|
+
|
108
|
+
ws = workbook.add_worksheet
|
109
|
+
ws.print_row_col_headers
|
110
|
+
assert_equal(ws[:print_headers], 1)
|
111
|
+
assert_equal(ws[:print_options_changed], 1)
|
112
|
+
|
113
|
+
ws = workbook.add_worksheet
|
114
|
+
ws.set_margins(1.5, 2.5, 3.5, 4.5)
|
115
|
+
assert_equal(ws[:margin_left], 1.5)
|
116
|
+
assert_equal(ws[:margin_right], 2.5)
|
117
|
+
assert_equal(ws[:margin_top], 3.5)
|
118
|
+
assert_equal(ws[:margin_bottom], 4.5)
|
119
|
+
|
120
|
+
|
121
|
+
breaks = [20, 40, 60, 20, 0]
|
122
|
+
FFI::MemoryPointer.new(:uint16, breaks.size) do |buffer|
|
123
|
+
buffer.write_array_of_uint16(breaks)
|
124
|
+
ws.set_v_pagebreaks(buffer)
|
125
|
+
end
|
126
|
+
|
127
|
+
assert_equal(ws[:vbreaks_count], 4)
|
128
|
+
end
|
129
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fast_excel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Evstigneev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -38,23 +38,41 @@ extensions:
|
|
38
38
|
- extconf.rb
|
39
39
|
extra_rdoc_files: []
|
40
40
|
files:
|
41
|
+
- ".dockerignore"
|
41
42
|
- ".gitignore"
|
43
|
+
- ".travis.yml"
|
42
44
|
- CHANGELOG.md
|
45
|
+
- Dockerfile.test
|
43
46
|
- Gemfile
|
44
47
|
- Gemfile.lock
|
48
|
+
- LICENSE
|
45
49
|
- Makefile
|
46
50
|
- README.md
|
47
51
|
- Rakefile
|
52
|
+
- appveyor.yml
|
48
53
|
- benchmarks/1k_rows.rb
|
49
54
|
- benchmarks/20k_rows.rb
|
55
|
+
- benchmarks/auto_width.rb
|
50
56
|
- benchmarks/init.rb
|
51
57
|
- benchmarks/memory.rb
|
58
|
+
- benchmarks/profiler.rb
|
59
|
+
- benchmarks/write_value.rb
|
52
60
|
- examples/example.rb
|
61
|
+
- examples/example_align.rb
|
62
|
+
- examples/example_auto_width.rb
|
53
63
|
- examples/example_chart.rb
|
64
|
+
- examples/example_colors.rb
|
65
|
+
- examples/example_filters.rb
|
54
66
|
- examples/example_formula.rb
|
67
|
+
- examples/example_hyperlink.rb
|
55
68
|
- examples/example_image.rb
|
69
|
+
- examples/example_styles.rb
|
70
|
+
- examples/logo.png
|
71
|
+
- ext/fast_excel/extconf.rb
|
72
|
+
- ext/fast_excel/text_width_ext.c
|
56
73
|
- extconf.rb
|
57
74
|
- fast_excel.gemspec
|
75
|
+
- letters.html
|
58
76
|
- lib/fast_excel.rb
|
59
77
|
- lib/fast_excel/binding.rb
|
60
78
|
- lib/fast_excel/binding/chart.rb
|
@@ -64,16 +82,21 @@ files:
|
|
64
82
|
- libxlsxwriter/.gitignore
|
65
83
|
- libxlsxwriter/.indent.pro
|
66
84
|
- libxlsxwriter/.travis.yml
|
85
|
+
- libxlsxwriter/CMakeLists.txt
|
67
86
|
- libxlsxwriter/CONTRIBUTING.md
|
68
87
|
- libxlsxwriter/Changes.txt
|
69
88
|
- libxlsxwriter/LICENSE.txt
|
70
89
|
- libxlsxwriter/Makefile
|
71
90
|
- libxlsxwriter/Readme.md
|
91
|
+
- libxlsxwriter/cmake/FindMINIZIP.cmake
|
92
|
+
- libxlsxwriter/cmake/FindPackage.cmake
|
93
|
+
- libxlsxwriter/cmake/i686-toolchain.cmake
|
72
94
|
- libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h
|
73
95
|
- libxlsxwriter/cocoapods/libxlsxwriter.modulemap
|
74
96
|
- libxlsxwriter/include/xlsxwriter.h
|
75
97
|
- libxlsxwriter/include/xlsxwriter/app.h
|
76
98
|
- libxlsxwriter/include/xlsxwriter/chart.h
|
99
|
+
- libxlsxwriter/include/xlsxwriter/chartsheet.h
|
77
100
|
- libxlsxwriter/include/xlsxwriter/common.h
|
78
101
|
- libxlsxwriter/include/xlsxwriter/content_types.h
|
79
102
|
- libxlsxwriter/include/xlsxwriter/core.h
|
@@ -100,6 +123,7 @@ files:
|
|
100
123
|
- libxlsxwriter/src/Makefile
|
101
124
|
- libxlsxwriter/src/app.c
|
102
125
|
- libxlsxwriter/src/chart.c
|
126
|
+
- libxlsxwriter/src/chartsheet.c
|
103
127
|
- libxlsxwriter/src/content_types.c
|
104
128
|
- libxlsxwriter/src/core.c
|
105
129
|
- libxlsxwriter/src/custom.c
|
@@ -143,10 +167,16 @@ files:
|
|
143
167
|
- libxlsxwriter/third_party/tmpfileplus/tmpfileplus.c
|
144
168
|
- libxlsxwriter/third_party/tmpfileplus/tmpfileplus.h
|
145
169
|
- libxlsxwriter/version.txt
|
170
|
+
- test/auto_width_test.rb
|
146
171
|
- test/date_test.rb
|
147
172
|
- test/default_format_test.rb
|
173
|
+
- test/format_test.rb
|
174
|
+
- test/reopen_test.rb
|
148
175
|
- test/test_helper.rb
|
176
|
+
- test/text_width_test.rb
|
149
177
|
- test/tmpfile_test.rb
|
178
|
+
- test/validations_test.rb
|
179
|
+
- test/worksheet_test.rb
|
150
180
|
homepage: https://github.com/paxa/fast_excel
|
151
181
|
licenses:
|
152
182
|
- MIT
|
@@ -166,9 +196,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
196
|
- !ruby/object:Gem::Version
|
167
197
|
version: '0'
|
168
198
|
requirements: []
|
169
|
-
|
170
|
-
rubygems_version: 2.6.8
|
199
|
+
rubygems_version: 3.0.6
|
171
200
|
signing_key:
|
172
201
|
specification_version: 4
|
173
|
-
summary: Ultra Fast Excel
|
202
|
+
summary: Ultra Fast Excel Writer
|
174
203
|
test_files: []
|