Class: Writexlsx::Chart::Bar

Inherits:
Writexlsx::Chart show all
Includes:
Utility
Defined in:
lib/write_xlsx/chart/bar.rb

Constant Summary

Constants included from Utility

Utility::COL_MAX, Utility::ROW_MAX, Utility::SHEETNAME_MAX, Utility::STR_MAX

Instance Attribute Summary

Attributes inherited from Writexlsx::Chart

#embedded, #formula_data, #formula_ids, #id, #index, #name, #palette, #protection

Instance Method Summary collapse

Methods included from Utility

#absolute_char, #check_dimensions, #check_dimensions_and_update_max_min_values, #check_parameter, #convert_date_time, delete_files, #ptrue?, #put_deprecate_message, #row_col_notation, #store_col_max_min_values, #store_row_max_min_values, #substitute_cellref, #underline_attributes, #write_color, #xl_cell_to_rowcol, #xl_col_to_name, #xl_range, #xl_range_formula, #xl_rowcol_to_cell, #xml_str

Methods inherited from Writexlsx::Chart

#add_series, #assemble_xml_file, factory, #set_chartarea, #set_embedded_config_data, #set_legend, #set_plotarea, #set_style, #set_title, #set_x2_axis, #set_x_axis, #set_xml_writer, #set_y2_axis, #set_y_axis, #show_blanks_as, #show_hidden_data, #write_bar_chart

Constructor Details

#initialize(subtype) ⇒ Bar

Returns a new instance of Bar.



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
# File 'lib/write_xlsx/chart/bar.rb', line 22

def initialize(subtype)
  super(subtype)
  @subtype = subtype || 'clustered'
  @cat_axis_position = 'l'
  @val_axis_position = 'b'
  @horiz_val_axis    = 0
  @horiz_cat_axis    = 1
  @show_crosses      = false

  # Override and reset the default axis values.
  if @x_axis[:_defaults]
    @x_axis[:_defaults][:major_gridlines] = { :visible => 1 }
  else
    @x_axis[:_defaults] = { :major_gridlines => { :visible => 1 } }
  end
  if @y_axis[:_defaults]
    @y_axis[:_defaults][:major_gridlines] = { :visible => 0 }
  else
    @y_axis[:_defaults] = { :major_gridlines => { :visible => 0 } }
  end

  if @subtype == 'percent_stacked'
      @x_axis[:_defaults][:num_format] = '0%'
  end

  set_x_axis
  set_y_axis
end

Instance Method Details

#write_bar_dirObject

Write the <c:barDir> element.



70
71
72
73
74
75
76
# File 'lib/write_xlsx/chart/bar.rb', line 70

def write_bar_dir
  val  = 'bar'

  attributes = ['val', val]

  @writer.empty_tag('c:barDir', attributes)
end

#write_chart_type(params) ⇒ Object

Override the virtual superclass method with a chart specific method.



54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/write_xlsx/chart/bar.rb', line 54

def write_chart_type(params)
  if params[:primary_axes] != 0
    # Reverse X and Y axes for Bar charts.
    @y_axis, @x_axis = @x_axis, @y_axis
    if @y2_axis[:_position] == 'r'
      @y2_axis[:_position] = 't'
    end
  end

  # Write the c:barChart element.
  write_bar_chart(params)
end