write_xlsx 1.00.0 → 1.01.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 (159) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Changes +15 -0
  4. data/examples/a_simple.rb +1 -1
  5. data/examples/add_vba_project.rb +1 -1
  6. data/examples/array_formula.rb +1 -1
  7. data/examples/chart_area.rb +5 -2
  8. data/examples/chart_bar.rb +5 -2
  9. data/examples/chart_clustered.rb +1 -1
  10. data/examples/chart_column.rb +5 -2
  11. data/examples/chart_combined.rb +1 -1
  12. data/examples/chart_data_table.rb +9 -3
  13. data/examples/chart_data_tools.rb +25 -7
  14. data/examples/chart_doughnut.rb +17 -5
  15. data/examples/chart_gauge.rb +73 -0
  16. data/examples/chart_line.rb +5 -2
  17. data/examples/chart_pareto.rb +1 -1
  18. data/examples/chart_pie.rb +9 -3
  19. data/examples/chart_radar.rb +13 -4
  20. data/examples/chart_scatter.rb +5 -2
  21. data/examples/chart_secondary_axis.rb +5 -2
  22. data/examples/chart_stock.rb +1 -1
  23. data/examples/chart_styles.rb +1 -1
  24. data/examples/colors.rb +1 -1
  25. data/examples/data_validate.rb +1 -1
  26. data/examples/date_time.rb +1 -1
  27. data/examples/demo.rb +4 -1
  28. data/examples/formats.rb +1 -1
  29. data/examples/headers.rb +1 -1
  30. data/examples/hide_row_col.rb +1 -1
  31. data/examples/hide_sheet.rb +1 -1
  32. data/examples/hyperlink1.rb +1 -1
  33. data/examples/indent.rb +1 -1
  34. data/examples/macros.rb +1 -1
  35. data/examples/merge1.rb +1 -1
  36. data/examples/merge2.rb +1 -1
  37. data/examples/merge3.rb +1 -1
  38. data/examples/merge4.rb +1 -1
  39. data/examples/merge5.rb +1 -1
  40. data/examples/merge6.rb +1 -1
  41. data/examples/outline.rb +1 -1
  42. data/examples/outline_collapsed.rb +1 -1
  43. data/examples/panes.rb +1 -1
  44. data/examples/properties.rb +1 -1
  45. data/examples/regions.rb +1 -1
  46. data/examples/rich_strings.rb +1 -1
  47. data/examples/right_to_left.rb +1 -1
  48. data/examples/shape1.rb +1 -1
  49. data/examples/shape2.rb +1 -1
  50. data/examples/shape3.rb +1 -1
  51. data/examples/shape4.rb +1 -1
  52. data/examples/shape5.rb +1 -1
  53. data/examples/shape6.rb +1 -1
  54. data/examples/shape7.rb +1 -1
  55. data/examples/shape8.rb +1 -1
  56. data/examples/shape_all.rb +1 -1
  57. data/examples/sparklines1.rb +1 -1
  58. data/examples/sparklines2.rb +1 -1
  59. data/examples/stats.rb +1 -1
  60. data/examples/stats_ext.rb +1 -1
  61. data/examples/stocks.rb +1 -1
  62. data/examples/tab_colors.rb +1 -1
  63. data/examples/tables.rb +1 -1
  64. data/lib/write_xlsx/chart.rb +18 -13
  65. data/lib/write_xlsx/chart/area.rb +1 -1
  66. data/lib/write_xlsx/chart/bar.rb +1 -1
  67. data/lib/write_xlsx/chart/column.rb +1 -1
  68. data/lib/write_xlsx/chart/doughnut.rb +1 -1
  69. data/lib/write_xlsx/chart/line.rb +1 -1
  70. data/lib/write_xlsx/chart/pie.rb +21 -8
  71. data/lib/write_xlsx/chart/radar.rb +1 -1
  72. data/lib/write_xlsx/chart/scatter.rb +1 -1
  73. data/lib/write_xlsx/chart/stock.rb +1 -1
  74. data/lib/write_xlsx/chartsheet.rb +5 -5
  75. data/lib/write_xlsx/drawing.rb +28 -8
  76. data/lib/write_xlsx/package/comments.rb +7 -7
  77. data/lib/write_xlsx/shape.rb +4 -3
  78. data/lib/write_xlsx/sheets.rb +11 -1
  79. data/lib/write_xlsx/sparkline.rb +1 -1
  80. data/lib/write_xlsx/utility.rb +18 -6
  81. data/lib/write_xlsx/version.rb +1 -1
  82. data/lib/write_xlsx/workbook.rb +5 -5
  83. data/lib/write_xlsx/worksheet.rb +113 -125
  84. data/test/drawing/test_drawing_chart_01.rb +6 -2
  85. data/test/drawing/test_drawing_image_01.rb +12 -3
  86. data/test/drawing/test_drawing_shape_01.rb +8 -5
  87. data/test/drawing/test_drawing_shape_02.rb +12 -5
  88. data/test/drawing/test_drawing_shape_03.rb +8 -5
  89. data/test/drawing/test_drawing_shape_04.rb +8 -24
  90. data/test/drawing/test_drawing_shape_05.rb +8 -5
  91. data/test/drawing/test_drawing_shape_06.rb +11 -6
  92. data/test/drawing/test_drawing_shape_07.rb +11 -6
  93. data/test/drawing/test_write_a_graphic_frame_locks.rb +1 -1
  94. data/test/drawing/test_write_c_chart.rb +1 -1
  95. data/test/drawing/test_write_c_nv_graphic_frame_pr.rb +1 -1
  96. data/test/drawing/test_write_c_nv_pr.rb +1 -1
  97. data/test/drawing/test_write_col.rb +1 -1
  98. data/test/drawing/test_write_col_off.rb +1 -1
  99. data/test/drawing/test_write_ext.rb +1 -1
  100. data/test/drawing/test_write_pos.rb +1 -1
  101. data/test/drawing/test_write_row.rb +1 -1
  102. data/test/drawing/test_write_row_off.rb +1 -1
  103. data/test/drawing/test_write_xfrm_extension.rb +1 -1
  104. data/test/drawing/test_write_xfrm_offset.rb +1 -1
  105. data/test/perl_output/chart_gauge.xlsx +0 -0
  106. data/test/regression/test_chart_axis26.rb +10 -8
  107. data/test/regression/test_chart_axis27.rb +1 -1
  108. data/test/regression/test_chart_axis28.rb +1 -1
  109. data/test/regression/test_chart_axis29.rb +1 -1
  110. data/test/regression/test_chart_axis33.rb +1 -1
  111. data/test/regression/test_chart_axis44.rb +54 -0
  112. data/test/regression/test_chart_axis45.rb +54 -0
  113. data/test/regression/test_chart_axis46.rb +54 -0
  114. data/test/regression/test_chart_combined10.rb +43 -0
  115. data/test/regression/test_chart_combined11.rb +63 -0
  116. data/test/regression/test_chart_data_labels25.rb +1 -1
  117. data/test/regression/test_chart_doughnut07.rb +37 -0
  118. data/test/regression/test_chart_font09.rb +1 -1
  119. data/test/regression/test_chart_size03.rb +4 -1
  120. data/test/regression/test_comment14.rb +29 -0
  121. data/test/regression/test_image08.rb +5 -4
  122. data/test/regression/test_image15.rb +4 -2
  123. data/test/regression/test_image28.rb +1 -1
  124. data/test/regression/test_object_position01.rb +26 -0
  125. data/test/regression/test_object_position02.rb +26 -0
  126. data/test/regression/test_object_position03.rb +26 -0
  127. data/test/regression/test_object_position04.rb +44 -0
  128. data/test/regression/test_object_position06.rb +28 -0
  129. data/test/regression/test_object_position07.rb +28 -0
  130. data/test/regression/test_object_position08.rb +47 -0
  131. data/test/regression/test_object_position09.rb +50 -0
  132. data/test/regression/test_object_position10.rb +28 -0
  133. data/test/regression/test_shape_connect01.rb +4 -2
  134. data/test/regression/xlsx_files/chart_axis26.xlsx +0 -0
  135. data/test/regression/xlsx_files/chart_axis27.xlsx +0 -0
  136. data/test/regression/xlsx_files/chart_axis28.xlsx +0 -0
  137. data/test/regression/xlsx_files/chart_axis29.xlsx +0 -0
  138. data/test/regression/xlsx_files/chart_axis33.xlsx +0 -0
  139. data/test/regression/xlsx_files/chart_axis44.xlsx +0 -0
  140. data/test/regression/xlsx_files/chart_axis45.xlsx +0 -0
  141. data/test/regression/xlsx_files/chart_axis46.xlsx +0 -0
  142. data/test/regression/xlsx_files/chart_combined10.xlsx +0 -0
  143. data/test/regression/xlsx_files/chart_combined11.xlsx +0 -0
  144. data/test/regression/xlsx_files/chart_data_labels25.xlsx +0 -0
  145. data/test/regression/xlsx_files/chart_doughnut07.xlsx +0 -0
  146. data/test/regression/xlsx_files/chart_font09.xlsx +0 -0
  147. data/test/regression/xlsx_files/comment14.xlsx +0 -0
  148. data/test/regression/xlsx_files/object_position01.xlsx +0 -0
  149. data/test/regression/xlsx_files/object_position02.xlsx +0 -0
  150. data/test/regression/xlsx_files/object_position03.xlsx +0 -0
  151. data/test/regression/xlsx_files/object_position04.xlsx +0 -0
  152. data/test/regression/xlsx_files/object_position06.xlsx +0 -0
  153. data/test/regression/xlsx_files/object_position07.xlsx +0 -0
  154. data/test/regression/xlsx_files/object_position08.xlsx +0 -0
  155. data/test/regression/xlsx_files/object_position09.xlsx +0 -0
  156. data/test/regression/xlsx_files/object_position10.xlsx +0 -0
  157. data/test/test_example_match.rb +836 -771
  158. data/test/workbook/test_check_sheetname.rb +61 -0
  159. metadata +75 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bde6d7de8885eab3b8b2ccd4c1ec5b682b55b9893a730c3475d5c0e0b6aca459
