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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/README.md +17 -20
  4. data/Rakefile +0 -1
  5. data/examples/conditional_formatting/example_conditional_formatting.rb +15 -0
  6. data/examples/example.rb +31 -1
  7. data/lib/axlsx.rb +9 -4
  8. data/lib/axlsx/drawing/area_chart.rb +99 -0
  9. data/lib/axlsx/drawing/area_series.rb +110 -0
  10. data/lib/axlsx/drawing/bar_chart.rb +143 -0
  11. data/lib/axlsx/drawing/chart.rb +8 -1
  12. data/lib/axlsx/drawing/d_lbls.rb +3 -3
  13. data/lib/axlsx/drawing/drawing.rb +3 -0
  14. data/lib/axlsx/drawing/line_series.rb +18 -1
  15. data/lib/axlsx/drawing/num_val.rb +3 -1
  16. data/lib/axlsx/drawing/one_cell_anchor.rb +2 -1
  17. data/lib/axlsx/drawing/pic.rb +24 -17
  18. data/lib/axlsx/drawing/scaling.rb +2 -2
  19. data/lib/axlsx/drawing/scatter_series.rb +16 -2
  20. data/lib/axlsx/drawing/str_val.rb +3 -1
  21. data/lib/axlsx/drawing/title.rb +19 -1
  22. data/lib/axlsx/drawing/two_cell_anchor.rb +6 -1
  23. data/lib/axlsx/drawing/view_3D.rb +2 -2
  24. data/lib/axlsx/package.rb +7 -16
  25. data/lib/axlsx/rels/relationships.rb +5 -2
  26. data/lib/axlsx/stylesheet/num_fmt.rb +9 -0
  27. data/lib/axlsx/stylesheet/styles.rb +1 -1
  28. data/lib/axlsx/util/constants.rb +8 -5
  29. data/lib/axlsx/util/mime_type_utils.rb +11 -0
  30. data/lib/axlsx/util/simple_typed_list.rb +1 -1
  31. data/lib/axlsx/util/validators.rb +14 -9
  32. data/lib/axlsx/version.rb +1 -1
  33. data/lib/axlsx/workbook/workbook.rb +19 -1
  34. data/lib/axlsx/workbook/workbook_view.rb +5 -3
  35. data/lib/axlsx/workbook/worksheet/cell.rb +26 -19
  36. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +15 -5
  37. data/lib/axlsx/workbook/worksheet/cfvos.rb +3 -0
  38. data/lib/axlsx/workbook/worksheet/cols.rb +5 -2
  39. data/lib/axlsx/workbook/worksheet/merged_cells.rb +2 -0
  40. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -0
  41. data/lib/axlsx/workbook/worksheet/pivot_table.rb +36 -13
  42. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +4 -1
  43. data/lib/axlsx/workbook/worksheet/rich_text.rb +23 -3
  44. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +28 -32
  45. data/lib/axlsx/workbook/worksheet/row.rb +7 -0
  46. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +21 -3
  47. data/lib/axlsx/workbook/worksheet/tables.rb +3 -0
  48. data/lib/axlsx/workbook/worksheet/worksheet.rb +8 -51
  49. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +10 -10
  50. data/test/axlsx.qcachegrind +2226 -0
  51. data/test/drawing/tc_area_chart.rb +39 -0
  52. data/test/drawing/tc_area_series.rb +71 -0
  53. data/test/drawing/tc_bar_chart.rb +71 -0
  54. data/test/drawing/tc_chart.rb +23 -10
  55. data/test/drawing/tc_drawing.rb +2 -2
  56. data/test/drawing/tc_line_series.rb +38 -5
  57. data/test/drawing/tc_pic.rb +11 -19
  58. data/test/drawing/tc_scatter_series.rb +16 -5
  59. data/test/drawing/tc_str_val.rb +9 -0
  60. data/test/drawing/tc_title.rb +5 -0
  61. data/test/stylesheet/tc_styles.rb +2 -2
  62. data/test/tc_axlsx.rb +31 -0
  63. data/test/tc_helper.rb +3 -1
  64. data/test/tc_package.rb +12 -0
  65. data/test/util/tc_mime_type_utils.rb +13 -0
  66. data/test/util/tc_simple_typed_list.rb +1 -1
  67. data/test/util/tc_validators.rb +34 -10
  68. data/test/workbook/tc_shared_strings_table.rb +16 -1
  69. data/test/workbook/tc_workbook.rb +22 -1
  70. data/test/workbook/worksheet/tc_cell.rb +53 -11
  71. data/test/workbook/worksheet/tc_outline_pr.rb +19 -0
  72. data/test/workbook/worksheet/tc_pivot_table.rb +21 -6
  73. data/test/workbook/worksheet/tc_rich_text_run.rb +11 -11
  74. data/test/workbook/worksheet/tc_row.rb +5 -0
  75. data/test/workbook/worksheet/tc_sheet_pr.rb +26 -4
  76. data/test/workbook/worksheet/tc_table.rb +2 -3
  77. data/test/workbook/worksheet/tc_worksheet.rb +53 -38
  78. metadata +72 -20
  79. data/examples/IMAGE1UP.JPEG +0 -0
  80. 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:D5')
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) { @c.family = -1.1 }
133
- assert_nothing_raised { @c.family = 5 }
134
- assert_equal(@c.family, 5)
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
- :transtion_evaluation => true,
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
- assert_equal value, @sheet_pr.send(key)
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
- table = @ws.add_table("A1:D5")
50
+ @ws.add_table("A1:D5")
51
51
  assert_equal(@ws.relationships.size, 1, "adding a table adds a relationship")
