write_xlsx 0.51.0 → 0.54.0

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 (160) hide show
  1. data/.gitignore +39 -0
  2. data/Gemfile +4 -14
  3. data/LICENSE.txt +3 -1
  4. data/README.rdoc +5 -0
  5. data/Rakefile +4 -71
  6. data/examples/chart_radar.rb +127 -0
  7. data/examples/chart_secondary_axis.rb +1 -1
  8. data/lib/write_xlsx/chart/area.rb +7 -18
  9. data/lib/write_xlsx/chart/bar.rb +20 -23
  10. data/lib/write_xlsx/chart/column.rb +7 -20
  11. data/lib/write_xlsx/chart/radar.rb +94 -0
  12. data/lib/write_xlsx/chart/stock.rb +6 -0
  13. data/lib/write_xlsx/chart.rb +317 -116
  14. data/lib/write_xlsx/package/xml_writer_simple.rb +2 -2
  15. data/lib/write_xlsx/version.rb +5 -0
  16. data/test/chart/test_write_a_latin.rb +22 -0
  17. data/test/chart/test_write_auto.rb +1 -1
  18. data/test/chart/test_write_ax_id.rb +1 -1
  19. data/test/chart/test_write_ax_pos.rb +1 -1
  20. data/test/chart/test_write_cross_ax.rb +1 -1
  21. data/test/chart/test_write_crosses.rb +1 -1
  22. data/test/chart/test_write_d_lbls.rb +18 -18
  23. data/test/chart/test_write_idx.rb +1 -1
  24. data/test/chart/test_write_label_align.rb +1 -1
  25. data/test/chart/test_write_label_offset.rb +1 -1
  26. data/test/chart/test_write_lang.rb +1 -1
  27. data/test/chart/test_write_layout.rb +1 -1
  28. data/test/chart/test_write_legend.rb +1 -1
  29. data/test/chart/test_write_legend_pos.rb +1 -1
  30. data/test/chart/test_write_major_gridlines.rb +2 -2
  31. data/test/chart/test_write_marker.rb +1 -1
  32. data/test/chart/test_write_marker_size.rb +1 -1
  33. data/test/chart/test_write_marker_value.rb +1 -1
  34. data/test/chart/test_write_num_cache.rb +1 -1
  35. data/test/chart/test_write_number_format.rb +40 -2
  36. data/test/chart/test_write_order.rb +1 -1
  37. data/test/chart/test_write_orientation.rb +1 -1
  38. data/test/chart/test_write_page_margins.rb +1 -1
  39. data/test/chart/test_write_page_setup.rb +1 -1
  40. data/test/chart/test_write_plot_vis_only.rb +1 -1
  41. data/test/chart/test_write_pt_count.rb +1 -1
  42. data/test/chart/test_write_style.rb +1 -1
  43. data/test/chart/test_write_symbol.rb +1 -1
  44. data/test/chart/test_write_tick_lbl_pos.rb +1 -1
  45. data/test/drawing/test_write_a_graphic_frame_locks.rb +1 -1
  46. data/test/drawing/test_write_c_chart.rb +1 -1
  47. data/test/drawing/test_write_c_nv_graphic_frame_pr.rb +2 -2
  48. data/test/drawing/test_write_c_nv_pr.rb +1 -1
  49. data/test/drawing/test_write_ext.rb +1 -1
  50. data/test/drawing/test_write_pos.rb +1 -1
  51. data/test/drawing/test_write_xfrm_extension.rb +1 -1
  52. data/test/drawing/test_write_xfrm_offset.rb +1 -1
  53. data/test/helper.rb +1 -1
  54. data/test/package/content_types/test_write_default.rb +1 -1
  55. data/test/package/content_types/test_write_override.rb +1 -1
  56. data/test/package/table/test_write_auto_filter.rb +1 -1
  57. data/test/package/table/test_write_table_column.rb +1 -1
  58. data/test/package/table/test_write_table_style_info.rb +1 -1
  59. data/test/package/vml/test_write_fill.rb +1 -1
  60. data/test/package/vml/test_write_idmap.rb +1 -1
  61. data/test/package/vml/test_write_move_with_cells.rb +1 -1
  62. data/test/package/vml/test_write_path.rb +2 -2
  63. data/test/package/vml/test_write_shadow.rb +1 -1
  64. data/test/package/vml/test_write_shapelayout.rb +1 -1
  65. data/test/package/vml/test_write_shapetype.rb +1 -1
  66. data/test/package/vml/test_write_size_with_cells.rb +1 -1
  67. data/test/package/vml/test_write_stroke.rb +1 -1
  68. data/test/perl_output/chart_radar.xlsx +0 -0
  69. data/test/perl_output/chart_secondary_axis.xlsx +0 -0
  70. data/test/regression/test_chart_axis22.rb +45 -0
  71. data/test/regression/test_chart_axis23.rb +46 -0
  72. data/test/regression/test_chart_axis24.rb +46 -0
  73. data/test/regression/test_chart_font01.rb +54 -0
  74. data/test/regression/test_chart_font02.rb +56 -0
  75. data/test/regression/test_chart_font03.rb +59 -0
  76. data/test/regression/test_chart_font04.rb +57 -0
  77. data/test/regression/test_chart_font05.rb +54 -0
  78. data/test/regression/test_chart_font06.rb +84 -0
  79. data/test/regression/test_chart_radar01.rb +39 -0
  80. data/test/regression/test_chart_radar02.rb +43 -0
  81. data/test/regression/test_chart_radar03.rb +43 -0
  82. data/test/regression/test_escapes04.rb +30 -0
  83. data/test/regression/test_escapes05.rb +31 -0
  84. data/test/regression/test_rich_string01.rb +1 -1
  85. data/test/regression/test_rich_string02.rb +1 -1
  86. data/test/regression/test_rich_string03.rb +1 -1
  87. data/test/regression/test_rich_string04.rb +1 -1
  88. data/test/regression/test_rich_string05.rb +1 -1
  89. data/test/regression/test_rich_string06.rb +1 -1
  90. data/test/regression/test_rich_string07.rb +1 -1
  91. data/test/regression/test_rich_string08.rb +1 -1
  92. data/test/regression/test_rich_string09.rb +1 -1
  93. data/test/regression/test_rich_string10.rb +1 -1
  94. data/test/regression/test_rich_string11.rb +1 -1
  95. data/test/regression/test_shape_connect01.rb +1 -1
  96. data/test/regression/test_shape_connect02.rb +1 -1
  97. data/test/regression/test_shape_connect03.rb +1 -1
  98. data/test/regression/test_shape_connect04.rb +1 -1
  99. data/test/regression/xlsx_files/chart_axis22.xlsx +0 -0
  100. data/test/regression/xlsx_files/chart_axis23.xlsx +0 -0
  101. data/test/regression/xlsx_files/chart_axis24.xlsx +0 -0
  102. data/test/regression/xlsx_files/chart_font01.xlsx +0 -0
  103. data/test/regression/xlsx_files/chart_font02.xlsx +0 -0
  104. data/test/regression/xlsx_files/chart_font03.xlsx +0 -0
  105. data/test/regression/xlsx_files/chart_font04.xlsx +0 -0
  106. data/test/regression/xlsx_files/chart_font05.xlsx +0 -0
  107. data/test/regression/xlsx_files/chart_font06.xlsx +0 -0
  108. data/test/regression/xlsx_files/chart_radar01.xlsx +0 -0
  109. data/test/regression/xlsx_files/chart_radar02.xlsx +0 -0
  110. data/test/regression/xlsx_files/chart_radar03.xlsx +0 -0
  111. data/test/regression/xlsx_files/escapes04.xlsx +0 -0
  112. data/test/regression/xlsx_files/escapes05.xlsx +0 -0
  113. data/test/test_example_match.rb +119 -1
  114. data/test/test_xml_writer_simple.rb +4 -4
  115. data/test/worksheet/test_write_autofilter.rb +21 -21
  116. data/test/worksheet/test_write_brk.rb +1 -1
  117. data/test/worksheet/test_write_col_breaks.rb +2 -2
  118. data/test/worksheet/test_write_col_info.rb +6 -6
  119. data/test/worksheet/test_write_custom_filter.rb +1 -1
  120. data/test/worksheet/test_write_custom_filters.rb +2 -2
  121. data/test/worksheet/test_write_dimension.rb +9 -9
  122. data/test/worksheet/test_write_ext.rb +1 -1
  123. data/test/worksheet/test_write_ext_lst.rb +1 -1
  124. data/test/worksheet/test_write_filter.rb +1 -1
  125. data/test/worksheet/test_write_filter_column.rb +1 -1
  126. data/test/worksheet/test_write_filters.rb +3 -3
  127. data/test/worksheet/test_write_hyperlink.rb +4 -4
  128. data/test/worksheet/test_write_hyperlinks.rb +2 -2
  129. data/test/worksheet/test_write_legacy_drawing.rb +1 -1
  130. data/test/worksheet/test_write_merge_cell.rb +1 -1
  131. data/test/worksheet/test_write_mx_plv.rb +1 -1
  132. data/test/worksheet/test_write_page_margins.rb +11 -11
  133. data/test/worksheet/test_write_page_set_up_pr.rb +1 -1
  134. data/test/worksheet/test_write_page_setup.rb +4 -4
  135. data/test/worksheet/test_write_pane.rb +14 -14
  136. data/test/worksheet/test_write_phonetic_pr.rb +1 -1
  137. data/test/worksheet/test_write_print_options.rb +5 -5
  138. data/test/worksheet/test_write_row_breaks.rb +2 -2
  139. data/test/worksheet/test_write_row_element.rb +1 -1
  140. data/test/worksheet/test_write_selection.rb +1 -1
  141. data/test/worksheet/test_write_sheet_calc_pr.rb +1 -1
  142. data/test/worksheet/test_write_sheet_data.rb +1 -1
  143. data/test/worksheet/test_write_sheet_format_pr.rb +1 -1
  144. data/test/worksheet/test_write_sheet_pr.rb +3 -3
  145. data/test/worksheet/test_write_sheet_protection.rb +18 -18
  146. data/test/worksheet/test_write_sheet_view.rb +6 -6
  147. data/test/worksheet/test_write_sheet_view1.rb +6 -6
  148. data/test/worksheet/test_write_sheet_view2.rb +5 -5
  149. data/test/worksheet/test_write_sheet_view3.rb +8 -8
  150. data/test/worksheet/test_write_sheet_view4.rb +8 -8
  151. data/test/worksheet/test_write_sheet_view5.rb +7 -7
  152. data/test/worksheet/test_write_sheet_view6.rb +4 -4
  153. data/test/worksheet/test_write_sheet_view7.rb +6 -6
  154. data/test/worksheet/test_write_sheet_view8.rb +4 -4
  155. data/test/worksheet/test_write_sheet_view9.rb +4 -4
  156. data/test/worksheet/test_write_tab_color.rb +1 -1
  157. data/write_xlsx.gemspec +18 -935
  158. metadata +881 -32
  159. data/VERSION +0 -1
  160. data/test/chart/test_write_num_fmt.rb +0 -16
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionChartRadar01 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_chart_radar01
14
+ @xlsx = 'chart_radar01.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+ chart = workbook.add_chart(:type => 'radar', :embedded => 1)
18
+
19
+ # For testing, copy the randomly generated axis ids in the target xlsx file.
20
+ chart.instance_variable_set(:@axis_ids, [56801152, 56802688])
21
+
22
+ data = [
23
+ [1, 2, 3, 4, 5],
24
+ [2, 4, 6, 8, 10],
25
+ [3, 6, 9, 12, 15]
26
+ ]
27
+
28
+ worksheet.write('A1', data)
29
+
30
+ chart.add_series(:values => '=Sheet1!$A$1:$A$5')
31
+ chart.add_series(:values => '=Sheet1!$B$1:$B$5')
32
+ chart.add_series(:values => '=Sheet1!$C$1:$C$5')
33
+
34
+ worksheet.insert_chart('E9', chart)
35
+
36
+ workbook.close
37
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
38
+ end
39
+ end
@@ -0,0 +1,43 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionChartRadar02 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_chart_radar02
14
+ @xlsx = 'chart_radar02.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+ chart = workbook.add_chart(
18
+ :type => 'radar',
19
+ :embedded => 1,
20
+ :subtype => 'with_markers'
21
+ )
22
+
23
+ # For testing, copy the randomly generated axis ids in the target xlsx file.
24
+ chart.instance_variable_set(:@axis_ids, [48543616, 48545152])
25
+
26
+ data = [
27
+ [1, 2, 3, 4, 5],
28
+ [2, 4, 6, 8, 10],
29
+ [3, 6, 9, 12, 15]
30
+ ]
31
+
32
+ worksheet.write('A1', data)
33
+
34
+ chart.add_series(:values => '=Sheet1!$A$1:$A$5')
35
+ chart.add_series(:values => '=Sheet1!$B$1:$B$5')
36
+ chart.add_series(:values => '=Sheet1!$C$1:$C$5')
37
+
38
+ worksheet.insert_chart('E9', chart)
39
+
40
+ workbook.close
41
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionChartRadar03 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_chart_radar03
14
+ @xlsx = 'chart_radar03.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+ chart = workbook.add_chart(
18
+ :type => 'radar',
19
+ :embedded => 1,
20
+ :subtype => 'filled'
21
+ )
22
+
23
+ # For testing, copy the randomly generated axis ids in the target xlsx file.
24
+ chart.instance_variable_set(:@axis_ids, [56802304, 56845440])
25
+
26
+ data = [
27
+ [1, 2, 3, 4, 5],
28
+ [2, 4, 6, 8, 10],
29
+ [3, 6, 9, 12, 15]
30
+ ]
31
+
32
+ worksheet.write('A1', data)
33
+
34
+ chart.add_series(:values => '=Sheet1!$A$1:$A$5')
35
+ chart.add_series(:values => '=Sheet1!$B$1:$B$5')
36
+ chart.add_series(:values => '=Sheet1!$C$1:$C$5')
37
+
38
+ worksheet.insert_chart('E9', chart)
39
+
40
+ workbook.close
41
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
42
+ end
43
+ end
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionEscapes04 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_chart_escapes04
14
+ @xlsx = 'escapes04.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.write_url('A1', 'http://www.perl.com/?a=1&b=2')
19
+
20
+ workbook.close
21
+ compare_xlsx_for_regression(
22
+ File.join(@regression_output, @xlsx),
23
+ @xlsx,
24
+ nil,
25
+ {
26
+ 'xl/workbook.xml' => ['<workbookView']
27
+ }
28
+ )
29
+ end
30
+ end
@@ -0,0 +1,31 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionEscapes05 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_chart_escapes05
14
+ @xlsx = 'escapes05.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet1 = workbook.add_worksheet('Start')
17
+ worksheet2 = workbook.add_worksheet('A & B')
18
+
19
+ worksheet1.write_url('A1', "internal:'A & B'!A1", 'Jump to A & B')
20
+
21
+ workbook.close
22
+ compare_xlsx_for_regression(
23
+ File.join(@regression_output, @xlsx),
24
+ @xlsx,
25
+ nil,
26
+ {
27
+ 'xl/workbook.xml' => ['<workbookView']
28
+ }
29
+ )
30
+ end
31
+ end
@@ -23,6 +23,6 @@ class TestRegressionRichString01 < Test::Unit::TestCase
23
23
  worksheet.write_rich_string('A3', 'a', bold, 'bc', 'defg')