4
- data.tar.gz: c6f347da459b3a80bb699632d5aee762fb80de9ebde962463406618a2ed62c1f
3
+ metadata.gz: 7488f5d7a2fb2d8d2538dfad0e469015596350f36b8c92fb6ad92c30413fc76a
4
+ data.tar.gz: 42633fda58820d75b54c6248796c7dec91e2acfc3016ac7dfbea0331c8531353
5
5
  SHA512:
6
- metadata.gz: 9c562aa8183d3d5bfa800aa961883620ae645107e5de36f7559efdbd2624384cc810d6b1c5098f36bd8508f72c7f6177803fd4f54713c068c59cc4d983da2091
7
- data.tar.gz: 6af5a9bb53da31ad5e1eca9de975fe5ee68233be6712cecc939d3fc77496d38a23639f43be66bc8a520895e43de6dadb5f3278893711e23397151967912d07b5
6
+ metadata.gz: ea3fa967b302439de1ddced9c20011f14eeafd8025b424bf7edd33f34215428fd6f9155264336e36a771ee345f13a4ad764abef8bc4c39a88e2d8aa9d8c769b1
7
+ data.tar.gz: fd4f6e52efcb4e2163d0346e5b13ec21312c73ad1fb2b1d79ab4f81d51411e15eb9308ec0249e52b1082e97c696f94b3651e6ce1676eb011f7420623eda7530c
data/.gitignore CHANGED
@@ -6,6 +6,7 @@ GTAGS
6
6
  .bundle