52
- table = @ws.add_table("F1:J5")
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, :selected => true, :show_gridlines => false)
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
- assert_raise(ArgumentError) { @ws.show_gridlines = -1.1 }
118
- assert_nothing_raised { @ws.show_gridlines = false }
119
- assert_equal(@ws.show_gridlines, false)
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
- assert_raise(ArgumentError) { @ws.selected = -1.1 }
124
- assert_nothing_raised { @ws.selected = true }
125
- assert_equal(@ws.selected, true)
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
- @ws.page_setup.fit_to_width = 1
271
- doc = Nokogiri::XML(@ws.to_xml_string)
272
- assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetPr/xmlns:pageSetUpPr[@fitToPage=1]').size, 1)
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
- @ws.fit_to_page = true
283
- assert_equal(@ws.fit_to_page?, false)
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
- @ws.selected = true
288
- doc = Nokogiri::XML(@ws.to_xml_string)
289
- assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView[@tabSelected=1]').size, 1)
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
- @ws.show_gridlines = false
294
- doc = Nokogiri::XML(@ws.to_xml_string)
295
- assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView[@showGridLines=0]').size, 1)
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
- c = @ws.add_chart Axlsx::Pie3DChart
440
+ @ws.add_chart Axlsx::Pie3DChart
436
441
  assert_equal(@ws.relationships.size, 1, "adding a chart creates the relationship")
437
- c = @ws.add_chart Axlsx::Pie3DChart
442
+ @ws.add_chart Axlsx::Pie3DChart
438
443
  assert_equal(@ws.relationships.size, 1, "multiple charts still only result in one relationship")
439
- c = @ws.add_comment :text => 'builder', :author => 'bob', :ref => @ws.rows.last.cells.last
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
- c = @ws.add_comment :text => 'not that is a comment!', :author => 'travis', :ref => "A1"
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
- c = @ws.add_pivot_table 'G5:G6', 'A1:D10'
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, Float or Fixnum') { @ws.column_widths 2, 7, "-1" }
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: 2.1.0.pre
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: 2015-03-14 00:00:00.000000000 Z
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.4.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.4.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.1.7
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.1.7
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.1
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.1
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: '0'
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: '0'
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: '0'
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: '0'
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.6.1
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.6.1
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.4.5
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