24
24
 
25
25
  workbook.close
26
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
26
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
27
27
  end
28
28
  end
@@ -23,6 +23,6 @@ class TestRegressionRichString02 < Test::Unit::TestCase
23
23
  worksheet.write_rich_string('A3', 'abcd', italic, 'ef', 'g')
24
24
 
25
25
  workbook.close
26
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
26
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
27
27
  end
28
28
  end
@@ -23,6 +23,6 @@ class TestRegressionRichString03 < Test::Unit::TestCase
23
23
  worksheet.write_rich_string('A3', bold, 'abc', 'defg')
24
24
 
25
25
  workbook.close
26
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
26
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
27
27
  end
28
28
  end
@@ -23,6 +23,6 @@ class TestRegressionRichString04 < Test::Unit::TestCase
23
23
  worksheet.write_rich_string('A3', bold, 'abc', italic, 'defg')
24
24
 
25
25
  workbook.close
26
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
26
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
27
27
  end
28
28
  end
@@ -25,6 +25,6 @@ class TestRegressionRichString05 < Test::Unit::TestCase
25
25
  worksheet.write_rich_string('A3', 'This is ', bold, 'bold', ' and this is ', italic, 'italic')
26
26
 
27
27
  workbook.close
28
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
28
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
29
29
  end