7
7
  .config
8
8
  .yardoc
9
+ .byebug_history
9
10
  Gemfile.lock
10
11
  InstalledFiles
11
12
  _site
data/Changes CHANGED
@@ -1,5 +1,20 @@
1
1
  Change history of write_xlsx rubygem.
2
2
 
3
+ 2021-02-08 v1.01.0
4
+
5
+ Added support for stacked and East Asian vertical chart fonts.
6
+
7
+ Added option to control positioning of charts or images when cells are
8
+ resized.
9
+
10
+ Added support for combining Pie/Doughnut charts.
11
+
12
+ Fixed sizing of cell comment boxes when they cross columns/rows that have
13
+ size changes that occur after the comment is written. Comments should
14
+ now behave like other worksheet objects such as images and charts.
15
+
16
+ Fix for structured reference in chart ranges.
17
+
3
18
  2021-01-23 v1.00.0
4
19
 
5
20
  Fixed issue where images that started in hidden rows/columns weren't placed
data/examples/a_simple.rb CHANGED
@@ -7,7 +7,7 @@
7
7
  # write text and numbers to an Excel xlsx file.
8
8
  #
9
9
  # reverse(c), March 2001, John McNamara, jmcnamara@cpan.org
10
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
10
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
11
11
  #
12
12
 
