axlsx 2.1.0.pre → 3.0.0.pre
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/CHANGELOG.md +5 -0
- data/README.md +17 -20
- data/Rakefile +0 -1
- data/examples/conditional_formatting/example_conditional_formatting.rb +15 -0
- data/examples/example.rb +31 -1
- data/lib/axlsx.rb +9 -4
- data/lib/axlsx/drawing/area_chart.rb +99 -0
- data/lib/axlsx/drawing/area_series.rb +110 -0
- data/lib/axlsx/drawing/bar_chart.rb +143 -0
- data/lib/axlsx/drawing/chart.rb +8 -1
- data/lib/axlsx/drawing/d_lbls.rb +3 -3
- data/lib/axlsx/drawing/drawing.rb +3 -0
- data/lib/axlsx/drawing/line_series.rb +18 -1
- data/lib/axlsx/drawing/num_val.rb +3 -1
- data/lib/axlsx/drawing/one_cell_anchor.rb +2 -1
- data/lib/axlsx/drawing/pic.rb +24 -17
- data/lib/axlsx/drawing/scaling.rb +2 -2
- data/lib/axlsx/drawing/scatter_series.rb +16 -2
- data/lib/axlsx/drawing/str_val.rb +3 -1
- data/lib/axlsx/drawing/title.rb +19 -1
- data/lib/axlsx/drawing/two_cell_anchor.rb +6 -1
- data/lib/axlsx/drawing/view_3D.rb +2 -2
- data/lib/axlsx/package.rb +7 -16
- data/lib/axlsx/rels/relationships.rb +5 -2
- data/lib/axlsx/stylesheet/num_fmt.rb +9 -0
- data/lib/axlsx/stylesheet/styles.rb +1 -1
- data/lib/axlsx/util/constants.rb +8 -5
- data/lib/axlsx/util/mime_type_utils.rb +11 -0
- data/lib/axlsx/util/simple_typed_list.rb +1 -1
- data/lib/axlsx/util/validators.rb +14 -9
- data/lib/axlsx/version.rb +1 -1
- data/lib/axlsx/workbook/workbook.rb +19 -1
- data/lib/axlsx/workbook/workbook_view.rb +5 -3
- data/lib/axlsx/workbook/worksheet/cell.rb +26 -19
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +15 -5
- data/lib/axlsx/workbook/worksheet/cfvos.rb +3 -0
- data/lib/axlsx/workbook/worksheet/cols.rb +5 -2
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +2 -0
- data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -0
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +36 -13
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +4 -1
- data/lib/axlsx/workbook/worksheet/rich_text.rb +23 -3
- data/lib/axlsx/workbook/worksheet/rich_text_run.rb +28 -32
- data/lib/axlsx/workbook/worksheet/row.rb +7 -0
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +21 -3
- data/lib/axlsx/workbook/worksheet/tables.rb +3 -0
- data/lib/axlsx/workbook/worksheet/worksheet.rb +8 -51
- data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +10 -10
- data/test/axlsx.qcachegrind +2226 -0
- data/test/drawing/tc_area_chart.rb +39 -0
- data/test/drawing/tc_area_series.rb +71 -0
- data/test/drawing/tc_bar_chart.rb +71 -0
- data/test/drawing/tc_chart.rb +23 -10
- data/test/drawing/tc_drawing.rb +2 -2
- data/test/drawing/tc_line_series.rb +38 -5
- data/test/drawing/tc_pic.rb +11 -19
- data/test/drawing/tc_scatter_series.rb +16 -5
- data/test/drawing/tc_str_val.rb +9 -0
- data/test/drawing/tc_title.rb +5 -0
- data/test/stylesheet/tc_styles.rb +2 -2
- data/test/tc_axlsx.rb +31 -0
- data/test/tc_helper.rb +3 -1
- data/test/tc_package.rb +12 -0
- data/test/util/tc_mime_type_utils.rb +13 -0
- data/test/util/tc_simple_typed_list.rb +1 -1
- data/test/util/tc_validators.rb +34 -10
- data/test/workbook/tc_shared_strings_table.rb +16 -1
- data/test/workbook/tc_workbook.rb +22 -1
- data/test/workbook/worksheet/tc_cell.rb +53 -11
- data/test/workbook/worksheet/tc_outline_pr.rb +19 -0
- data/test/workbook/worksheet/tc_pivot_table.rb +21 -6
- data/test/workbook/worksheet/tc_rich_text_run.rb +11 -11
- data/test/workbook/worksheet/tc_row.rb +5 -0
- data/test/workbook/worksheet/tc_sheet_pr.rb +26 -4
- data/test/workbook/worksheet/tc_table.rb +2 -3
- data/test/workbook/worksheet/tc_worksheet.rb +53 -38
- metadata +72 -20
- data/examples/IMAGE1UP.JPEG +0 -0
- data/lib/axlsx/util/string.rb +0 -7
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'tc_helper.rb'
|
2
|
+
|
3
|
+
class TestOutlinePr < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@outline_pr = Axlsx::OutlinePr.new(:summary_below => false, :summary_right => true, :apply_styles => false)
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_summary_below
|
9
|
+
assert_equal false, @outline_pr.summary_below
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_summary_right
|
13
|
+
assert_equal true, @outline_pr.summary_right
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_apply_styles
|
17
|
+
assert_equal false, @outline_pr.apply_styles
|
18
|
+
end
|
19
|
+
end
|
@@ -67,6 +67,26 @@ class TestPivotTable < Test::Unit::TestCase
|
|
67
67
|
assert_equal([{:ref=>"Sales", :subtotal => 'average'}], pivot_table.data)
|
68
68
|
end
|
69
69
|
|
70
|
+
def test_add_pivot_table_with_style_info
|
71
|
+
style_info_data = { :name=>"PivotStyleMedium9", :showRowHeaders=>"1", :showLastColumn=>"0"}
|
72
|
+
pivot_table = @ws.add_pivot_table('G5:G6', 'A1:E5', {:style_info=>style_info_data}) do |pt|
|
73
|
+
pt.rows = ['Year', 'Month']
|
74
|
+
pt.columns = ['Type']
|
75
|
+
pt.data = ['Sales']
|
76
|
+
pt.pages = ['Region']
|
77
|
+
end
|
78
|
+
assert_equal(style_info_data, pivot_table.style_info)
|
79
|
+
shared_test_pivot_table_xml_validity(pivot_table)
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_add_pivot_table_with_row_without_subtotals
|
83
|
+
pivot_table = @ws.add_pivot_table('G5:G6', 'A1:D5', {:no_subtotals_on_headers=>['Year']}) do |pt|
|
84
|
+
pt.data = ['Sales']
|
85
|
+
pt.rows = ['Year','Month']
|
86
|
+
end
|
87
|
+
assert_equal(['Year'], pivot_table.no_subtotals_on_headers)
|
88
|
+
end
|
89
|
+
|
70
90
|
def test_header_indices
|
71
91
|
pivot_table = @ws.add_pivot_table('G5:G6', 'A1:E5')
|
72
92
|
assert_equal(0, pivot_table.header_index_of('Year' ))
|
@@ -97,12 +117,7 @@ class TestPivotTable < Test::Unit::TestCase
|
|
97
117
|
end
|
98
118
|
|
99
119
|
def test_to_xml_string
|
100
|
-
pivot_table = @ws.add_pivot_table('G5:G6', 'A1:
|
101
|
-
shared_test_pivot_table_xml_validity(pivot_table)
|
102
|
-
end
|
103
|
-
|
104
|
-
def test_to_xml_string_with_configuration
|
105
|
-
pivot_table = @ws.add_pivot_table('G5:G6', 'A1:E5') do |pt|
|
120
|
+
pivot_table = @ws.add_pivot_table('G5:G6', 'A1:E5', {:no_subtotals_on_headers=>['Year']}) do |pt|
|
106
121
|
pt.rows = ['Year', 'Month']
|
107
122
|
pt.columns = ['Type']
|
108
123
|
pt.data = ['Sales']
|
@@ -7,7 +7,7 @@ class RichTextRun < Test::Unit::TestCase
|
|
7
7
|
@p.workbook.styles.add_style :sz => 20
|
8
8
|
@rtr = Axlsx::RichTextRun.new('hihihi', b: true, i: false)
|
9
9
|
@rtr2 = Axlsx::RichTextRun.new('hihi2hi2', b: false, i: true)
|
10
|
-
@rt = Axlsx::RichText.new
|
10
|
+
@rt = Axlsx::RichText.new
|
11
11
|
@rt.runs << @rtr
|
12
12
|
@rt.runs << @rtr2
|
13
13
|
@row = @ws.add_row [@rt]
|
@@ -19,7 +19,7 @@ class RichTextRun < Test::Unit::TestCase
|
|
19
19
|
assert_equal(@rtr.b, true)
|
20
20
|
assert_equal(@rtr.i, false)
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
def test_font_size_with_custom_style_and_no_sz
|
24
24
|
@c.style = @c.row.worksheet.workbook.styles.add_style :bg_color => 'FF00FF'
|
25
25
|
sz = @rtr.send(:font_size)
|
@@ -41,12 +41,12 @@ class RichTextRun < Test::Unit::TestCase
|
|
41
41
|
sz2 = @rtr2.send(:font_size)
|
42
42
|
assert_equal(sz2, 52)
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
def test_rtr_with_sz
|
46
46
|
@rtr.sz = 25
|
47
47
|
assert_equal(25, @rtr.send(:font_size))
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
def test_color
|
51
51
|
assert_raise(ArgumentError) { @rtr.color = -1.1 }
|
52
52
|
assert_nothing_raised { @rtr.color = "FF00FF00" }
|
@@ -129,9 +129,9 @@ class RichTextRun < Test::Unit::TestCase
|
|
129
129
|
end
|
130
130
|
|
131
131
|
def test_family
|
132
|
-
assert_raise(ArgumentError) { @
|
133
|
-
assert_nothing_raised { @
|
134
|
-
assert_equal(@
|
132
|
+
assert_raise(ArgumentError) { @rtr.family = 0 }
|
133
|
+
assert_nothing_raised { @rtr.family = 1 }
|
134
|
+
assert_equal(@rtr.family, 1)
|
135
135
|
end
|
136
136
|
|
137
137
|
def test_b
|
@@ -139,11 +139,11 @@ class RichTextRun < Test::Unit::TestCase
|
|
139
139
|
assert_nothing_raised { @c.b = false }
|
140
140
|
assert_equal(@c.b, false)
|
141
141
|
end
|
142
|
-
|
142
|
+
|
143
143
|
def test_multiline_autowidth
|
144
144
|
wrap = @p.workbook.styles.add_style({:alignment => {:wrap_text => true}})
|
145
145
|
awtr = Axlsx::RichTextRun.new('I\'m bold' + "\n", :b => true)
|
146
|
-
rt = Axlsx::RichText.new
|
146
|
+
rt = Axlsx::RichText.new
|
147
147
|
rt.runs << awtr
|
148
148
|
@ws.add_row [rt], :style => wrap
|
149
149
|
ar = [0]
|
@@ -151,7 +151,7 @@ class RichTextRun < Test::Unit::TestCase
|
|
151
151
|
assert_equal(ar.length, 2)
|
152
152
|
assert_equal(ar.last, 0)
|
153
153
|
end
|
154
|
-
|
154
|
+
|
155
155
|
def test_to_xml
|
156
156
|
schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
|
157
157
|
doc = Nokogiri::XML(@ws.to_xml_string)
|
@@ -161,7 +161,7 @@ class RichTextRun < Test::Unit::TestCase
|
|
161
161
|
errors.push error
|
162
162
|
end
|
163
163
|
assert(errors.empty?, "error free validation")
|
164
|
-
|
164
|
+
|
165
165
|
assert(doc.xpath('//rPr/b[@val=1]'))
|
166
166
|
assert(doc.xpath('//rPr/i[@val=0]'))
|
167
167
|
assert(doc.xpath('//rPr/b[@val=0]'))
|
@@ -27,6 +27,11 @@ class TestRow < Test::Unit::TestCase
|
|
27
27
|
r.cells.each { |c| assert_equal(c.style,1) }
|
28
28
|
end
|
29
29
|
|
30
|
+
def test_color
|
31
|
+
r = @ws.add_row([1,2,3,4,5])
|
32
|
+
r.color = "FF00FF00"
|
33
|
+
r.cells.each { |c| assert_equal(c.color.rgb, "FF00FF00") }
|
34
|
+
end
|
30
35
|
|
31
36
|
def test_index
|
32
37
|
assert_equal(@row.row_index, @row.worksheet.rows.index(@row))
|
@@ -5,23 +5,45 @@ class TestSheetPr < Test::Unit::TestCase
|
|
5
5
|
|
6
6
|
def setup
|
7
7
|
worksheet = Axlsx::Package.new.workbook.add_worksheet
|
8
|
-
@options = {
|
8
|
+
@options = {
|
9
9
|
:sync_horizontal => false,
|
10
10
|
:sync_vertical => false,
|
11
|
-
:
|
11
|
+
:transition_evaluation => true,
|
12
12
|
:transition_entry => true,
|
13
13
|
:published => false,
|
14
14
|
:filter_mode => true,
|
15
15
|
:enable_format_conditions_calculation => false,
|
16
16
|
:code_name => '007',
|
17
|
-
:sync_ref => 'foo'
|
17
|
+
:sync_ref => 'foo',
|
18
|
+
:tab_color => 'FFFF6666'
|
18
19
|
}
|
19
20
|
@sheet_pr = Axlsx::SheetPr.new(worksheet, @options)
|
20
21
|
end
|
21
22
|
|
22
23
|
def test_initialization
|
23
24
|
@options.each do |key, value|
|
24
|
-
|
25
|
+
if key==:tab_color
|
26
|
+
stored_value = @sheet_pr.send(key)
|
27
|
+
assert_equal Axlsx::Color, stored_value.class
|
28
|
+
assert_equal value, stored_value.rgb
|
29
|
+
else
|
30
|
+
assert_equal value, @sheet_pr.send(key)
|
31
|
+
end
|
25
32
|
end
|
26
33
|
end
|
34
|
+
|
35
|
+
def test_to_xml_string
|
36
|
+
doc = Nokogiri::XML(@sheet_pr.to_xml_string)
|
37
|
+
assert_equal(doc.xpath("//sheetPr[@syncHorizontal='0']").size, 1)
|
38
|
+
assert_equal(doc.xpath("//sheetPr[@syncVertical='0']").size, 1)
|
39
|
+
assert_equal(doc.xpath("//sheetPr[@transitionEvaluation='1']").size, 1)
|
40
|
+
assert_equal(doc.xpath("//sheetPr[@transitionEntry='1']").size, 1)
|
41
|
+
assert_equal(doc.xpath("//sheetPr[@published='0']").size, 1)
|
42
|
+
assert_equal(doc.xpath("//sheetPr[@filterMode='1']").size, 1)
|
43
|
+
assert_equal(doc.xpath("//sheetPr[@enableFormatConditionsCalculation='0']").size, 1)
|
44
|
+
assert_equal(doc.xpath("//sheetPr[@codeName='007']").size, 1)
|
45
|
+
assert_equal(doc.xpath("//sheetPr[@syncRef='foo']").size, 1)
|
46
|
+
assert_equal(doc.xpath("//sheetPr/tabColor[@rgb='FFFF6666']").size, 1)
|
47
|
+
assert_equal(doc.xpath("//sheetPr/pageSetUpPr[@fitToPage='0']").size, 1)
|
48
|
+
end
|
27
49
|
end
|
@@ -47,9 +47,9 @@ class TestTable < Test::Unit::TestCase
|
|
47
47
|
|
48
48
|
def test_relationships
|
49
49
|
assert(@ws.relationships.empty?)
|
50
|
-
|
50
|
+
@ws.add_table("A1:D5")
|
51
51
|
assert_equal(@ws.relationships.size, 1, "adding a table adds a relationship")
|
52
|
-
|
52
|
+
@ws.add_table("F1:J5")
|
53
53
|
assert_equal(@ws.relationships.size, 2, "adding a table adds a relationship")
|
54
54
|
end
|
55
55
|
|
@@ -64,5 +64,4 @@ class TestTable < Test::Unit::TestCase
|
|
64
64
|
end
|
65
65
|
assert(errors.empty?, "error free validation")
|
66
66
|
end
|
67
|
-
|
68
67
|
end
|
@@ -93,7 +93,7 @@ class TestWorksheet < Test::Unit::TestCase
|
|
93
93
|
page_setup = {:fit_to_height => 1, :fit_to_width => 1, :orientation => :landscape, :paper_width => "210mm", :paper_height => "297mm", :scale => 80}
|
94
94
|
print_options = {:grid_lines => true, :headings => true, :horizontal_centered => true, :vertical_centered => true}
|
95
95
|
header_footer = {:different_first => false, :different_odd_even => false, :odd_header => 'Header'}
|
96
|
-
optioned = @ws.workbook.add_worksheet(:name => 'bob', :page_margins => page_margins, :page_setup => page_setup, :print_options => print_options, :header_footer => header_footer
|
96
|
+
optioned = @ws.workbook.add_worksheet(:name => 'bob', :page_margins => page_margins, :page_setup => page_setup, :print_options => print_options, :header_footer => header_footer)
|
97
97
|
page_margins.keys.each do |key|
|
98
98
|
assert_equal(page_margins[key], optioned.page_margins.send(key))
|
99
99
|
end
|
@@ -107,23 +107,21 @@ class TestWorksheet < Test::Unit::TestCase
|
|
107
107
|
assert_equal(header_footer[key], optioned.header_footer.send(key))
|
108
108
|
end
|
109
109
|
assert_equal(optioned.name, 'bob')
|
110
|
-
assert_equal(optioned.selected, true)
|
111
|
-
assert_equal(optioned.show_gridlines, false)
|
112
110
|
|
113
111
|
end
|
114
112
|
|
115
113
|
|
116
|
-
def test_use_gridlines
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
end
|
114
|
+
# def test_use_gridlines
|
115
|
+
# assert_raise(ArgumentError) { @ws.show_gridlines = -1.1 }
|
116
|
+
# assert_nothing_raised { @ws.show_gridlines = false }
|
117
|
+
# assert_equal(@ws.show_gridlines, false)
|
118
|
+
# end
|
121
119
|
|
122
|
-
def test_selected
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
end
|
120
|
+
# def test_selected
|
121
|
+
# assert_raise(ArgumentError) { @ws.selected = -1.1 }
|
122
|
+
# assert_nothing_raised { @ws.selected = true }
|
123
|
+
# assert_equal(@ws.selected, true)
|
124
|
+
# end
|
127
125
|
|
128
126
|
def test_rels_pn
|
129
127
|
assert_equal(@ws.rels_pn, "worksheets/_rels/sheet1.xml.rels")
|
@@ -266,11 +264,11 @@ class TestWorksheet < Test::Unit::TestCase
|
|
266
264
|
end
|
267
265
|
end
|
268
266
|
|
269
|
-
def test_to_xml_string_fit_to_page
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
end
|
267
|
+
# def test_to_xml_string_fit_to_page
|
268
|
+
# @ws.page_setup.fit_to_width = 1
|
269
|
+
# doc = Nokogiri::XML(@ws.to_xml_string)
|
270
|
+
# assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetPr/xmlns:pageSetUpPr[@fitToPage=1]').size, 1)
|
271
|
+
# end
|
274
272
|
|
275
273
|
def test_to_xml_string_dimensions
|
276
274
|
@ws.add_row [1,2,3]
|
@@ -278,22 +276,22 @@ class TestWorksheet < Test::Unit::TestCase
|
|
278
276
|
assert_equal(doc.xpath('//xmlns:worksheet/xmlns:dimension[@ref="A1:C1"]').size, 1)
|
279
277
|
end
|
280
278
|
|
281
|
-
def test_fit_to_page_assignation_does_nothing
|
282
|
-
|
283
|
-
|
284
|
-
end
|
279
|
+
# def test_fit_to_page_assignation_does_nothing
|
280
|
+
# @ws.fit_to_page = true
|
281
|
+
# assert_equal(@ws.fit_to_page?, false)
|
282
|
+
# end
|
285
283
|
|
286
|
-
def test_to_xml_string_selected
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
end
|
284
|
+
# def test_to_xml_string_selected
|
285
|
+
# @ws.selected = true
|
286
|
+
# doc = Nokogiri::XML(@ws.to_xml_string)
|
287
|
+
# assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView[@tabSelected=1]').size, 1)
|
288
|
+
# end
|
291
289
|
|
292
|
-
def test_to_xml_string_show_gridlines
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
end
|
290
|
+
# def test_to_xml_string_show_gridlines
|
291
|
+
# @ws.show_gridlines = false
|
292
|
+
# doc = Nokogiri::XML(@ws.to_xml_string)
|
293
|
+
# assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView[@showGridLines=0]').size, 1)
|
294
|
+
# end
|
297
295
|
|
298
296
|
def test_to_xml_string_auto_fit_data
|
299
297
|
@ws.add_row [1, "two"]
|
@@ -323,6 +321,13 @@ class TestWorksheet < Test::Unit::TestCase
|
|
323
321
|
assert_equal(doc.xpath('//xmlns:worksheet/xmlns:mergeCells/xmlns:mergeCell[@ref="E1:F1"]').size, 1)
|
324
322
|
end
|
325
323
|
|
324
|
+
def test_to_xml_string_merge_cells_row
|
325
|
+
row = @ws.add_row [1, "two"]
|
326
|
+
@ws.merge_cells row
|
327
|
+
doc = Nokogiri::XML(@ws.to_xml_string)
|
328
|
+
assert_equal(doc.xpath('//xmlns:worksheet/xmlns:mergeCells/xmlns:mergeCell[@ref="A1:B1"]').size, 1)
|
329
|
+
end
|
330
|
+
|
326
331
|
def test_to_xml_string_row_breaks
|
327
332
|
@ws.add_page_break("A1")
|
328
333
|
doc = Nokogiri::XML(@ws.to_xml_string)
|
@@ -432,15 +437,15 @@ class TestWorksheet < Test::Unit::TestCase
|
|
432
437
|
def test_relationships
|
433
438
|
@ws.add_row [1,2,3]
|
434
439
|
assert(@ws.relationships.empty?, "No Drawing relationship until you add a chart")
|
435
|
-
|
440
|
+
@ws.add_chart Axlsx::Pie3DChart
|
436
441
|
assert_equal(@ws.relationships.size, 1, "adding a chart creates the relationship")
|
437
|
-
|
442
|
+
@ws.add_chart Axlsx::Pie3DChart
|
438
443
|
assert_equal(@ws.relationships.size, 1, "multiple charts still only result in one relationship")
|
439
|
-
|
444
|
+
@ws.add_comment :text => 'builder', :author => 'bob', :ref => @ws.rows.last.cells.last
|
440
445
|
assert_equal(@ws.relationships.size, 3, "adding a comment adds 2 relationships")
|
441
|
-
|
446
|
+
@ws.add_comment :text => 'not that is a comment!', :author => 'travis', :ref => "A1"
|
442
447
|
assert_equal(@ws.relationships.size, 3, "adding multiple comments in the same worksheet should not add any additional comment relationships")
|
443
|
-
|
448
|
+
@ws.add_pivot_table 'G5:G6', 'A1:D10'
|
444
449
|
assert_equal(@ws.relationships.size, 4, "adding a pivot table adds 1 relationship")
|
445
450
|
end
|
446
451
|
|
@@ -476,7 +481,7 @@ class TestWorksheet < Test::Unit::TestCase
|
|
476
481
|
@ws.column_widths nil, 0.5
|
477
482
|
assert_equal(@ws.column_info[1].width, 0.5, 'eat my width')
|
478
483
|
assert_raise(ArgumentError, 'only accept unsigned ints') { @ws.column_widths 2, 7, -1 }
|
479
|
-
assert_raise(ArgumentError, 'only accept Integer
|
484
|
+
assert_raise(ArgumentError, 'only accept Integer or Float') { @ws.column_widths 2, 7, "-1" }
|
480
485
|
end
|
481
486
|
|
482
487
|
def test_protect_range
|
@@ -574,4 +579,14 @@ class TestWorksheet < Test::Unit::TestCase
|
|
574
579
|
assert_equal(1, @wb.worksheets.size)
|
575
580
|
end
|
576
581
|
|
582
|
+
def test_worksheet_only_includes_outline_pr_when_set
|
583
|
+
doc = Nokogiri::XML(@ws.to_xml_string)
|
584
|
+
assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetPr/xmlns:outlinePr').size, 0)
|
585
|
+
|
586
|
+
@ws.sheet_pr.outline_pr.summary_below = false
|
587
|
+
@ws.sheet_pr.outline_pr.summary_right = true
|
588
|
+
doc = Nokogiri::XML(@ws.to_xml_string)
|
589
|
+
assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetPr/xmlns:outlinePr').size, 1)
|
590
|
+
assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetPr/xmlns:outlinePr[@summaryBelow=0][@summaryRight=1]').size, 1)
|
591
|
+
end
|
577
592
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: axlsx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Randy Morgan
|
@@ -9,92 +9,130 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-02-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1.8'
|
18
21
|
- - ">="
|
19
22
|
- !ruby/object:Gem::Version
|
20
|
-
version: 1.
|
23
|
+
version: 1.8.2
|
21
24
|
type: :runtime
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
24
27
|
requirements:
|
28
|
+
- - "~>"
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '1.8'
|
25
31
|
- - ">="
|
26
32
|
- !ruby/object:Gem::Version
|
27
|
-
version: 1.
|
33
|
+
version: 1.8.2
|
28
34
|
- !ruby/object:Gem::Dependency
|
29
35
|
name: rubyzip
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
31
37
|
requirements:
|
32
38
|
- - "~>"
|
33
39
|
- !ruby/object:Gem::Version
|
34
|
-
version: 1.
|
40
|
+
version: '1.2'
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.2.1
|
35
44
|
type: :runtime
|
36
45
|
prerelease: false
|
37
46
|
version_requirements: !ruby/object:Gem::Requirement
|
38
47
|
requirements:
|
39
48
|
- - "~>"
|
40
49
|
- !ruby/object:Gem::Version
|
41
|
-
version: 1.
|
50
|
+
version: '1.2'
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.2.1
|
42
54
|
- !ruby/object:Gem::Dependency
|
43
55
|
name: htmlentities
|
44
56
|
requirement: !ruby/object:Gem::Requirement
|
45
57
|
requirements:
|
46
58
|
- - "~>"
|
47
59
|
- !ruby/object:Gem::Version
|
48
|
-
version: 4.3
|
60
|
+
version: '4.3'
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 4.3.4
|
49
64
|
type: :runtime
|
50
65
|
prerelease: false
|
51
66
|
version_requirements: !ruby/object:Gem::Requirement
|
52
67
|
requirements:
|
53
68
|
- - "~>"
|
54
69
|
- !ruby/object:Gem::Version
|
55
|
-
version: 4.3
|
70
|
+
version: '4.3'
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 4.3.4
|
74
|
+
- !ruby/object:Gem::Dependency
|
75
|
+
name: mimemagic
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0.3'
|
81
|
+
type: :runtime
|
82
|
+
prerelease: false
|
83
|
+
version_requirements: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - "~>"
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0.3'
|
56
88
|
- !ruby/object:Gem::Dependency
|
57
89
|
name: yard
|
58
90
|
requirement: !ruby/object:Gem::Requirement
|
59
91
|
requirements:
|
60
|
-
- - "
|
92
|
+
- - "~>"
|
61
93
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
94
|
+
version: 0.9.8
|
63
95
|
type: :development
|
64
96
|
prerelease: false
|
65
97
|
version_requirements: !ruby/object:Gem::Requirement
|
66
98
|
requirements:
|
67
|
-
- - "
|
99
|
+
- - "~>"
|
68
100
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
101
|
+
version: 0.9.8
|
70
102
|
- !ruby/object:Gem::Dependency
|
71
103
|
name: kramdown
|
72
104
|
requirement: !ruby/object:Gem::Requirement
|
73
105
|
requirements:
|
106
|
+
- - "~>"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '1.16'
|
74
109
|
- - ">="
|
75
110
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
111
|
+
version: 1.16.2
|
77
112
|
type: :development
|
78
113
|
prerelease: false
|
79
114
|
version_requirements: !ruby/object:Gem::Requirement
|
80
115
|
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '1.16'
|
81
119
|
- - ">="
|
82
120
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
121
|
+
version: 1.16.2
|
84
122
|
- !ruby/object:Gem::Dependency
|
85
123
|
name: timecop
|
86
124
|
requirement: !ruby/object:Gem::Requirement
|
87
125
|
requirements:
|
88
126
|
- - "~>"
|
89
127
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0.
|
128
|
+
version: 0.8.1
|
91
129
|
type: :development
|
92
130
|
prerelease: false
|
93
131
|
version_requirements: !ruby/object:Gem::Requirement
|
94
132
|
requirements:
|
95
133
|
- - "~>"
|
96
134
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0.
|
135
|
+
version: 0.8.1
|
98
136
|
description: " xlsx spreadsheet generation with charts, images, automated column
|
99
137
|
width, customizable styles and full schema validation. Axlsx helps you create beautiful
|
100
138
|
Office Open XML Spreadsheet documents ( Excel, Google Spreadsheets, Numbers, LibreOffice)
|
@@ -114,7 +152,6 @@ files:
|
|
114
152
|
- README.md
|
115
153
|
- Rakefile
|
116
154
|
- examples/2010_comments.rb
|
117
|
-
- examples/IMAGE1UP.JPEG
|
118
155
|
- examples/anchor_swapping.rb
|
119
156
|
- examples/auto_filter.rb
|
120
157
|
- examples/basic_charts.rb
|
@@ -148,10 +185,13 @@ files:
|
|
148
185
|
- lib/axlsx/content_type/override.rb
|
149
186
|
- lib/axlsx/doc_props/app.rb
|
150
187
|
- lib/axlsx/doc_props/core.rb
|
188
|
+
- lib/axlsx/drawing/area_chart.rb
|
189
|
+
- lib/axlsx/drawing/area_series.rb
|
151
190
|
- lib/axlsx/drawing/ax_data_source.rb
|
152
191
|
- lib/axlsx/drawing/axes.rb
|
153
192
|
- lib/axlsx/drawing/axis.rb
|
154
193
|
- lib/axlsx/drawing/bar_3D_chart.rb
|
194
|
+
- lib/axlsx/drawing/bar_chart.rb
|
155
195
|
- lib/axlsx/drawing/bar_series.rb
|
156
196
|
- lib/axlsx/drawing/bubble_chart.rb
|
157
197
|
- lib/axlsx/drawing/bubble_series.rb
|
@@ -210,12 +250,12 @@ files:
|
|
210
250
|
- lib/axlsx/stylesheet/xf.rb
|
211
251
|
- lib/axlsx/util/accessors.rb
|
212
252
|
- lib/axlsx/util/constants.rb
|
253
|
+
- lib/axlsx/util/mime_type_utils.rb
|
213
254
|
- lib/axlsx/util/options_parser.rb
|
214
255
|
- lib/axlsx/util/parser.rb
|
215
256
|
- lib/axlsx/util/serialized_attributes.rb
|
216
257
|
- lib/axlsx/util/simple_typed_list.rb
|
217
258
|
- lib/axlsx/util/storage.rb
|
218
|
-
- lib/axlsx/util/string.rb
|
219
259
|
- lib/axlsx/util/validators.rb
|
220
260
|
- lib/axlsx/version.rb
|
221
261
|
- lib/axlsx/workbook/defined_name.rb
|
@@ -249,6 +289,7 @@ files:
|
|
249
289
|
- lib/axlsx/workbook/worksheet/header_footer.rb
|
250
290
|
- lib/axlsx/workbook/worksheet/icon_set.rb
|
251
291
|
- lib/axlsx/workbook/worksheet/merged_cells.rb
|
292
|
+
- lib/axlsx/workbook/worksheet/outline_pr.rb
|
252
293
|
- lib/axlsx/workbook/worksheet/page_margins.rb
|
253
294
|
- lib/axlsx/workbook/worksheet/page_set_up_pr.rb
|
254
295
|
- lib/axlsx/workbook/worksheet/page_setup.rb
|
@@ -313,15 +354,19 @@ files:
|
|
313
354
|
- lib/schema/vml-wordprocessingDrawing.xsd
|
314
355
|
- lib/schema/wml.xsd
|
315
356
|
- lib/schema/xml.xsd
|
357
|
+
- test/axlsx.qcachegrind
|
316
358
|
- test/benchmark.rb
|
317
359
|
- test/content_type/tc_content_type.rb
|
318
360
|
- test/content_type/tc_default.rb
|
319
361
|
- test/content_type/tc_override.rb
|
320
362
|
- test/doc_props/tc_app.rb
|
321
363
|
- test/doc_props/tc_core.rb
|
364
|
+
- test/drawing/tc_area_chart.rb
|
365
|
+
- test/drawing/tc_area_series.rb
|
322
366
|
- test/drawing/tc_axes.rb
|
323
367
|
- test/drawing/tc_axis.rb
|
324
368
|
- test/drawing/tc_bar_3D_chart.rb
|
369
|
+
- test/drawing/tc_bar_chart.rb
|
325
370
|
- test/drawing/tc_bar_series.rb
|
326
371
|
- test/drawing/tc_bubble_chart.rb
|
327
372
|
- test/drawing/tc_bubble_series.rb
|
@@ -383,6 +428,7 @@ files:
|
|
383
428
|
- test/tc_axlsx.rb
|
384
429
|
- test/tc_helper.rb
|
385
430
|
- test/tc_package.rb
|
431
|
+
- test/util/tc_mime_type_utils.rb
|
386
432
|
- test/util/tc_serialized_attributes.rb
|
387
433
|
- test/util/tc_simple_typed_list.rb
|
388
434
|
- test/util/tc_validators.rb
|
@@ -406,6 +452,7 @@ files:
|
|
406
452
|
- test/workbook/worksheet/tc_date_time_converter.rb
|
407
453
|
- test/workbook/worksheet/tc_header_footer.rb
|
408
454
|
- test/workbook/worksheet/tc_icon_set.rb
|
455
|
+
- test/workbook/worksheet/tc_outline_pr.rb
|
409
456
|
- test/workbook/worksheet/tc_page_margins.rb
|
410
457
|
- test/workbook/worksheet/tc_page_set_up_pr.rb
|
411
458
|
- test/workbook/worksheet/tc_page_setup.rb
|
@@ -447,20 +494,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
447
494
|
version: 1.3.1
|
448
495
|
requirements: []
|
449
496
|
rubyforge_project:
|
450
|
-
rubygems_version: 2.
|
497
|
+
rubygems_version: 2.6.13
|
451
498
|
signing_key:
|
452
499
|
specification_version: 4
|
453
500
|
summary: Excel OOXML (xlsx) with charts, styles, images and autowidth columns.
|
454
501
|
test_files:
|
502
|
+
- test/axlsx.qcachegrind
|
455
503
|
- test/benchmark.rb
|
456
504
|
- test/content_type/tc_content_type.rb
|
457
505
|
- test/content_type/tc_default.rb
|
458
506
|
- test/content_type/tc_override.rb
|
459
507
|
- test/doc_props/tc_app.rb
|
460
508
|
- test/doc_props/tc_core.rb
|
509
|
+
- test/drawing/tc_area_chart.rb
|
510
|
+
- test/drawing/tc_area_series.rb
|
461
511
|
- test/drawing/tc_axes.rb
|
462
512
|
- test/drawing/tc_axis.rb
|
463
513
|
- test/drawing/tc_bar_3D_chart.rb
|
514
|
+
- test/drawing/tc_bar_chart.rb
|
464
515
|
- test/drawing/tc_bar_series.rb
|
465
516
|
- test/drawing/tc_bubble_chart.rb
|
466
517
|
- test/drawing/tc_bubble_series.rb
|
@@ -522,6 +573,7 @@ test_files:
|
|
522
573
|
- test/tc_axlsx.rb
|
523
574
|
- test/tc_helper.rb
|
524
575
|
- test/tc_package.rb
|
576
|
+
- test/util/tc_mime_type_utils.rb
|
525
577
|
- test/util/tc_serialized_attributes.rb
|
526
578
|
- test/util/tc_simple_typed_list.rb
|
527
579
|
- test/util/tc_validators.rb
|
@@ -545,6 +597,7 @@ test_files:
|
|
545
597
|
- test/workbook/worksheet/tc_date_time_converter.rb
|
546
598
|
- test/workbook/worksheet/tc_header_footer.rb
|
547
599
|
- test/workbook/worksheet/tc_icon_set.rb
|
600
|
+
- test/workbook/worksheet/tc_outline_pr.rb
|
548
601
|
- test/workbook/worksheet/tc_page_margins.rb
|
549
602
|
- test/workbook/worksheet/tc_page_set_up_pr.rb
|
550
603
|
- test/workbook/worksheet/tc_page_setup.rb
|
@@ -566,4 +619,3 @@ test_files:
|
|
566
619
|
- test/workbook/worksheet/tc_table_style_info.rb
|
567
620
|
- test/workbook/worksheet/tc_worksheet.rb
|
568
621
|
- test/workbook/worksheet/tc_worksheet_hyperlink.rb
|
569
|
-
has_rdoc: axlsx
|