30
30
  end
@@ -22,6 +22,6 @@ class TestRegressionRichString06 < Test::Unit::TestCase
22
22
  worksheet.write_rich_string('A3', 'ab', red, 'cde', 'fg')
23
23
 
24
24
  workbook.close
25
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
25
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
26
26
  end
27
27
  end
@@ -28,6 +28,6 @@ class TestRegressionRichString07 < Test::Unit::TestCase
28
28
  worksheet.write_rich_string('F8', italic, 'abcd', 'efg')
29
29
 
30
30
  workbook.close
31
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
31
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
32
32
  end
33
33
  end
@@ -24,6 +24,6 @@ class TestRegressionRichString08 < Test::Unit::TestCase
24
24
  worksheet.write_rich_string('A3', 'ab', bold, 'cd', 'efg', format)
25
25
 
26
26
  workbook.close
27
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
27
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
28
28
  end
29
29
  end
@@ -26,6 +26,6 @@ class TestRegressionRichString09 < Test::Unit::TestCase
26
26
  worksheet.write_rich_string('A3', 'a', bold, bold, 'bc', 'defg')
27
27
 
28
28
  workbook.close
29
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
29
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
30
30
  end
31
31
  end
@@ -25,6 +25,6 @@ class TestRegressionRichString10 < Test::Unit::TestCase
25
25
  worksheet.write_rich_string('A3', ' a', bold, 'bc', 'defg ')