13
13
  require 'write_xlsx'
@@ -10,7 +10,7 @@
10
10
  # used to extract the vbaProject.bin file.
11
11
  #
12
12
  # reverse('(c)'), November 2012, John McNamara, jmcnamara@cpan.org
13
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
13
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
14
14
  #
15
15
 
16
16
  require 'write_xlsx'
@@ -7,7 +7,7 @@
7
7
  # array formulas.
8
8
  #
9
9
  # reverse(c), August 2004, John McNamara, jmcnamara@cpan.org
10
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
10
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
11
11
  #
12
12
 
13
13
  require 'write_xlsx'
@@ -6,7 +6,7 @@
6
6
  # A demo of an Area chart in Excel::Writer::XLSX.
7
7
  #
8
8
  # reverse('ゥ'), March 2011, John McNamara, jmcnamara@cpan.org
9
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
9
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
10
10
  #
11
11
 
12
12
  require 'write_xlsx'
@@ -53,6 +53,9 @@
53
53
  chart.set_style(11)
54
54
 
55
55
  # Insert the chart into the worksheet (with an offset).
56
- worksheet.insert_chart('D2', chart, 25, 10)
56
+ worksheet.insert_chart(
57
+ 'D2', chart,
58
+ :x_offset => 25, :y_offset => 10
59
+ )
57
60
 
58
61
  workbook.close
@@ -6,7 +6,7 @@
6
6
  # A demo of an Bar chart in Excel::Writer::XLSX.
7
7
  #
8
8
  # reverse('c'), March 2011, John McNamara, jmcnamara@cpan.org
9
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
9
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
10
10
  #
11
11
 
12
12
  require 'write_xlsx'
@@ -53,6 +53,9 @@
53
53
  chart.set_style(11)
54
54
 
55
55
  # Insert the chart into the worksheet (with an offset).
56
- worksheet.insert_chart('D2', chart, 25, 10)
56
+ worksheet.insert_chart(
57
+ 'D2', chart,
58
+ :x_offset => 25, :y_offset => 10
59
+ )
57
60
 
58
61
  workbook.close
@@ -5,7 +5,7 @@
5
5
  # A demo of a clustered category chart in Excel::Writer::XLSX.
6
6
  #
7
7
  # reverse ('(c)'), March 2015, John McNamara, jmcnamara@cpan.org
8
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
8
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
9
9
  #
10
10
 
11
11
  require 'write_xlsx'
@@ -6,7 +6,7 @@
6
6
  # A demo of an Area chart in Excel::Writer::XLSX.
7
7
  #
8
8
  # reverse('ゥ'), March 2011, John McNamara, jmcnamara@cpan.org
9
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
9
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
10
10
  #
11
11
 
12
12
  require 'write_xlsx'
@@ -53,6 +53,9 @@
53
53
  chart.set_style(11)
54
54
 
55
55
  # Insert the chart into the worksheet (with an offset).
56
- worksheet.insert_chart('D2', chart, 25, 10)
56
+ worksheet.insert_chart(
57
+ 'D2', chart,
58
+ :x_offset => 25, :y_offset => 10
59
+ )
57
60
 
