caxlsx 3.0.2 → 3.0.3

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 (51) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +7 -0
  3. data/examples/{image1.jpeg → assets/image1.jpeg} +0 -0
  4. data/examples/generate.rb +15 -0
  5. data/lib/axlsx.rb +1 -0
  6. data/lib/axlsx/drawing/pie_series.rb +1 -1
  7. data/lib/axlsx/package.rb +17 -4
  8. data/lib/axlsx/util/constants.rb +2 -1
  9. data/lib/axlsx/util/zip_command.rb +73 -0
  10. data/lib/axlsx/version.rb +1 -1
  11. data/lib/axlsx/workbook/worksheet/cell.rb +4 -2
  12. data/test/drawing/tc_drawing.rb +2 -2
  13. data/test/drawing/tc_hyperlink.rb +1 -1
  14. data/test/drawing/tc_one_cell_anchor.rb +1 -1
  15. data/test/drawing/tc_pic.rb +4 -4
  16. data/test/drawing/tc_pie_series.rb +2 -1
  17. data/test/fixtures/image1.gif +0 -0
  18. data/test/fixtures/image1.jpeg +0 -0
  19. data/test/fixtures/image1.jpg +0 -0
  20. data/test/fixtures/image1.png +0 -0
  21. data/test/fixtures/image1_fake.jpg +0 -0
  22. data/test/tc_package.rb +29 -12
  23. data/test/util/tc_mime_type_utils.rb +1 -1
  24. data/test/workbook/worksheet/tc_cell.rb +31 -0
  25. metadata +18 -39
  26. data/examples/2010_comments.rb +0 -17
  27. data/examples/anchor_swapping.rb +0 -28
  28. data/examples/auto_filter.rb +0 -25
  29. data/examples/basic_charts.rb +0 -58
  30. data/examples/chart_colors.rb +0 -88
  31. data/examples/colored_links.rb +0 -45
  32. data/examples/conditional_formatting/example_conditional_formatting.rb +0 -89
  33. data/examples/conditional_formatting/getting_barred.rb +0 -37
  34. data/examples/conditional_formatting/hitting_the_high_notes.rb +0 -37
  35. data/examples/conditional_formatting/scaled_colors.rb +0 -39
  36. data/examples/conditional_formatting/stop_and_go.rb +0 -37
  37. data/examples/data_validation.rb +0 -67
  38. data/examples/example.rb +0 -900
  39. data/examples/extractive.rb +0 -45
  40. data/examples/ios_preview.rb +0 -14
  41. data/examples/merge_cells.rb +0 -17
  42. data/examples/no_grid_with_borders.rb +0 -18
  43. data/examples/page_setup.rb +0 -11
  44. data/examples/pivot_table.rb +0 -39
  45. data/examples/pivot_test.rb +0 -63
  46. data/examples/sheet_protection.rb +0 -10
  47. data/examples/skydrive/real_example.rb +0 -63
  48. data/examples/split.rb +0 -16
  49. data/examples/styles.rb +0 -66
  50. data/examples/underline.rb +0 -13
  51. data/examples/wrap_text.rb +0 -21
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env ruby -w -s
2
- # -*- coding: utf-8 -*-
3
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
4
-
5
- #```ruby
6
- require 'axlsx'
7
- p = Axlsx::Package.new
8
- p.workbook.add_worksheet(:name => 'Excel 2010 comments') do |sheet|
9
- sheet.add_row ['Cell with visible comment']
10
- sheet.add_row
11
- sheet.add_row
12
- sheet.add_row ['Cell with hidden comment']
13
-
14
- sheet.add_comment :ref => 'A1', :author => 'XXX', :text => 'Visibile'
15
- sheet.add_comment :ref => 'A4', :author => 'XXX', :text => 'Hidden', :visible => false
16
- end
17
- p.serialize('excel_2010_comment_test.xlsx')
@@ -1,28 +0,0 @@
1
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
2
- require 'axlsx'
3
- xls = Axlsx::Package.new
4
- wb = xls.workbook
5
- wb.add_worksheet do |ws|
6
- img = File.expand_path('../image1.jpeg', __FILE__)
7
- ws.add_image(:image_src => img) do |image|
8
- image.start_at 2, 2
9
- image.end_at 5, 5
10
- end
11
- end
12
- wb.add_worksheet do |ws|
13
- img = File.expand_path('../image1.jpeg', __FILE__)
14
- ws.add_image(:image_src => img, :start_at => "B2") do |image|
15
- image.width = 70
16
- image.height = 50
17
- end
18
- end
19
- wb.add_worksheet do |ws|
20
- img = File.expand_path('../image1.jpeg', __FILE__)
21
- ws.add_image(:image_src => img, :start_at => [1,1]) do |image|
22
- image.end_at "E7"
23
- end
24
- end
25
-
26
-
27
-
28
- xls.serialize 'anchor.xlsx'
@@ -1,25 +0,0 @@
1
- #!/usr/bin/env ruby -w -s
2
- # -*- coding: utf-8 -*-
3
-
4
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
5
- require 'axlsx'
6
- Axlsx::Package.new do |p|
7
- p.workbook.add_worksheet(:name => "Table") do |sheet|
8
- sheet.add_row ["Build Matrix"]
9
- sheet.add_row ["Build", "Duration", "Finished", "Rvm"]
10
- sheet.add_row ["19.1", "1 min 32 sec", "about 10 hours ago", "1.8.7"]
11
- sheet.add_row ["19.2", "1 min 28 sec", "about 10 hours ago", "1.9.2"]
12
- sheet.add_row ["19.3", "1 min 35 sec", "about 10 hours ago", "1.9.3"]
13
- sheet.auto_filter = 'A2:D5'
14
- sheet.auto_filter.add_column 3, :filters, :filter_items => ['1.9.2']
15
- end
16
- p.workbook.add_worksheet(:name => "Table 2") do |sheet|
17
- sheet.add_row ["Build Matrix"]
18
- sheet.add_row ["Build", "Duration", "Finished", "Rvm"]
19
- sheet.add_row ["19.1", "1 min 32 sec", "about 10 hours ago", "1.8.7"]
20
- sheet.add_row ["19.2", "1 min 28 sec", "about 10 hours ago", "1.9.2"]
21
- sheet.add_row ["19.3", "1 min 35 sec", "about 10 hours ago", "1.9.3"]
22
- sheet.auto_filter = 'A2:D5'
23
- sheet.auto_filter.add_column 3, :filters, :filter_items => ['1.9.2']
24
- end
25
- end.serialize('auto_filter.xlsx')
@@ -1,58 +0,0 @@
1
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
2
- require 'axlsx'
3
- p = Axlsx::Package.new
4
- wb = p.workbook
5
-
6
- # Pie Chart
7
- wb.add_worksheet(:name => "Pie Chart") do |sheet|
8
- sheet.add_row ["First", "Second", "Third", "Fourth"]
9
- sheet.add_row [1, 2, 3, 4]
10
- sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,2], :end_at => [5, 15], :title=> 'dark corner here') do |chart|
11
- chart.add_series :data => sheet["A2:D2"], :labels => sheet["A1:D1"]
12
- chart.d_lbls.show_val = true
13
- chart.d_lbls.show_percent = true
14
- chart.d_lbls.d_lbl_pos = :outEnd
15
- chart.d_lbls.show_leader_lines = true
16
- end
17
- end
18
-
19
- # line chart
20
- wb.add_worksheet(:name => "Line Chart") do |sheet|
21
- sheet.add_row ['1', '2', '3', '4']
22
- sheet.add_row [1, 2, 3, '=sum(A2:C2)']
23
- sheet.add_chart(Axlsx::Line3DChart, :start_at => [0,2], :end_at => [5, 15], :title => "Chart") do |chart|
24
- chart.add_series :data => sheet["A2:D2"], :labels => sheet["A1:D1"], :title => 'bob'
25
- chart.d_lbls.show_val = true
26
- chart.d_lbls.show_cat_name = true
27
- chart.catAxis.tick_lbl_pos = :none
28
-
29
- end
30
- end
31
-
32
- # bar chart
33
- wb.add_worksheet(:name => "Bar Chart") do |sheet|
34
- sheet.add_row ["A Simple Bar Chart"]
35
- sheet.add_row ["First", "Second", "Third"]
36
- sheet.add_row [1, 2, 3]
37
- sheet.add_chart(Axlsx::Bar3DChart, :start_at => "A4", :end_at => "F17") do |chart|
38
- chart.add_series :data => sheet["A3:C3"], :labels => sheet["A2:C2"], :title => sheet["A1"]
39
- chart.valAxis.label_rotation = -45
40
- chart.catAxis.label_rotation = 45
41
- chart.d_lbls.d_lbl_pos = :outEnd
42
- chart.d_lbls.show_val = true
43
-
44
- chart.catAxis.tick_lbl_pos = :none
45
- end
46
- end
47
-
48
- # specifying colors and title
49
- wb.add_worksheet(:name => "Colored Pie Chart") do |sheet|
50
- sheet.add_row ["First", "Second", "Third", "Fourth"]
51
- sheet.add_row [1, 2, 3, "=PRODUCT(A2:C2)"]
52
- sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,2], :end_at => [5, 15], :title => "example 3: Pie Chart") do |chart|
53
- chart.add_series :data => sheet["A2:D2"], :labels => ["A1:D1"], :colors => ['FF0000', '00FF00', '0000FF']
54
- end
55
- end
56
-
57
- p.serialize('basic_charts.xlsx')
58
-
@@ -1,88 +0,0 @@
1
- #!/usr/bin/env ruby -w -s
2
- # -*- coding: utf-8 -*-
3
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
4
- require 'axlsx'
5
-
6
- p = Axlsx::Package.new
7
- wb = p.workbook
8
-
9
- ##Generating A Bar Chart
10
-
11
- wb.add_worksheet(:name => "Bar Chart") do |sheet|
12
- sheet.add_row ["A Simple Bar Chart"]
13
- sheet.add_row ["First", "Second", "Third"]
14
- sheet.add_row [1,2,3.5]
15
- sheet.add_chart(Axlsx::Bar3DChart, :start_at => "A4", :end_at => "F17", :title => sheet["A1"]) do |chart|
16
- chart.add_series :data => sheet["A3:C3"], :labels => sheet["A2:C2"], :colors => ['FF0000', '00FF00', '0000FF'], :color => "000000"
17
- chart.valAxis.label_rotation = -45
18
- chart.catAxis.label_rotation = 45
19
- end
20
- end
21
-
22
- ##Generating A Bar Chart without data in the sheet
23
-
24
- wb.add_worksheet(:name => "Hard Bar Chart") do |sheet|
25
- sheet.add_chart(Axlsx::Bar3DChart, :start_at => "A4", :end_at => "F17", :title => "hard code chart") do |chart|
26
- chart.add_series :data => [1,3,5], :labels => ['a', 'b', 'c'], :colors => ['FF0000', '00FF00', '0000FF']
27
- chart.valAxis.label_rotation = -45
28
- chart.catAxis.label_rotation = 45
29
- end
30
- end
31
-
32
-
33
- ##Generating A Pie Chart
34
-
35
- wb.add_worksheet(:name => "Pie Chart") do |sheet|
36
- sheet.add_row ["First", "Second", "Third", "Fourth"]
37
- sheet.add_row [1, 2, 3, "=PRODUCT(A2:C2)"]
38
- sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,2], :end_at => [5, 15], :title => "example 3: Pie Chart") do |chart|
39
- chart.add_series :data => sheet["A2:D2"], :labels => sheet["A1:D1"], :colors => ['FF0000', '00FF00', '0000FF', '000000']
40
- end
41
- end
42
-
43
- # Line Chart
44
-
45
- wb.add_worksheet(:name => "Line Chart") do |sheet|
46
- sheet.add_row ["First", 1, 5, 7, 9]
47
- sheet.add_row ["Second", 5, 2, 14, 9]
48
- sheet.add_chart(Axlsx::Line3DChart, :title => "example 6: Line Chart", :rotX => 30, :rotY => 30) do |chart|
49
- chart.start_at 0, 2
50
- chart.end_at 10, 15
51
- chart.add_series :data => sheet["B1:E1"], :title => sheet["A1"], :color => "FF0000"
52
- chart.add_series :data => sheet["B2:E2"], :title => sheet["A2"], :color => "00FF00"
53
- end
54
- end
55
-
56
- wb.add_worksheet(:name => 'Line Chart with Axis colors') do |sheet|
57
- sheet.add_row ["First", 1, 5, 7, 9]
58
- sheet.add_row ["Second", 5, 2, 14, 9]
59
- sheet.add_chart(Axlsx::Line3DChart, :title => "example 7: Flat Line Chart", :rot_x => 0, :perspective => 0) do |chart|
60
- chart.valAxis.color = "FFFF00"
61
- chart.catAxis.color = "00FFFF"
62
- chart.serAxis.delete = true
63
- chart.start_at 0, 2
64
- chart.end_at 10, 15
65
- chart.add_series :data => sheet["B1:E1"], :title => sheet["A1"], :color => "FF0000"
66
- chart.add_series :data => sheet["B2:E2"], :title => sheet["A2"], :color => "00FF00"
67
- end
68
-
69
- end
70
-
71
- ##Generating A Scatter Chart
72
-
73
- wb.add_worksheet(:name => "Scatter Chart") do |sheet|
74
- sheet.add_row ["First", 1, 5, 7, 9]
75
- sheet.add_row ["", 1, 25, 49, 81]
76
- sheet.add_row ["Second", 5, 2, 14, 9]
77
- sheet.add_row ["", 5, 10, 15, 20]
78
- sheet.add_chart(Axlsx::ScatterChart, :title => "example 7: Scatter Chart") do |chart|
79
- chart.start_at 0, 4
80
- chart.end_at 10, 19
81
- chart.add_series :xData => sheet["B1:E1"], :yData => sheet["B2:E2"], :title => sheet["A1"], :color => '00FF00'
82
- chart.add_series :xData => sheet["B3:E3"], :yData => sheet["B4:E4"], :title => sheet["A3"], :color => 'FF0000'
83
- end
84
- end
85
-
86
-
87
- p.validate.each { |e| puts e.message }
88
- p.serialize 'chart_colors.xlsx'
@@ -1,45 +0,0 @@
1
- require 'axlsx'
2
-
3
- p = Axlsx::Package.new
4
- wb = p.workbook
5
-
6
- # Each style only needs to be declared once in the workbook.
7
- s = wb.styles
8
- title_cell = s.add_style sz: 14, alignment: { horizontal: :center }
9
- black_cell = s.add_style sz: 10, alignment: { horizontal: :center }
10
- blue_link = s.add_style fg_color: '0000FF'
11
-
12
- # Create summary sheet
13
- sum_sheet = wb.add_worksheet name: 'Summary'
14
- sum_sheet.add_row ['Test Results'], sz: 16
15
- sum_sheet.add_row
16
- sum_sheet.add_row
17
- sum_sheet.add_row ['Note: Blue cells below are links to the Log sheet'], sz: 10
18
- sum_sheet.add_row
19
- sum_sheet.add_row ['ID', 'Type', 'Match', 'Mismatch', 'Diffs', 'Errors', 'Result'], style: title_cell
20
-
21
- sum_sheet.column_widths 10, 10, 1 0, 11, 10, 10, 10
22
-
23
- # Starting data row in summary spreadsheet (after header info)
24
- current_row = 7
25
-
26
- # Create Log Sheet
27
- log_sheet = wb.add_worksheet name: 'Log'
28
- log_sheet.column_widths 10
29
- log_sheet.add_row ['Log Detail'], sz: 16
30
- log_sheet.add_row
31
-
32
- # Add rows to summary sheet
33
- (1..10).each do |sid|
34
- sum_sheet.add_row [sid, 'test', '1', '2', '3', '4', '5'], style: black_cell
35
-
36
- if sid.odd?
37
- link = "A#{current_row}"
38
- sum_sheet[link].style = blue_link
39
- sum_sheet.add_hyperlink location: "'Log'!A#{current_row}", target: :sheet, ref: link
40
- end
41
-
42
- current_row += 1
43
- end
44
-
45
- p.serialize 'where_is_my_color.xlsx'
@@ -1,89 +0,0 @@
1
- #!/usr/bin/env ruby -w -s
2
- # -*- coding: utf-8 -*-
3
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
4
- require 'axlsx'
5
-
6
- p = Axlsx::Package.new
7
- book = p.workbook
8
-
9
- # define your regular styles
10
- percent = book.styles.add_style(:format_code => "0.00%", :border => Axlsx::STYLE_THIN_BORDER)
11
- money = book.styles.add_style(:format_code => '0,000', :border => Axlsx::STYLE_THIN_BORDER)
12
- status = book.styles.add_style(:border => Axlsx::STYLE_THIN_BORDER)
13
-
14
- # define the style for conditional formatting
15
- profitable = book.styles.add_style( :fg_color => "428751", :type => :dxf )
16
- unprofitable = book.styles.add_style( :fg_color => "FF0000", :type => :dxf )
17
-
18
- book.add_worksheet(:name => "Cell Is") do |ws|
19
-
20
- # Generate 20 rows of data
21
- ws.add_row ["Previous Year Quarterly Profits (JPY)"]
22
- ws.add_row ["Quarter", "Profit", "% of Total"]
23
- offset = 3
24
- rows = 20
25
- offset.upto(rows + offset) do |i|
26
- ws.add_row ["Q#{i}", 10000*((rows/2-i) * (rows/2-i)), "=100*B#{i}/SUM(B3:B#{rows+offset})"], :style=>[nil, money, percent]
27
- end
28
-
29
- # Apply conditional formatting to range B3:B100 in the worksheet
30
- ws.add_conditional_formatting("B3:B100", { :type => :cellIs, :operator => :greaterThan, :formula => "100000", :dxfId => profitable, :priority => 1 })
31
- # Apply conditional using the between operator; NOTE: supply an array to :formula for between/notBetween
32
- ws.add_conditional_formatting("C3:C100", { :type => :cellIs, :operator => :between, :formula => ["0.00%","100.00%"], :dxfId => unprofitable, :priority => 1 })
33
- end
34
-
35
- book.add_worksheet(:name => "Color Scale") do |ws|
36
- ws.add_row ["Previous Year Quarterly Profits (JPY)"]
37
- ws.add_row ["Quarter", "Profit", "% of Total"]
38
- offset = 3
39
- rows = 20
40
- offset.upto(rows + offset) do |i|
41
- ws.add_row ["Q#{i}", 10000*((rows/2-i) * (rows/2-i)), "=100*B#{i}/SUM(B3:B#{rows+offset})"], :style=>[nil, money, percent]
42
- end
43
- # Apply conditional formatting to range B3:B100 in the worksheet
44
- color_scale = Axlsx::ColorScale.new
45
- ws.add_conditional_formatting("B3:B100", { :type => :colorScale, :operator => :greaterThan, :formula => "100000", :dxfId => profitable, :priority => 1, :color_scale => color_scale })
46
- end
47
-
48
-
49
- book.add_worksheet(:name => "Data Bar") do |ws|
50
- ws.add_row ["Previous Year Quarterly Profits (JPY)"]
51
- ws.add_row ["Quarter", "Profit", "% of Total"]
52
- offset = 3
53
- rows = 20
54
- offset.upto(rows + offset) do |i|
55
- ws.add_row ["Q#{i}", 10000*((rows/2-i) * (rows/2-i)), "=100*B#{i}/SUM(B3:B#{rows+offset})"], :style=>[nil, money, percent]
56
- end
57
- # Apply conditional formatting to range B3:B100 in the worksheet
58
- data_bar = Axlsx::DataBar.new
59
- ws.add_conditional_formatting("B3:B100", { :type => :dataBar, :dxfId => profitable, :priority => 1, :data_bar => data_bar })
60
- end
61
-
62
- book.add_worksheet(:name => "Icon Set") do |ws|
63
- ws.add_row ["Previous Year Quarterly Profits (JPY)"]
64
- ws.add_row ["Quarter", "Profit", "% of Total"]
65
- offset = 3
66
- rows = 20
67
- offset.upto(rows + offset) do |i|
68
- ws.add_row ["Q#{i}", 10000*((rows/2-i) * (rows/2-i)), "=100*B#{i}/SUM(B3:B#{rows+offset})"], :style=>[nil, money, percent]
69
- end
70
- # Apply conditional formatting to range B3:B100 in the worksheet
71
- icon_set = Axlsx::IconSet.new
72
- ws.add_conditional_formatting("B3:B100", { :type => :iconSet, :dxfId => profitable, :priority => 1, :icon_set => icon_set })
73
- end
74
-
75
- book.add_worksheet(:name => "Contains Text") do |ws|
76
- ws.add_row ["Previous Year Quarterly Profits (JPY)"]
77
- ws.add_row ["Quarter", "Profit", "% of Total", "Status"]
78
- offset = 3
79
- rows = 20
80
- offset.upto(rows + offset) do |i|
81
- ws.add_row ["Q#{i}", 10000*((rows/2-i) * (rows/2-i)), "=100*B#{i}/SUM(B3:B#{rows+offset})", (10000*((rows/2-i) * (rows/2-i))) > 100000 ? "PROFIT" : "LOSS"], :style=>[nil, money, percent, status]
82
- end
83
-
84
- # Apply conditional formatting to range D3:D100 in the worksheet
85
- ws.add_conditional_formatting("D3:D100", { :type => :containsText, :operator => :equal, :text => "PROFIT", :dxfId => profitable, :priority => 1 })
86
- ws.add_conditional_formatting("D3:D100", { :type => :containsText, :operator => :equal, :text => "LOSS", :dxfId => unprofitable, :priority => 1 })
87
- end
88
-
89
- p.serialize('example_conditional_formatting.xlsx')
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env ruby -w -s
2
- # -*- coding: utf-8 -*-
3
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
4
- require 'axlsx'
5
- p = Axlsx::Package.new
6
- p.workbook do |wb|
7
- # define your regular styles
8
- styles = wb.styles
9
- title = styles.add_style :sz => 15, :b => true, :u => true
10
- default = styles.add_style :border => Axlsx::STYLE_THIN_BORDER
11
- header = styles.add_style :bg_color => '00', :fg_color => 'FF', :b => true
12
- money = styles.add_style :format_code => '#,###,##0', :border => Axlsx::STYLE_THIN_BORDER
13
- percent = styles.add_style :num_fmt => Axlsx::NUM_FMT_PERCENT, :border => Axlsx::STYLE_THIN_BORDER
14
-
15
- # define the style for conditional formatting - its the :dxf bit that counts!
16
- profitable = styles.add_style :fg_color => 'FF428751', :sz => 12, :type => :dxf, :b => true
17
-
18
- wb.add_worksheet(:name => 'Data Bar Conditional Formatting') do |ws|
19
- ws.add_row ['A$$le Q1 Revenue Historical Analysis (USD)'], :style => title
20
- ws.add_row
21
- ws.add_row ['Quarter', 'Profit', '% of Total'], :style => header
22
- ws.add_row ['Q1-2010', '15680000000', '=B4/SUM(B4:B7)'], :style => [default, money, percent]
23
- ws.add_row ['Q1-2011', '26740000000', '=B5/SUM(B4:B7)'], :style => [default, money, percent]
24
- ws.add_row ['Q1-2012', '46330000000', '=B6/SUM(B4:B7)'], :style => [default, money, percent]
25
- ws.add_row ['Q1-2013(est)', '72230000000', '=B7/SUM(B4:B7)'], :style => [default, money, percent]
26
-
27
- ws.merge_cells 'A1:C1'
28
-
29
- # Apply conditional formatting to range B4:B7 in the worksheet
30
- data_bar = Axlsx::DataBar.new
31
- ws.add_conditional_formatting 'B4:B7', { :type => :dataBar,
32
- :dxfId => profitable,
33
- :priority => 1,
34
- :data_bar => data_bar }
35
- end
36
- end
37
- p.serialize 'getting_barred.xlsx'
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env ruby -w -s
2
- # -*- coding: utf-8 -*-
3
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
4
- require 'axlsx'
5
- p = Axlsx::Package.new
6
- p.workbook do |wb|
7
- # define your regular styles
8
- styles = wb.styles
9
- title = styles.add_style :sz => 15, :b => true, :u => true
10
- default = styles.add_style :border => Axlsx::STYLE_THIN_BORDER
11
- header = styles.add_style :bg_color => '00', :fg_color => 'FF', :b => true
12
- money = styles.add_style :format_code => '###,###,###,##0', :border => Axlsx::STYLE_THIN_BORDER
13
- percent = styles.add_style :num_fmt => Axlsx::NUM_FMT_PERCENT, :border => Axlsx::STYLE_THIN_BORDER
14
-
15
- # define the style for conditional formatting - its the :dxf bit that counts!
16
- profitable = styles.add_style :fg_color => 'FF428751', :sz => 12, :type => :dxf, :b => true
17
-
18
- wb.add_worksheet(:name => 'The High Notes') do |ws|
19
- ws.add_row ['A$$le Q1 Revenue Historical Analysis (USD)'], :style => title
20
- ws.add_row
21
- ws.add_row ['Quarter', 'Profit', '% of Total'], :style => header
22
- ws.add_row ['Q1-2010', '15680000000', '=B4/SUM(B4:B7)'], :style => [default, money, percent]
23
- ws.add_row ['Q1-2011', '26740000000', '=B5/SUM(B4:B7)'], :style => [default, money, percent]
24
- ws.add_row ['Q1-2012', '46330000000', '=B6/SUM(B4:B7)'], :style => [default, money, percent]
25
- ws.add_row ['Q1-2013(est)', '72230000000', '=B7/SUM(B4:B7)'], :style => [default, money, percent]
26
-
27
- ws.merge_cells 'A1:C1'
28
-
29
- # Apply conditional formatting to range B4:B7 in the worksheet
30
- ws.add_conditional_formatting 'B4:B7', { :type => :cellIs,
31
- :operator => :greaterThan,
32
- :formula => '27000000000',
33
- :dxfId => profitable,
34
- :priority => 1 }
35
- end
36
- end
37
- p.serialize 'the_high_notes.xlsx'
@@ -1,39 +0,0 @@
1
- #!/usr/bin/env ruby -w -s
2
- # -*- coding: utf-8 -*-
3
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
4
- require 'axlsx'
5
- p = Axlsx::Package.new
6
- p.workbook do |wb|
7
- # define your regular styles
8
- styles = wb.styles
9
- title = styles.add_style :sz => 15, :b => true, :u => true
10
- default = styles.add_style :border => Axlsx::STYLE_THIN_BORDER
11
- header = styles.add_style :bg_color => '00', :fg_color => 'FF', :b => true
12
- money = styles.add_style :format_code => '#,###,##0', :border => Axlsx::STYLE_THIN_BORDER
13
- percent = styles.add_style :num_fmt => Axlsx::NUM_FMT_PERCENT, :border => Axlsx::STYLE_THIN_BORDER
14
-
15
- # define the style for conditional formatting - its the :dxf bit that counts!
16
- profitable = styles.add_style :fg_color => 'FF428751', :sz => 12, :type => :dxf, :b => true
17
-
18
- wb.add_worksheet(:name => 'Scaled Colors') do |ws|
19
- ws.add_row ['A$$le Q1 Revenue Historical Analysis (USD)'], :style => title
20
- ws.add_row
21
- ws.add_row ['Quarter', 'Profit', '% of Total'], :style => header
22
- ws.add_row ['Q1-2010', '15680000000', '=B4/SUM(B4:B7)'], :style => [default, money, percent]
23
- ws.add_row ['Q1-2011', '26740000000', '=B5/SUM(B4:B7)'], :style => [default, money, percent]
24
- ws.add_row ['Q1-2012', '46330000000', '=B6/SUM(B4:B7)'], :style => [default, money, percent]
25
- ws.add_row ['Q1-2013(est)', '72230000000', '=B7/SUM(B4:B7)'], :style => [default, money, percent]
26
-
27
- ws.merge_cells 'A1:C1'
28
-
29
- # Apply conditional formatting to range B4:B7 in the worksheet
30
- color_scale = Axlsx::ColorScale.new
31
- ws.add_conditional_formatting 'B4:B7', { :type => :colorScale,
32
- :operator => :greaterThan,
33
- :formula => '27000000000',
34
- :dxfId => profitable,
35
- :priority => 1,
36
- :color_scale => color_scale }
37
- end
38
- end
39
- p.serialize 'scaled_colors.xlsx'