26
26
 
27
27
  workbook.close
28
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
28
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
29
29
  end
30
30
  end
@@ -24,6 +24,6 @@ class TestRegressionRichString11 < Test::Unit::TestCase
24
24
  worksheet.write_rich_string('A3', 'a', bold, smiley, 'defg')
25
25
 
26
26
  workbook.close
27
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
27
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
28
28
  end
29
29
  end
@@ -41,6 +41,6 @@ class TestRegressionShapeConnect01 < Test::Unit::TestCase
41
41
  worksheet.insert_shape('A1', cxn_shape, 0, 0)
42
42
 
43
43
  workbook.close
44
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
44
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
45
45
  end
46
46
  end
@@ -37,6 +37,6 @@ class TestRegressionShapeConnect02 < Test::Unit::TestCase
37
37
  worksheet.insert_shape('A1', cxn_shape, 0, 0)
38
38
 
39
39
  workbook.close
40
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
40
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
41
41
  end
42
42
  end
@@ -73,6 +73,6 @@ class TestRegressionShapeConnect03 < Test::Unit::TestCase
73
73
  worksheet.insert_shape('A1', cxn_shape, 0, 0)
74
74
 
75
75
  workbook.close
76
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
76
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
77
77
  end
78
78
  end
@@ -70,6 +70,6 @@ class TestRegressionShapeConnect04 < Test::Unit::TestCase
70
70
  worksheet.insert_shape('A1', cxn_shape, 0, 0)
