Class: Writeexcel::Chart::Bar
- Inherits:
-
Writeexcel::Chart
- Object
- WriteFile
- BIFFWriter
- Worksheet
- Writeexcel::Chart
- Writeexcel::Chart::Bar
- Defined in:
- lib/writeexcel/charts/bar.rb
Overview
==SYNOPSIS
To create a simple Excel file with a Bar chart using WriteExcel:
#!/usr/bin/ruby -w
require 'writeexcel'
workbook = WriteExcel.new('chart.xls')
worksheet = workbook.add_worksheet
chart = workbook.add_chart(:type => 'Chart::Bar')
# Configure the chart.
chart.add_series(
:categories => '=Sheet1!$A$2:$A$7',
:values => '=Sheet1!$B$2:$B$7',
)
# Add the worksheet data the chart refers to.
data = [
[ 'Category', 2, 3, 4, 5, 6, 7 ],
[ 'Value', 1, 4, 5, 2, 1, 5 ]
]
worksheet.write('A1', data)
workbook.close
==DESCRIPTION
This module implements Bar charts for WriteExcel. The chart object is created via the Workbook add_chart method:
chart = workbook.add_chart(:type => 'Chart::Bar')
Once the object is created it can be configured via the following methods that are common to all chart classes:
chart.add_series
chart.set_x_axis
chart.set_y_axis
chart.set_title
These methods are explained in detail in Chart section of WriteExcel. Class specific methods or settings, if any, are explained below.
==Bar Chart Methods
There aren't currently any bar chart specific methods. See the TODO section of Chart of Writeexcel.
==EXAMPLE
Here is a complete example that demonstrates most of the available features when creating a chart.
#!/usr/bin/ruby -w
require 'writeexcel'
workbook = WriteExcel.new('chart_bar.xls')
worksheet = workbook.add_worksheet
bold = workbook.add_format(:bold => 1)
# Add the worksheet data that the charts will refer to.
headings = [ 'Number', 'Sample 1', 'Sample 2' ]
data = [
[ 2, 3, 4, 5, 6, 7 ],
[ 1, 4, 5, 2, 1, 5 ],
[ 3, 6, 7, 5, 4, 3 ]
]
worksheet.write('A1', headings, bold)
worksheet.write('A2', data)
# Create a new chart object. In this case an embedded chart.
chart = workbook.add_chart(:type => 'Chart::Bar', :embedded => 1)
# Configure the first series. (Sample 1)
chart.add_series(
:name => 'Sample 1',
:categories => '=Sheet1!$A$2:$A$7',
:values => '=Sheet1!$B$2:$B$7',
)
# Configure the second series. (Sample 2)
chart.add_series(
:name => 'Sample 2',
:categories => '=Sheet1!$A$2:$A$7',
:values => '=Sheet1!$C$2:$C$7',
)
# Add a chart title and some axis labels.
chart.set_title (:name => 'Results of sample analysis')
chart.set_x_axis(:name => 'Test number')
chart.set_y_axis(:name => 'Sample length (cm)')
# Insert the chart into the worksheet (with an offset).
worksheet.insert_chart('D2', chart, 25, 10)
workbook.close
Constant Summary
Constants inherited from Worksheet
Worksheet::Buffer, Worksheet::ColMax, Worksheet::RowMax, Worksheet::StrMax
Constants inherited from BIFFWriter
BIFFWriter::BIFF_Version, BIFFWriter::BigEndian
Instance Attribute Summary
Attributes inherited from Worksheet
#filter_area, #object_ids, #print_range, #title_range
Attributes inherited from BIFFWriter
Instance Method Summary collapse
-
#initialize(*args) ⇒ Bar
constructor
new().
-
#set_embedded_config_data ⇒ Object
_set_embedded_config_data().
-
#store_chart_type ⇒ Object
_store_chart_type().
Methods inherited from Writeexcel::Chart
#add_series, #close, #data=, #embedded, #embedded=, factory, #set_chartarea, #set_legend, #set_plotarea, #set_title, #set_x_axis, #set_y_axis, #using_tmpfile=
Methods inherited from Worksheet
#activate, #autofilter, #autofilter_name_record_short, #boundsheet, #center_horizontally, #center_vertically, #charts_size, #cleanup, #close, #comments_size, #comments_visible?, #data_validation, #filter_column, #filter_count, #fit_to_pages, #freeze_panes, #hidden=, #hidden?, #hide, #hide_gridlines, #hide_zero, #image_mso_size, #image_mso_size=, #images_array, #images_size, #index, #insert_chart, #insert_image, #is_name_utf16be?, #keep_leading_zeros, #merge_range, #merge_range_with_date_time, #name, #name_record_short, #num_images, #num_images=, #num_shapes, #offset, #offset=, #outline_settings, #position_object, #print_across, #print_area, #print_area_name_record_short, #print_row_col_headers, #print_title_name_record_long, #print_title_name_record_short, #protect, #push_cluster, #push_object_ids, #repeat_columns, #repeat_formula, #repeat_rows, #right_to_left, #select, #selected=, #selected?, #set_column, #set_first_row_column, #set_first_sheet, #set_footer, #set_h_pagebreaks, #set_header, #set_landscape, #set_margin_bottom, #set_margin_left, #set_margin_right, #set_margin_top, #set_margins, #set_margins_LR, #set_margins_TB, #set_page_view, #set_paper, #set_portrait, #set_print_scale, #set_row, #set_selection, #set_start_page, #set_tab_color, #set_v_pagebreaks, #set_zoom, #show_comments, #split_panes, #store_formula, #store_mso_client_anchor, #store_mso_client_data, #store_mso_opt_image, #store_mso_sp, #store_mso_sp_container, #store_parent_mso_record, #type, #write, #write_blank, #write_col, #write_comment, #write_date_time, #write_formula, #write_number, #write_row, #write_string, #write_url, #write_url_range, #write_utf16be_string, #write_utf16le_string
Methods included from ConvertDateTime
Methods inherited from BIFFWriter
#add_continue, #add_mso_generic, #append, #cleanup, #clear_data_for_test, #get_data, #inspect, #not_using_tmpfile, #prepend, #print_caller_info, #set_byte_order, #store_bof, #store_eof, #unpack_record
Methods included from CallerInfo
Methods inherited from WriteFile
Constructor Details
#initialize(*args) ⇒ Bar
new()
132 133 134 135 136 137 138 |
# File 'lib/writeexcel/charts/bar.rb', line 132 def initialize(*args) # :nodoc: super @config[:x_axis_text] = [ 0x2D, 0x6D9, 0x5F, 0x1CC, 0x281, 0x0, 90 ] @config[:x_axis_text_pos] = [ 2, 2, 0, 0, 0x17, 0x2A ] @config[:y_axis_text] = [ 0x078A, 0x0DFC, 0x011D, 0x9C, 0x0081, 0x0000 ] @config[:y_axis_text_pos] = [ 2, 2, 0, 0, 0x45, 0x17 ] end |
Instance Method Details
#set_embedded_config_data ⇒ Object
_set_embedded_config_data()
Override some of the default configuration data for an embedded chart.
164 165 166 167 168 169 170 171 172 173 |
# File 'lib/writeexcel/charts/bar.rb', line 164 def # :nodoc: # Set the parent configuration first. super # The axis positions are reversed for a bar chart so we change the config. @config[:x_axis_text] = [ 0x57, 0x5BC, 0xB5, 0x214, 0x281, 0x0, 90 ] @config[:x_axis_text_pos] = [ 2, 2, 0, 0, 0x17, 0x2A ] @config[:y_axis_text] = [ 0x074A, 0x0C8F, 0x021F, 0x123, 0x81, 0x0000 ] @config[:y_axis_text_pos] = [ 2, 2, 0, 0, 0x45, 0x17 ] end |
#store_chart_type ⇒ Object
_store_chart_type()
Implementation of the abstract method from the specific chart class.
Write the BAR chart BIFF record. Defines a bar or column chart type.
148 149 150 151 152 153 154 155 156 |
# File 'lib/writeexcel/charts/bar.rb', line 148 def store_chart_type # :nodoc: record = 0x1017 # Record identifier. length = 0x0006 # Number of bytes to follow. pcOverlap = 0x0000 # Space between bars. pcGap = 0x0096 # Space between cats. grbit = 0x0001 # Option flags. store_simple(record, length, pcOverlap, pcGap, grbit) end |