58
61
  workbook.close
@@ -6,7 +6,7 @@
6
6
  # An example of a Combined chart in WriteXLSX.
7
7
  #
8
8
  # reverse ('(c)'), March 2015, John McNamara, jmcnamara@cpan.org
9
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
9
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
10
10
  #
11
11
 
12
12
  require 'write_xlsx'
@@ -7,7 +7,7 @@
7
7
  # WriteXLSX.
8
8
  #
9
9
  # reverse ('(c)'), December 2012, John McNamara, jmcnamara@cpan.org
10
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
10
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
11
11
  #
12
12
 
13
13
  require 'write_xlsx'
@@ -54,7 +54,10 @@
54
54
  chart1.set_table
55
55
 
56
56
  # Insert the chart into the worksheet (with an offset).
57
- worksheet.insert_chart('D2', chart1, 25, 10)
57
+ worksheet.insert_chart(
58
+ 'D2', chart1,
59
+ :x_offset => 25, :y_offset => 10
60
+ )
58
61
 
59
62
  #
60
63
  # Create a second charat.
@@ -88,6 +91,9 @@
88
91
  chart2.set_legend(:position => 'none')
89
92
 
90
93
  # Insert the chart into the worksheet (with an offset).
91
- worksheet.insert_chart('D18', chart2, 25, 11)
94
+ worksheet.insert_chart(
95
+ 'D18', chart2,
96
+ :x_offset => 25, :y_offset => 11
97
+ )
92
98
 
93
99
  workbook.close
@@ -10,7 +10,7 @@
10
10
  # High-Low Lines and Up-Down Bars.
11
11
  #
12
12
  # reverse ('(c)'), December 2012, John McNamara, jmcnamara@cpan.org
13
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
13
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
14
14
  #
15
15
 
16
16
  require 'write_xlsx'
@@ -62,7 +62,10 @@
62
62
  chart1.set_title(:name => 'Chart with Trendlines')
63
63
 
64
64
  # Insert the chart into the worksheet (with an offset).
65
- worksheet.insert_chart('D2', chart1, 25, 10)
65
+ worksheet.insert_chart(
66
+ 'D2', chart1,
67
+ :x_offset => 25, :y_offset => 10
68
+ )
66
69
 
67
70
 
68
71
  #######################################################################
@@ -91,7 +94,10 @@
91
94
  chart2.set_title(:name => 'Chart with Data Labels and Markers')
92
95
 
93
96
  # Insert the chart into the worksheet (with an offset).
94
- worksheet.insert_chart('D18', chart2, 25, 10)
97
+ worksheet.insert_chart(
98
+ 'D18', chart2,
99
+ :x_offset => 25, :y_offset => 10
100
+ )
95
101
 
96
102
 
97
103
  #######################################################################
@@ -119,7 +125,10 @@
119
125
  chart3.set_title(:name => 'Chart with Error Bars')
120
126
 
121
127
  # Insert the chart into the worksheet (with an offset).
122
- worksheet.insert_chart('D34', chart3, 25, 10)
128
+ worksheet.insert_chart(
129
+ 'D34', chart3,
130
+ :x_offset => 25, :y_offset => 10
131
+ )
123
132
 
124
133
 
125
134
  #######################################################################
@@ -149,7 +158,10 @@
149
158
  chart4.set_title(:name => 'Chart with Up-Down Bars')
150
159
 
151
160
  # Insert the chart into the worksheet (with an offset).
152
- worksheet.insert_chart('D50', chart4, 25, 10)
161
+ worksheet.insert_chart(
162
+ 'D50', chart4,
163
+ :x_offset => 25, :y_offset => 10
164
+ )
153
165
 
154
166
 
155
167
  #######################################################################
@@ -179,7 +191,10 @@
179
191
  chart5.set_title(:name => 'Chart with High-Low Lines')
180
192
 
181
193
  # Insert the chart into the worksheet (with an offset).