71
71
 
72
72
  workbook.close
73
- compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,)
73
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
74
74
  end
75
75
  end
@@ -572,6 +572,124 @@ EOS
572
572
  compare_xlsx(File.join(@perl_output, @xlsx), @xlsx)
573
573
  end
574
574
 
575
+ def test_chart_radar
576
+ @xlsx = 'chart_radar.xlsx'
577
+ workbook = WriteXLSX.new(@xlsx)
578
+ worksheet = workbook.add_worksheet
579
+ bold = workbook.add_format(:bold => 1)
580
+
581
+ # Add the worksheet data that the charts will refer to.
582
+ headings = [ 'Number', 'Batch 1', 'Batch 2' ]
583
+ data = [
584
+ [ 2, 3, 4, 5, 6, 7 ],
585
+ [ 30, 60, 70, 50, 40, 30 ],
586
+ [ 25, 40, 50, 30, 50, 40 ]
587
+ ]
588
+
589
+ worksheet.write('A1', headings, bold)
590
+ worksheet.write('A2', data)
591
+
592
+ # Create a new chart object. In this case an embedded chart.
593
+ chart1 = workbook.add_chart(:type => 'radar', :embedded => 1)
594
+
595
+ # Configure the first series.
596
+ chart1.add_series(
597
+ :name => '=Sheet1!$B$1',
598
+ :categories => '=Sheet1!$A$2:$A$7',
599
+ :values => '=Sheet1!$B$2:$B$7'
600
+ )
601
+
602
+ # Configure second series. Note alternative use of array ref to define
603
+ # ranges: [ sheetname, row_start, row_end, col_start, col_end ].
604
+ chart1.add_series(
605
+ :name => '=Sheet1!$C$1',
606
+ :categories => [ 'Sheet1', 1, 6, 0, 0 ],
607
+ :values => [ 'Sheet1', 1, 6, 2, 2 ]
608
+ )
609
+
610
+ # Add a chart title and some axis labels.
611
+ chart1.set_title(:name => 'Results of sample analysis')
612
+ chart1.set_x_axis(:name => 'Test number')
613
+ chart1.set_y_axis(:name => 'Sample length (mm)')
614
+
615
+ # Set an Excel chart style. Blue colors with white outline and shadow.
616
+ chart1.set_style(11)
617
+
618
+ # Insert the chart into the worksheet (with an offset).
619
+ worksheet.insert_chart('D2', chart1, 25, 10)
620
+
621
+ #
622
+ # Create a with_markers chart sub-type
623
+ #
624
+ chart2 = workbook.add_chart(
625
+ :type => 'radar',
626
+ :embedded => 1,
627
+ :subtype => 'with_markers'
628
+ )
629
+
630
+ # Configure the first series.
631
+ chart2.add_series(
632
+ :name => '=Sheet1!$B$1',
633
+ :categories => '=Sheet1!$A$2:$A$7',
634
+ :values => '=Sheet1!$B$2:$B$7'
635
+ )
636
+
637
+ # Configure second series.
638
+ chart2.add_series(
639
+ :name => '=Sheet1!$C$1',
640
+ :categories => [ 'Sheet1', 1, 6, 0, 0 ],
641
+ :values => [ 'Sheet1', 1, 6, 2, 2 ]
642
+ )
643
+
644
+ # Add a chart title and some axis labels.
645
+ chart2.set_title(:name => 'Stacked Chart')
646
+ chart2.set_x_axis(:name => 'Test number')
647
+ chart2.set_y_axis(:name => 'Sample length (mm)')
648
+
649
+ # Set an Excel chart style. Blue colors with white outline and shadow.
650
+ chart2.set_style(12)
651
+
652
+ # Insert the chart into the worksheet (with an offset).
653
+ worksheet.insert_chart('D18', chart2, 25, 11)
654
+
655
+ #
656
+ # Create a filled chart sub-type
657
+ #
658
+ chart3 = workbook.add_chart(
659
+ :type => 'radar',
660
+ :embedded => 1,
661
+ :subtype => 'filled'
662
+ )
663
+
664
+ # Configure the first series.
665
+ chart3.add_series(
666
+ :name => '=Sheet1!$B$1',
667
+ :categories => '=Sheet1!$A$2:$A$7',
668
+ :values => '=Sheet1!$B$2:$B$7'
669
+ )
670
+
671
+ # Configure second series.
672
+ chart3.add_series(
673
+ :name => '=Sheet1!$C$1',
674
+ :categories => [ 'Sheet1', 1, 6, 0, 0 ],
675
+ :values => [ 'Sheet1', 1, 6, 2, 2 ]
676
+ )
677
+
678
+ # Add a chart title and some axis labels.
679
+ chart3.set_title(:name => 'Percent Stacked Chart')
680
+ chart3.set_x_axis(:name => 'Test number')
681
+ chart3.set_y_axis(:name => 'Sample length (mm)')
682
+
683
+ # Set an Excel chart style. Blue colors with white outline and shadow.
684
+ chart3.set_style(13)
685
+
686
+ # Insert the chart into the worksheet (with an offset).
687
+ worksheet.insert_chart('D34', chart3, 25, 11)
688
+
689
+ workbook.close
690
+ compare_xlsx(File.join(@perl_output, @xlsx), @xlsx)
691
+ end
692
+
575
693
  def test_chart_scatter
