Class: Writeexcel::Chart::Area

Inherits:
Writeexcel::Chart show all
Defined in:
lib/writeexcel/charts/area.rb

Overview

==SYNOPSIS

To create a simple Excel file with a Area chart using WriteExcel:

#!/usr/bin/ruby -w

require 'writeexcel'

workbook  = WriteExcel.new('chart.xls')
worksheet = workbook.add_worksheet

chart     = workbook.add_chart(:type => 'Chart::Area')

# 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 Area charts for WriteExcel. The chart object is created via the Workbook add_chart method:

chart = workbook.add_chart(:type => 'Chart::Area')

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.

==Area Chart Methods

There aren't currently any area 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_area.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::Area', :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

#data, #datasize

Instance Method Summary collapse

Methods inherited from Writeexcel::Chart

#add_series, #close, #data=, #embedded, #embedded=, factory, #set_chartarea, #set_embedded_config_data, #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

#convert_date_time

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

#caller_info

Methods inherited from WriteFile

#append, #prepend

Constructor Details

#initialize(*args) ⇒ Area

new()



132
133
134
# File 'lib/writeexcel/charts/area.rb', line 132

def initialize(*args)   # :nodoc:
  super
end

Instance Method Details

#store_chart_typeObject

_store_chart_type()

Implementation of the abstract method from the specific chart class.

Write the AREA chart BIFF record. Defines a area chart type.



144
145
146
147
148
149
150
# File 'lib/writeexcel/charts/area.rb', line 144

def store_chart_type   # :nodoc:
  record = 0x101A     # Record identifier.
  length = 0x0002     # Number of bytes to follow.
  grbit  = 0x0001     # Option flags.

  store_simple(record, length, grbit)
end