Class: Spreadsheet::Format
- Inherits:
-
Object
- Object
- Spreadsheet::Format
- Defined in:
- lib/spreadsheet/format.rb
Overview
Formatting data
Direct Known Subclasses
Instance Attribute Summary collapse
-
#font ⇒ Object
Returns the value of attribute font.
-
#name ⇒ Object
Returns the value of attribute name.
-
#number_format ⇒ Object
Returns the value of attribute number_format.
-
#pattern ⇒ Object
Returns the value of attribute pattern.
-
#rotation ⇒ Object
Text rotation.
-
#used_merge ⇒ Object
Returns the value of attribute used_merge.
Instance Method Summary collapse
-
#align=(location) ⇒ Object
Combined method for both horizontal and vertical alignment.
-
#border ⇒ Object
Returns an Array containing the line styles of the four borders: bottom, top, right, left.
-
#border=(style) ⇒ Object
Set same line style on all four borders at once (left, right, top, bottom).
-
#border_color ⇒ Object
Returns an Array containing the colors of the four borders: bottom, top, right, left.
-
#border_color=(color) ⇒ Object
Set all four border colors to color (left, right, top, bottom).
-
#bottom_color ⇒ Object
Color attributes.
-
#center_across! ⇒ Object
(also: #merge!)
Backward compatibility method.
-
#cross_down ⇒ Object
- You can set the following boolean attributes: #cross_down
-
Draws a Line from the top-left to the bottom-right corner of a cell.
-
#date? ⇒ Boolean
Is the cell formatted as a Date?.
-
#date_or_time? ⇒ Boolean
Is the cell formatted as a Date or Time?.
-
#datetime? ⇒ Boolean
Is the cell formatted as a DateTime?.
-
#horizontal_align ⇒ Object
Horizontal alignment Valid values: :default, :left, :center, :right, :fill, :justify, :merge, :distributed Default: :default.
-
#indent_level ⇒ Object
(also: #indent)
Indentation level.
-
#initialize(opts = {}) {|_self| ... } ⇒ Format
constructor
A new instance of Format.
-
#number? ⇒ Boolean
Is the cell formatted as a number?.
-
#text_direction ⇒ Object
(also: #reading_order)
Text direction Valid values: :context, :left_to_right, :right_to_left Default: :context.
-
#time? ⇒ Boolean
Is the cell formatted as a Time?.
- #update_format(opts = {}) ⇒ Object
-
#vertical_align ⇒ Object
Vertical alignment Valid values: :bottom, :top, :middle, :justify, :distributed Default: :bottom.
Methods included from Datatypes
Methods included from Compatibility
Constructor Details
#initialize(opts = {}) {|_self| ... } ⇒ Format
Returns a new instance of Format.
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/spreadsheet/format.rb', line 91 def initialize opts={} @font = Font.new client("Arial", 'UTF-8'), :family => :swiss @number_format = client 'GENERAL', 'UTF-8' @rotation = 0 @pattern = 0 @bottom_color = :black @top_color = :black @left_color = :black @right_color = :black @diagonal_color = :black @pattern_fg_color = :border @pattern_bg_color = :pattern_bg @regexes = { :date => Regexp.new(client("[YMD]", 'UTF-8')), :date_or_time => Regexp.new(client("[hmsYMD]", 'UTF-8')), :datetime => Regexp.new(client("([YMD].*[HS])|([HS].*[YMD])", 'UTF-8')), :time => Regexp.new(client("[hms]", 'UTF-8')), :number => Regexp.new(client("[\#]", 'UTF-8')) } # Temp code to prevent merged formats in non-merged cells. @used_merge = 0 update_format(opts) yield self if block_given? end |
Instance Attribute Details
#font ⇒ Object
Returns the value of attribute font.
87 88 89 |
# File 'lib/spreadsheet/format.rb', line 87 def font @font end |
#name ⇒ Object
Returns the value of attribute name.
87 88 89 |
# File 'lib/spreadsheet/format.rb', line 87 def name @name end |
#number_format ⇒ Object
Returns the value of attribute number_format.
87 88 89 |
# File 'lib/spreadsheet/format.rb', line 87 def number_format @number_format end |
#pattern ⇒ Object
Returns the value of attribute pattern.
87 88 89 |
# File 'lib/spreadsheet/format.rb', line 87 def pattern @pattern end |
#rotation ⇒ Object
Text rotation
90 91 92 |
# File 'lib/spreadsheet/format.rb', line 90 def rotation @rotation end |
#used_merge ⇒ Object
Returns the value of attribute used_merge.
87 88 89 |
# File 'lib/spreadsheet/format.rb', line 87 def used_merge @used_merge end |
Instance Method Details
#align=(location) ⇒ Object
Combined method for both horizontal and vertical alignment. Sets the first valid value (e.g. Format#align = :justify only sets the horizontal alignment. Use one of the aliases prefixed with :v if you need to disambiguate.)
This is essentially a backward-compatibility method and may be removed at some point in the future.
134 135 136 137 138 |
# File 'lib/spreadsheet/format.rb', line 134 def align= location self.horizontal_align = location rescue ArgumentError self.vertical_align = location rescue ArgumentError end |
#border ⇒ Object
Returns an Array containing the line styles of the four borders: bottom, top, right, left
142 143 144 |
# File 'lib/spreadsheet/format.rb', line 142 def border [bottom, top, right, left] end |
#border=(style) ⇒ Object
Set same line style on all four borders at once (left, right, top, bottom)
147 148 149 |
# File 'lib/spreadsheet/format.rb', line 147 def border=(style) [:bottom=, :top=, :right=, :left=].each do |writer| send writer, style end end |
#border_color ⇒ Object
Returns an Array containing the colors of the four borders: bottom, top, right, left
153 154 155 |
# File 'lib/spreadsheet/format.rb', line 153 def border_color [@bottom_color,@top_color,@right_color,@left_color] end |
#border_color=(color) ⇒ Object
Set all four border colors to color (left, right, top, bottom)
158 159 160 161 |
# File 'lib/spreadsheet/format.rb', line 158 def border_color=(color) [:bottom_color=, :top_color=, :right_color=, :left_color=].each do |writer| send writer, color end end |
#bottom_color ⇒ Object
Color attributes
52 53 54 |
# File 'lib/spreadsheet/format.rb', line 52 colors :bottom_color, :top_color, :left_color, :right_color, :pattern_fg_color, :pattern_bg_color, :diagonal_color |
#center_across! ⇒ Object Also known as: merge!
Backward compatibility method. May disappear at some point in the future.
179 180 181 |
# File 'lib/spreadsheet/format.rb', line 179 def center_across! self.horizontal_align = :merge end |
#cross_down ⇒ Object
You can set the following boolean attributes:
- #cross_down
-
Draws a Line from the top-left to the bottom-right corner of a cell.
- #cross_up
-
Draws a Line from the bottom-left to the top-right corner of a cell.
- #hidden
-
The cell is hidden.
- #locked
-
The cell is locked.
- #merge_range
-
The cell is in a merged range.
- #shrink
-
Shrink the contents to fit the cell.
- #text_justlast
-
Force the last line of a cell to be justified. This probably makes sense if horizontal_align = :justify
- #left
-
Apply a border style to the left of the cell.
- #right
-
Apply a border style to the right of the cell.
- #top
-
Apply a border style at the top of the cell.
- #bottom
-
Apply a border style at the bottom of the cell.
- #rotation_stacked
-
Characters in the cell are stacked on top of each other. Excel will ignore other rotation values if this is set.
31 32 33 |
# File 'lib/spreadsheet/format.rb', line 31 boolean :cross_down, :cross_up, :hidden, :locked, :merge_range, :shrink, :text_justlast, :text_wrap, :rotation_stacked |
#date? ⇒ Boolean
Is the cell formatted as a Date?
185 186 187 |
# File 'lib/spreadsheet/format.rb', line 185 def date? !number? && !!@regexes[:date].match(@number_format.to_s) end |
#date_or_time? ⇒ Boolean
Is the cell formatted as a Date or Time?
190 191 192 |
# File 'lib/spreadsheet/format.rb', line 190 def date_or_time? !number? && !!@regexes[:date_or_time].match(@number_format.to_s) end |
#datetime? ⇒ Boolean
Is the cell formatted as a DateTime?
195 196 197 |
# File 'lib/spreadsheet/format.rb', line 195 def datetime? !number? && !!@regexes[:datetime].match(@number_format.to_s) end |
#horizontal_align ⇒ Object
Horizontal alignment Valid values: :default, :left, :center, :right, :fill, :justify, :merge,
:distributed
Default: :default
74 75 76 77 78 |
# File 'lib/spreadsheet/format.rb', line 74 enum :horizontal_align, :default, :left, :center, :right, :fill, :justify, :merge, :distributed, :center => :centre, :merge => [ :center_across, :centre_across ], :distributed => :equal_space |
#indent_level ⇒ Object Also known as: indent
Indentation level
66 |
# File 'lib/spreadsheet/format.rb', line 66 enum :indent_level, 0, Integer |
#number? ⇒ Boolean
Is the cell formatted as a number?
205 206 207 |
# File 'lib/spreadsheet/format.rb', line 205 def number? !!@regexes[:number].match(@number_format.to_s) end |
#text_direction ⇒ Object Also known as: reading_order
Text direction Valid values: :context, :left_to_right, :right_to_left Default: :context
59 60 61 |
# File 'lib/spreadsheet/format.rb', line 59 enum :text_direction, :context, :left_to_right, :right_to_left, :left_to_right => [:ltr, :l2r], :right_to_left => [:rtl, :r2l] |
#time? ⇒ Boolean
Is the cell formatted as a Time?
200 201 202 |
# File 'lib/spreadsheet/format.rb', line 200 def time? !number? && !!@regexes[:time].match(@number_format.to_s) end |
#update_format(opts = {}) ⇒ Object
118 119 120 121 122 123 124 |
# File 'lib/spreadsheet/format.rb', line 118 def update_format(opts = {}) opts.each do |attribute, value| writer = "#{attribute}=" @font.respond_to?(writer) ? @font.send(writer,value) : self.send(writer, value) end self end |
#vertical_align ⇒ Object
Vertical alignment Valid values: :bottom, :top, :middle, :justify, :distributed Default: :bottom
83 84 85 86 |
# File 'lib/spreadsheet/format.rb', line 83 enum :vertical_align, :bottom, :top, :middle, :justify, :distributed, :distributed => [:vdistributed, :vequal_space, :equal_space], :justify => :vjustify, :middle => [:vcenter, :vcentre, :center, :centre] |