182
- worksheet.insert_chart('D66', chart5, 25, 10)
194
+ worksheet.insert_chart(
195
+ 'D66', chart5,
196
+ :x_offset => 25, :y_offset => 10
197
+ )
183
198
 
184
199
 
185
200
  #######################################################################
@@ -209,6 +224,9 @@
209
224
  chart6.set_title(:name => 'Chart with Drop Lines')
210
225
 
211
226
  # Insert the chart into the worksheet (with an offset).
212
- worksheet.insert_chart('D82', chart6, 25, 10)
227
+ worksheet.insert_chart(
228
+ 'D82', chart6,
229
+ :x_offset => 25, :y_offset => 10
230
+ )
213
231
 
214
232
  workbook.close
@@ -12,7 +12,7 @@
12
12
  # formatting to each point in the series.
13
13
  #
14
14
  # reverse ('(c)'), March 2011, John McNamara, jmcnamara@cpan.org
15
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
15
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
16
16
  #
17
17
 
18
18
  require 'write_xlsx'
@@ -50,7 +50,10 @@
50
50
  chart1.set_style(10)
51
51
 
52
52
  # Insert the chart into the worksheet (with an offset).
53
- worksheet.insert_chart('C2', chart1, 25, 10)
53
+ worksheet.insert_chart(
54
+ 'C2', chart1,
55
+ :x_offset => 25, :y_offset => 10
56
+ )
54
57
 
55
58
 
56
59
  #
@@ -77,7 +80,10 @@
77
80
 
78
81
 
79
82
  # Insert the chart into the worksheet (with an offset).
80
- worksheet.insert_chart('C18', chart2, 25, 10)
83
+ worksheet.insert_chart(
84
+ 'C18', chart2,
85
+ :x_offset => 25, :y_offset => 10
86
+ )
81
87
 
82
88
 
83
89
  #
@@ -101,7 +107,10 @@
101
107
  chart3.set_rotation(90)
102
108
 
103
109
  # Insert the chart into the worksheet (with an offset).
104
- worksheet.insert_chart('C34', chart3, 25, 10)
110
+ worksheet.insert_chart(
111
+ 'C34', chart3,
112
+ :x_offset => 25, :y_offset => 10
113
+ )
105
114
 
106
115
 
107
116
  #
@@ -125,6 +134,9 @@
125
134
  chart4.set_hole_size(33)
126
135
 
127
136
  # Insert the chart into the worksheet (with an offset).
128
- worksheet.insert_chart('C50', chart4, 25, 10)
137
+ worksheet.insert_chart(
138
+ 'C50', chart4,
139
+ :x_offset => 25, :y_offset => 10
140
+ )
129
141
 
130
142
  workbook.close
