diff options
| author | Randy Morgan <[email protected]> | 2011-11-21 19:46:07 +0900 |
|---|---|---|
| committer | Randy Morgan <[email protected]> | 2011-11-21 19:46:07 +0900 |
| commit | 0a8c8cde8bf55d2f0f3b5ae26e38d7d4bda8a625 (patch) | |
| tree | e0daa611bff8ef079f36d9fab7108ec8d63b9ee7 /assets/example.rb | |
| parent | bfdd6993737f4a7294da00e25d03651cf03add5d (diff) | |
| download | caxlsx-0a8c8cde8bf55d2f0f3b5ae26e38d7d4bda8a625.tar.gz caxlsx-0a8c8cde8bf55d2f0f3b5ae26e38d7d4bda8a625.zip | |
Readme update with better examples
Diffstat (limited to 'assets/example.rb')
| -rw-r--r-- | assets/example.rb | 176 |
1 files changed, 59 insertions, 117 deletions
diff --git a/assets/example.rb b/assets/example.rb index aaaf3970..b3fe6f54 100644 --- a/assets/example.rb +++ b/assets/example.rb @@ -1,128 +1,70 @@ -require 'rubygems' -require 'axlsx' + require 'rubygems' + require 'axlsx' -p = Axlsx::Package.new do |package| - package.workbook.add_worksheet do |sheet| - sheet.add_row ["First", "Second", "Third"], :style => Axlsx::STYLE_THIN_BORDER - sheet.add_row [1, 2, 3], :style => Axlsx::STYLE_THIN_BORDER - sheet.add_chart(Axlsx::Bar3DChart, :start_at => [0,2], :end_at => [5, 15], :title=>"example 1: Chart") do |chart| - chart.add_series :data=>sheet.rows.last.cells, :labels=> sheet.rows.first.cells - end - end - package.serialize("example1.xlsx") -end +#A Simple Workbook + p = Axlsx::Package.new + p.workbook.add_worksheet do |sheet| + sheet.add_row ["First", "Second", "Third"] + sheet.add_row [1, 2, 3] + end + p.serialize("example1.xlsx") -p = Axlsx::Package.new do |package| - header_style = package.workbook.styles.add_style :bg_color => "FF000000", :fg_color => "FFFFFFFF", :sz=>14, :alignment => {:horizontal => :center } - package.workbook.add_worksheet do |sheet| - sheet.add_row ["First", "Second", "Third"], :style => header_style - sheet.add_row [1, 2, 3], :style => Axlsx::STYLE_THIN_BORDER - sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,2], :end_at => [5, 15], :title=>"example 2: Pie Chart") do |chart| - chart.add_series :data=>sheet.rows.last.cells, :labels=> sheet.rows.first.cells - end - end - package.serialize("example3.xlsx") -end - -p = Axlsx::Package.new do |package| - black_cell_spec = { :bg_color => "FF000000", :fg_color => "FFFFFFFF", :sz=>14, :alignment => { :horizontal=> :center } } - blue_cell_spec = { :bg_color => "FF0000FF", :fg_color => "FFFFFFFF", :sz=>14, :alignment => { :horizontal=> :center } } - - black_cell = package.workbook.styles.add_style black_cell_spec - blue_cell = package.workbook.styles.add_style blue_cell_spec - - package.workbook.add_worksheet do |sheet| - sheet.add_row ["Text Autowidth", "Second", "Third"], :style => [black_cell, blue_cell, black_cell] - sheet.add_row [1, 2, 3], :style => Axlsx::STYLE_THIN_BORDER - end - package.serialize("example4.xlsx") -end -# example 5 - p = Axlsx::Package.new do |package| - date = package.workbook.styles.add_style :format_code=>"yyyy-mm-dd", :border => Axlsx::STYLE_THIN_BORDER - padded = package.workbook.styles.add_style :format_code=>"00#", :border => Axlsx::STYLE_THIN_BORDER - percent = package.workbook.styles.add_style :format_code=>"0%", :border => Axlsx::STYLE_THIN_BORDER - package.workbook.date1904 = true - package.workbook.add_worksheet do |sheet| - sheet.add_row - sheet.add_row ["Custom Formatted Date", "Percent Formatted Float", "Padded Numbers"], :style => Axlsx::STYLE_THIN_BORDER - sheet.add_row [Time.now, 0.2, 32], :style => [date, percent, padded] +#Generating A Bar Chart + p = Axlsx::Package.new + p.workbook.add_worksheet do |sheet| + sheet.add_row ["First", "Second", "Third"] + sheet.add_row [1, 2, 3] + sheet.add_chart(Axlsx::Bar3DChart, :start_at => [0,2], :end_at => [5, 15], :title=>"example 1: Chart") do |chart| + chart.add_series :data=>sheet.rows.last.cells, :labels=> sheet.rows.first.cells end - package.serialize("example5.xlsx") end + p.serialize("example2.xlsx") -p = Axlsx::Package.new -wb = p.workbook - -styles = wb.styles - -header_style = styles.add_style(:bg_color=>"FF000000", :fg_color=>"FFFFFFFF", :sz=>14, :alignment=>{:horizontal=>:center}) -table_title = styles.add_style :sz=>22 -date_time = styles.add_style(:num_fmt=>Axlsx::NUM_FMT_YYYYMMDDHHMMSS) -date = styles.add_style :num_fmt=>Axlsx::NUM_FMT_YYYYMMDD -bordered = styles.add_style :border=>Axlsx::STYLE_THIN_BORDER - -wb.add_worksheet do |sheet| - sheet.name = "Example 1" - # add cells as a row - sheet.add_row ['Example 1 Styling and Bar Chart'], :style=>table_title - sheet.add_row ["Formatted Time Stamp", Time.now],:style=>[nil, date_time] - # adding cells one at a time - sheet.add_row do |row| - row.add_cell "Formatted Date" - row.add_cell Time.now, :style => date, :type=>:time - end +#Generating A Pie Chart + p = Axlsx::Package.new + p.workbook.add_worksheet do |sheet| + sheet.add_row ["First", "Second", "Third"] + sheet.add_row [1, 2, 3] + sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,2], :end_at => [5, 15], :title=>"example 2: Pie Chart") do |chart| + chart.add_series :data=>sheet.rows.last.cells, :labels=> sheet.rows.first.cells + end + end + p.serialize("example3.xlsx") - # Bar 3D Chart - sheet.add_row - label_row = sheet.add_row ["0 ~ 10", "11 ~ 20", "21 ~ 60"], :style=>header_style - data_row = sheet.add_row [12, 60, 25], :style=>bordered - sheet.add_chart(Axlsx::Bar3DChart, :show_legend=>false) do |chart| - chart.title = Axlsx::Title.new(sheet.rows.first.cells.first) - chart.add_series :data => data_row.cells, :labels => label_row.cells - chart.start_at.coord(0, 7) - chart.end_at.coord(3, 17) - end +#Using Custom Styles -end + p = Axlsx::Package.new + wb = p.workbook + black_cell = wb.styles.add_style :bg_color => "FF000000", :fg_color => "FFFFFFFF", :sz=>14, :alignment => { :horizontal=> :center } + blue_cell = wb.styles.add_style :bg_color => "FF0000FF", :fg_color => "FFFFFFFF", :sz=>14, :alignment => { :horizontal=> :center } + wb.add_worksheet do |sheet| + sheet.add_row ["Text Autowidth", "Second", "Third"], :style => [black_cell, blue_cell, black_cell] + sheet.add_row [1, 2, 3], :style => Axlsx::STYLE_THIN_BORDER + end + p.serialize("example4.xlsx") -# Blocks are not required -percent = styles.add_style :num_fmt=>Axlsx::NUM_FMT_PERCENT, :border=>Axlsx::STYLE_THIN_BORDER -wb.add_worksheet(:name=>"Example 2") do |sheet| - sheet.add_row ["Example 2 - Styling and Pie Chart"], :style=>table_title - label_row = sheet.add_row(["Summer", "Fall", "Winter", "Spring"], :style=>header_style) - data_row = sheet.add_row [0.5, 0.2, 0.2, 0.1], :style=>percent - chart = sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,4], :end_at => [4,14], :title => "Pie Consumption per Season") do |chart| - chart.add_series :data => data_row.cells, :labels=>label_row.cells - end -end -# Charts can be build with out data in the sheet -wb.add_worksheet(:name=>"Example 3") do |ws| - ws.add_row ["Charts can be build without any data in the worksheet"] - ws.add_chart(Axlsx::Pie3DChart, :title=>"free chart 1") do |chart| - chart.start_at.coord(0,2) - chart.end_at.coord(3,12) - chart.add_series :data => [13,54,1], :labels=>["nothing","in","the sheet"] - end - ws.add_chart(Axlsx::Pie3DChart) do |chart| - chart.start_at.coord(0,13) - chart.end_at.coord(3,23) - chart.add_series :data => [1,4,5], :labels=>["nothing","in","the sheet"], :title=>"free chart 2" - end -end +#Using Custom Formatting and date1904 -# wb.add_worksheet(:name=>"Example 4") do |sheet| -# sheet.add_row ["lots of data!"] -# (1..100).each do |i| -# cells = (1..50).map { |i| rand(5 ** 10) } -# sheet.add_row cells -# end -# end + p = Axlsx::Package.new + wb = p.workbook + date = wb.styles.add_style :format_code=>"yyyy-mm-dd", :border => Axlsx::STYLE_THIN_BORDER + padded = wb.styles.add_style :format_code=>"00#", :border => Axlsx::STYLE_THIN_BORDER + percent = wb.styles.add_style :format_code=>"0%", :border => Axlsx::STYLE_THIN_BORDER + wb.date1904 = true # required for generation on mac + wb.add_worksheet do |sheet| + sheet.add_row ["Custom Formatted Date", "Percent Formatted Float", "Padded Numbers"], :style => Axlsx::STYLE_THIN_BORDER + sheet.add_row [Time.now, 0.2, 32], :style => [date, percent, padded] + end + p.serialize("example5.xlsx") -errors = p.validate -if errors.empty? - p.serialize('test.xlsx') -else - puts errors.to_s -end +#Validation + p = Axlsx::Package.new + p.workbook.add_worksheet do |sheet| + sheet.add_row ["First", "Second", "Third"] + sheet.add_row [1, 2, 3] + end + p.validate.each do |error| + puts error.inspect + end + |
