Sha256: dbe624c678050c5d54901f66fa0c8424f8d9124351e5972e803a926776953dcb

Contents?: true

Size: 1.99 KB

Versions: 9

Compression:

Stored size: 1.99 KB

Contents

# -*- coding: utf-8 -*-
###############################################################################
#
# Bar - A class for writing Excel Bar charts.
#
# Used in conjunction with Chart.
#
# See formatting note in Chart.
#
# Copyright 2000-2011, John McNamara, jmcnamara@cpan.org
# Convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
#

require 'write_xlsx/package/xml_writer_simple'
require 'write_xlsx/utility'

module Writexlsx
  class Chart
    class Bar < self
      include Writexlsx::Utility

      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

      #
      # Override the virtual superclass method with a chart specific method.
      #
      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

      #
      # Write the <c:barDir> element.
      #
      def write_bar_dir
        val  = 'bar'

        attributes = ['val', val]

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

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
write_xlsx-0.62.0 lib/write_xlsx/chart/bar.rb
write_xlsx-0.61.0 lib/write_xlsx/chart/bar.rb
write_xlsx-0.60.0 lib/write_xlsx/chart/bar.rb
write_xlsx-0.59.0 lib/write_xlsx/chart/bar.rb
write_xlsx-0.58.0 lib/write_xlsx/chart/bar.rb
write_xlsx-0.57.0 lib/write_xlsx/chart/bar.rb
write_xlsx-0.56.0 lib/write_xlsx/chart/bar.rb
write_xlsx-0.55.0 lib/write_xlsx/chart/bar.rb
write_xlsx-0.54.0 lib/write_xlsx/chart/bar.rb