@@ -0,0 +1,73 @@
1
+ # #!/usr/bin/env ruby
2
+
3
+ # #######################################################################
4
+ # #
5
+ # # A demo of an Gauge Chart in WriteXLSX gem.
6
+ # #
7
+ # # A Gauge Chart isn't a native chart type in Excel. It is constructed by
8
+ # # combining a doughnut chart and a pie chart and by using some non-filled
9
+ # # elements. This example follows the following online example of how to create
10
+ # # a Gauge Chart in Excel: https://www.excel-easy.com/examples/gauge-chart.html
11
+ # #
12
+ # # reverse ('(c)'), May 2019, John McNamara, jmcnamara@cpan.org
13
+ # # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
14
+ # #
15
+
16
+ require 'write_xlsx'
17
+
18
+ workbook = WriteXLSX.new('chart_gauge.xlsx')
19
+ worksheet = workbook.add_worksheet
20
+
21
+ chart_doughnut = workbook.add_chart(:type => 'doughnut', :embedded => 1)
22
+ chart_pie = workbook.add_chart(:type => 'pie', :embedded => 1)
23
+
24
+ # Add some data for the Doughnut and Pie charts. This is set up so the
25
+ # gauge goes from 0-100. It is initially set at 75%.
26
+ worksheet.write_col('H2', ['Donut', 25, 50, 25, 100])
27
+ worksheet.write_col('I2', ['Pie', 75, 1, '=200-I4-I3'])
28
+
29
+ # Configure the doughnut chart as the background for the gauge.
30
+ chart_doughnut.add_series(
31
+ :name => '=Sheet1!$H$2',
32
+ :values => '=Sheet1!$H$3:$H$6',
33
+ :points => [
34
+ { :fill => { :color => 'green' } },
35
+ { :fill => { :color => 'yellow' } },
36
+ { :fill => { :color => 'red' } },
37
+ { :fill => { :none => 1 } }
38
+ ]
39
+ )
40
+
41
+ # Rotate chart so the gauge parts are above the horizontal.
42
+ chart_doughnut.set_rotation(270)
43
+
44
+ # Turn off the chart legend.
45
+ chart_doughnut.set_legend(:none => 1)
46
+
47
+ # Turn off the chart fill and border.
48
+ chart_doughnut.set_chartarea(
49
+ :border => { :none => 1 },
50
+ :fill => { :none => 1 }
51
+ )
52
+
53
+ # Configure the pie chart as the needle for the gauge.
54
+ chart_pie.add_series(
55
+ :name => '=Sheet1!$I$2',
56
+ :values => '=Sheet1!$I$3:$I$6',
57
+ :points => [
58
+ { :fill => { :none => 1 } },
59
+ { :fill => { :color => 'black' } },
60
+ { :fill => { :none => 1 } }
61
+ ]
62
+ )
63
+
64
+ # Rotate the pie chart/needle to align with the doughnut/gauge.
65
+ chart_pie.set_rotation(270)
66
+
67
+ # Combine the pie and doughnut charts.
68
+ chart_doughnut.combine(chart_pie)
69
+
70
+ # Insert the chart into the worksheet.
71
+ worksheet.insert_chart('A1', chart_doughnut)
72
+
73
+ workbook.close
@@ -6,7 +6,7 @@
6
6
  # A demo of a Line chart in Excel::Writer::XLSX.
7
7
  #
8
8
  # reverse('ゥ'), March 2011, John McNamara, jmcnamara@cpan.org
9
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
9
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
10
10
  #
11
11
 
12
12
  require 'write_xlsx'
@@ -53,6 +53,9 @@
53
53
  chart.set_style(10)
54
54
 
55
55
  # Insert the chart into the worksheet (with an offset).
56
- worksheet.insert_chart('D2', chart, 25, 10)
56
+ worksheet.insert_chart(
57
+ 'D2', chart,
58
+ :x_offset => 25, :y_offset => 10
59
+ )
57
60
 
58
61
  workbook.close
@@ -6,7 +6,7 @@
6
6
  # A demo of a Pareto chart in Excel::Writer::XLSX.
7
7
  #
8
8
  # reverse ('(c)'), March 2015, John McNamara, jmcnamara@cpan.org
9
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
9
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
10
10
  #
11
11
 
12
12
  require 'write_xlsx'
@@ -12,7 +12,7 @@
12
12
  # assign formatting to each point in the series.
13
13
  #
14
14
  # reverse(c), March 2011, John McNamara, jmcnamara@cpan.org
15
- # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
15
+ # convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
16
16
  #
17
17
 
18
18
  require 'write_xlsx'
@@ -50,7 +50,10 @@
50
50
  chart1.set_style(10)
51
51
 
52
52
  # Insert the chart into the worksheet (with an offset).
53
- worksheet.insert_chart('C2', chart1, 25, 10)
53
+ worksheet.insert_chart(
54
+ 'C2', chart1,
55
+ :x_offset => 25, :y_offset => 10
56
+ )
54
57
 
55
58
  #
56
59
  # Create a Pie chart with user defined segment colors.
@@ -74,6 +77,9 @@
74
77
  # Add a title.
75
78
  chart2.set_title(:name => 'Pie Chart with user defined colors')
76
79
 
77
- worksheet.insert_chart('C18', chart2, 25, 10)
80
+ worksheet.insert_chart(
81
+ 'C18', chart2,
82
+ :x_offset => 25, :y_offset => 10
83
+ )
78
84
 
79
85
  workbook.close