Sha256: ad7c0f904ab1edcb62e8a4f4c22625246ae40f6eb00932b0f064c40df42a2333

Contents?: true

Size: 1.74 KB

Versions: 7

Compression:

Stored size: 1.74 KB

Contents

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

#
# A demo of a clustered category chart in Excel::Writer::XLSX.
#
# reverse ('(c)'), March 2015, John McNamara, jmcnamara@cpan.org
# convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
#

require 'write_xlsx'

workbook  = WriteXLSX.new('chart_clustered.xlsx')
worksheet = workbook.add_worksheet
bold      = workbook.add_format(bold: 1)

# Add the worksheet data that the charts will refer to.
headings = ['Types',  'Sub Type',   'Value 1', 'Value 2', 'Value 3']
data = [
  ['Type 1', 'Sub Type A', 5000,      8000,      6000],
  ['',       'Sub Type B', 2000,      3000,      4000],
  ['',       'Sub Type C', 250,       1000,      2000],
  ['Type 2', 'Sub Type D', 6000,      6000,      6500],
  ['',       'Sub Type E', 500,       300,       200]
]

worksheet.write('A1', headings, bold)
worksheet.write_col('A2', data)

# Create a new chart object. In this case an embedded chart.
chart = workbook.add_chart(type: 'column', embedded: 1)

# Configure the series. Note, that the categories are 2D ranges (from column A
# to column B). This creates the clusters. The series are shown as formula
# strings for clarity but you can also use the array syntax. See the docs.
chart.add_series(
  name:       '=Sheet1!$C$1',
  categories: '=Sheet1!$A$2:$B$6',
  values:     '=Sheet1!$C$2:$C$6'
)

chart.add_series(
  name:       '=Sheet1!$D$1',
  categories: '=Sheet1!$A$2:$B$6',
  values:     '=Sheet1!$D$2:$D$6'
)

chart.add_series(
  name:       '=Sheet1!$E$1',
  categories: '=Sheet1!$A$2:$B$6',
  values:     '=Sheet1!$E$2:$E$6'
)

# Set the Excel chart style.
chart.set_style(37)

# Turn off the legend.
chart.set_legend(position: 'none')

# Insert the chart into the worksheet.
worksheet.insert_chart('G3', chart)

workbook.close

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
write_xlsx-1.12.1 examples/chart_clustered.rb
write_xlsx-1.12.0 examples/chart_clustered.rb
write_xlsx-1.11.2 examples/chart_clustered.rb
write_xlsx-1.11.1 examples/chart_clustered.rb
write_xlsx-1.11.0 examples/chart_clustered.rb
write_xlsx-1.10.2 examples/chart_clustered.rb
write_xlsx-1.10.1 examples/chart_clustered.rb