576
694
  @xlsx = 'chart_scatter.xlsx'
577
695
  workbook = WriteXLSX.new(@xlsx)
@@ -714,7 +832,7 @@ EOS
714
832
  # Add a chart title and some axis labels.
715
833
  chart.set_title(:name => 'Survey results')
716
834
  chart.set_x_axis(:name => 'Days')
717
- chart.set_y_axis(:name => 'Population', :major_gridlines => {:show => 0})
835
+ chart.set_y_axis(:name => 'Population', :major_gridlines => {:visible => 0})
718
836
  chart.set_y2_axis(:name => 'Laser wounds')
719
837
 
720
838
  # Insert the chart into the worksheet (with an offset).
@@ -15,13 +15,13 @@ class TestXMLWriterSimple < Test::Unit::TestCase
15
15
  end
16
16
 
17
17
  def test_empty_tag
18
- assert_equal('<foo />', @obj.empty_tag('foo'))
18
+ assert_equal('<foo/>', @obj.empty_tag('foo'))
19
19
  end
20
20
 
21
21
  def test_empty_tag_with_xml_decl
22
22
  expected = <<EOS
23
23
  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
24
- <foo />
24
+ <foo/>
25
25
  EOS
26
26
  assert_equal(expected, @obj.xml_decl << @obj.empty_tag('foo') << "\n")
27
27
  end
@@ -32,7 +32,7 @@ EOS
32
32
 
33
33
  def test_attribute
34
34
  assert_equal(
35
- "<foo x=\"1&gt;2\" />", @obj.empty_tag("foo", ['x', '1>2'])
35
+ "<foo x=\"1&gt;2\"/>", @obj.empty_tag("foo", ['x', '1>2'])
36
36
  )
37
37
  end
38
38
 
@@ -55,7 +55,7 @@ EOS
55
55
  'name', '_xlnm.Print_Titles',
56
56
  'localSheetId', 0
57
57
  ]
58
- expected =
58
+ expected =
59
59
  "<definedName name=\"_xlnm.Print_Titles\" localSheetId=\"0\">Sheet1!$1:$1</definedName>"
60
60
  @obj.data_element('definedName', 'Sheet1!$1:$1', attributes)
61
61
  result = @obj.string