1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#!/usr/bin/env ruby -w -s
# -*- coding: utf-8 -*-
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
require 'axlsx'
p = Axlsx::Package.new
wb = p.workbook
##Generating A Bar Chart
wb.add_worksheet(:name => "Bar Chart") do |sheet|
sheet.add_row ["A Simple Bar Chart"]
sheet.add_row ["First", "Second", "Third"]
sheet.add_row [1,2,3.5]
sheet.add_chart(Axlsx::Bar3DChart, :start_at => "A4", :end_at => "F17", :title => sheet["A1"]) do |chart|
chart.add_series :data => sheet["A3:C3"], :labels => sheet["A2:C2"], :colors => ['FF0000', '00FF00', '0000FF'], :color => "000000"
chart.valAxis.label_rotation = -45
chart.catAxis.label_rotation = 45
end
end
##Generating A Bar Chart without data in the sheet
wb.add_worksheet(:name => "Hard Bar Chart") do |sheet|
sheet.add_chart(Axlsx::Bar3DChart, :start_at => "A4", :end_at => "F17", :title => "hard code chart") do |chart|
chart.add_series :data => [1,3,5], :labels => ['a', 'b', 'c'], :colors => ['FF0000', '00FF00', '0000FF']
chart.valAxis.label_rotation = -45
chart.catAxis.label_rotation = 45
end
end
##Generating A Pie Chart
wb.add_worksheet(:name => "Pie Chart") do |sheet|
sheet.add_row ["First", "Second", "Third", "Fourth"]
sheet.add_row [1, 2, 3, "=PRODUCT(A2:C2)"]
sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,2], :end_at => [5, 15], :title => "example 3: Pie Chart") do |chart|
chart.add_series :data => sheet["A2:D2"], :labels => sheet["A1:D1"], :colors => ['FF0000', '00FF00', '0000FF', '000000']
end
end
# Line Chart
wb.add_worksheet(:name => "Line Chart") do |sheet|
sheet.add_row ["First", 1, 5, 7, 9]
sheet.add_row ["Second", 5, 2, 14, 9]
sheet.add_chart(Axlsx::Line3DChart, :title => "example 6: Line Chart", :rotX => 30, :rotY => 30) do |chart|
chart.start_at 0, 2
chart.end_at 10, 15
chart.add_series :data => sheet["B1:E1"], :title => sheet["A1"], :color => "FF0000"
chart.add_series :data => sheet["B2:E2"], :title => sheet["A2"], :color => "00FF00"
end
end
wb.add_worksheet(:name => 'Line Chart with Axis colors') do |sheet|
sheet.add_row ["First", 1, 5, 7, 9]
sheet.add_row ["Second", 5, 2, 14, 9]
sheet.add_chart(Axlsx::Line3DChart, :title => "example 7: Flat Line Chart", :rot_x => 0, :perspective => 0) do |chart|
chart.valAxis.color = "FFFF00"
chart.catAxis.color = "00FFFF"
chart.serAxis.delete = true
chart.start_at 0, 2
chart.end_at 10, 15
chart.add_series :data => sheet["B1:E1"], :title => sheet["A1"], :color => "FF0000"
chart.add_series :data => sheet["B2:E2"], :title => sheet["A2"], :color => "00FF00"
end
end
##Generating A Scatter Chart
wb.add_worksheet(:name => "Scatter Chart") do |sheet|
sheet.add_row ["First", 1, 5, 7, 9]
sheet.add_row ["", 1, 25, 49, 81]
sheet.add_row ["Second", 5, 2, 14, 9]
sheet.add_row ["", 5, 10, 15, 20]
sheet.add_chart(Axlsx::ScatterChart, :title => "example 7: Scatter Chart") do |chart|
chart.start_at 0, 4
chart.end_at 10, 19
chart.add_series :xData => sheet["B1:E1"], :yData => sheet["B2:E2"], :title => sheet["A1"], :color => '00FF00'
chart.add_series :xData => sheet["B3:E3"], :yData => sheet["B4:E4"], :title => sheet["A3"], :color => 'FF0000'
end
end
p.validate.each { |e| puts e.message }
p.serialize 'chart_colors.xlsx'
|