Class: Axlsx::Border

Inherits:
Object
  • Object
show all
Defined in:
lib/axlsx/stylesheet/border.rb

Overview

This class details a border used in Office Open XML spreadsheet styles.

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (Border) initialize(options = {})

Creates a new Border object

Examples:

Making a border

p = Package.new
red_border = Border.new
[:left, :right, :top, :bottom].each do |item| 
  red_border.prs << BorderPr.new(:name=>item, :style=>:thin, :color=>Color.new(:rgb=>"FFFF0000"))     #   
end
# this sets red_border to be the index for the created border.
red_border = p.workbook.styles.@borders << red_border
#used in row creation as follows. This will add a red border to each of the cells in the row.
p.workbook.add_worksheet.rows << :values=>[1,2,3] :style=>red_border

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • diagonalUp (Boolean)
  • diagonalDown (Boolean)
  • outline (Boolean)


31
32
33
34
35
36
# File 'lib/axlsx/stylesheet/border.rb', line 31

def initialize(options={})
  @prs = SimpleTypedList.new BorderPr
  options.each do |o|
    self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
  end
end

Instance Attribute Details

- (Boolean) diagonalDown

The diagonal down property for the border that indicates if the border should include a diagonal line from the top left to the top right of the cell.

Returns:

  • (Boolean)

    The diagonal down property for the border that indicates if the border should include a diagonal line from the top left to the top right of the cell.



9
10
11
# File 'lib/axlsx/stylesheet/border.rb', line 9

def diagonalDown
  @diagonalDown
end

- (Boolean) diagonalUp

The diagonal up property for the border that indicates if the border should include a diagonal line from the bottom left to the top right of the cell.

Returns:

  • (Boolean)

    The diagonal up property for the border that indicates if the border should include a diagonal line from the bottom left to the top right of the cell.



6
7
8
# File 'lib/axlsx/stylesheet/border.rb', line 6

def diagonalUp
  @diagonalUp
end

- (Boolean) outline

The outline property for the border indicating that top, left, right and bottom borders should only be applied to the outside border of a range of cells.

Returns:

  • (Boolean)

    The outline property for the border indicating that top, left, right and bottom borders should only be applied to the outside border of a range of cells.



12
13
14
# File 'lib/axlsx/stylesheet/border.rb', line 12

def outline
  @outline
end

- (SimpleTypedList) prs (readonly)

A list of BorderPr objects for this border.

Returns:



15
16
17
# File 'lib/axlsx/stylesheet/border.rb', line 15

def prs
  @prs
end

Instance Method Details

- (Object) to_xml(xml)

Serializes the border element

Parameters:

  • xml (Nokogiri::XML::Builder)

    The document builder instance this objects xml will be added to.



44
45
46
47
48
49
50
# File 'lib/axlsx/stylesheet/border.rb', line 44

def to_xml(xml)
  xml.border(self.instance_values.select{ |k,v| [:diagonalUp, :diagonalDown, :outline].include? k }) {
    [:start, :end, :left, :right, :top, :bottom, :diagonal, :vertical, :horizontal].each do |k|
      @prs.select { |pr| pr.name == k }.each { |pr| pr.to_xml(xml) }
    end
  }
end