Module: RubyXL::CellConvenienceMethods
- Defined in:
- lib/rubyXL/convenience_methods/cell.rb
Instance Method Summary collapse
- #add_hyperlink(url, tooltip = nil) ⇒ Object
- #change_border(direction, weight) ⇒ Object
- #change_border_color(direction, color) ⇒ Object
- #change_contents(data, formula_expression = nil) ⇒ Object
-
#change_fill(rgb = 'ffffff') ⇒ Object
Changes fill color of cell.
-
#change_font_bold(bolded = false) ⇒ Object
Changes font bold settings of cell.
-
#change_font_color(font_color = '000000') ⇒ Object
Changes font color of cell.
-
#change_font_italics(italicized = false) ⇒ Object
Changes font italics settings of cell.
-
#change_font_name(new_font_name = 'Verdana') ⇒ Object
Changes font name of cell.
-
#change_font_size(font_size = 10) ⇒ Object
Changes font size of cell.
- #change_font_strikethrough(struckthrough = false) ⇒ Object
-
#change_font_underline(underlined = false) ⇒ Object
Changes font underline settings of cell.
- #change_horizontal_alignment(alignment = 'center') ⇒ Object
- #change_shrink_to_fit(shrink_to_fit = false) ⇒ Object
- #change_text_indent(indent) ⇒ Object
- #change_text_rotation(rot) ⇒ Object
- #change_text_wrap(wrap = false) ⇒ Object
- #change_vertical_alignment(alignment = 'center') ⇒ Object
- #fill_color ⇒ Object
- #font_color ⇒ Object
- #font_name ⇒ Object
- #font_size ⇒ Object
-
#font_switch(change_type, arg) ⇒ Object
Performs correct modification based on what type of change_type is specified.
- #get_border(direction) ⇒ Object
- #get_border_color(direction) ⇒ Object
- #horizontal_alignment ⇒ Object
- #is_bolded ⇒ Object
- #is_italicized ⇒ Object
- #is_struckthrough ⇒ Object
- #is_underlined ⇒ Object
- #remove_formula ⇒ Object
- #set_number_format(format_code) ⇒ Object
- #text_indent ⇒ Object
- #text_rotation ⇒ Object
- #text_wrap ⇒ Object
- #vertical_alignment ⇒ Object
Instance Method Details
#add_hyperlink(url, tooltip = nil) ⇒ Object
256 257 258 259 260 261 262 263 264 265 266 267 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 256 def add_hyperlink(url, tooltip = nil) worksheet.relationship_container ||= RubyXL::OOXMLRelationshipsFile.new relationships = worksheet.relationship_container.relationships r_id = "rId#{relationships.size + 1}" relationships << RubyXL::Relationship.new(:id => r_id, :target => url, :target_mode => 'External', :type => RubyXL::HyperlinkRelFile::REL_TYPE) hyperlink = RubyXL::Hyperlink.new(:ref => self.r, :r_id => r_id) hyperlink.tooltip = tooltip if tooltip worksheet.hyperlinks ||= RubyXL::Hyperlinks.new worksheet.hyperlinks << hyperlink end |
#change_border(direction, weight) ⇒ Object
71 72 73 74 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 71 def change_border(direction, weight) validate_worksheet self.style_index = workbook.modify_border(self.style_index, direction, weight) end |
#change_border_color(direction, color) ⇒ Object
76 77 78 79 80 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 76 def change_border_color(direction, color) validate_worksheet Color.validate_color(color) self.style_index = workbook.modify_border_color(self.style_index, direction, color) end |
#change_contents(data, formula_expression = nil) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 3 def change_contents(data, formula_expression = nil) validate_worksheet if formula_expression then self.datatype = nil self.formula = RubyXL::Formula.new(:expression => formula_expression) else self.datatype = case data when Date, Time, Numeric then nil else RubyXL::DataType::RAW_STRING end end data = workbook.date_to_num(data) if data.is_a?(Date) || data.is_a?(Time) self.raw_value = data end |
#change_fill(rgb = 'ffffff') ⇒ Object
Changes fill color of cell
165 166 167 168 169 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 165 def change_fill(rgb = 'ffffff') validate_worksheet Color.validate_color(rgb) self.style_index = workbook.modify_fill(self.style_index, rgb) end |
#change_font_bold(bolded = false) ⇒ Object
Changes font bold settings of cell
210 211 212 213 214 215 216 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 210 def change_font_bold(bolded = false) validate_worksheet font = get_cell_font.dup font.set_bold(bolded) update_font_references(font) end |
#change_font_color(font_color = '000000') ⇒ Object
Changes font color of cell
191 192 193 194 195 196 197 198 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 191 def change_font_color(font_color = '000000') validate_worksheet Color.validate_color(font_color) font = get_cell_font.dup font.set_rgb_color(font_color) update_font_references(font) end |
#change_font_italics(italicized = false) ⇒ Object
Changes font italics settings of cell
201 202 203 204 205 206 207 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 201 def change_font_italics(italicized = false) validate_worksheet font = get_cell_font.dup font.set_italic(italicized) update_font_references(font) end |
#change_font_name(new_font_name = 'Verdana') ⇒ Object
Changes font name of cell
172 173 174 175 176 177 178 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 172 def change_font_name(new_font_name = 'Verdana') validate_worksheet font = get_cell_font.dup font.set_name(new_font_name) update_font_references(font) end |
#change_font_size(font_size = 10) ⇒ Object
Changes font size of cell
181 182 183 184 185 186 187 188 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 181 def change_font_size(font_size = 10) validate_worksheet raise 'Argument must be a number' unless font_size.is_a?(Integer) || font_size.is_a?(Float) font = get_cell_font.dup font.set_size(font_size) update_font_references(font) end |
#change_font_strikethrough(struckthrough = false) ⇒ Object
227 228 229 230 231 232 233 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 227 def change_font_strikethrough(struckthrough = false) validate_worksheet font = get_cell_font.dup font.set_strikethrough(struckthrough) update_font_references(font) end |
#change_font_underline(underlined = false) ⇒ Object
Changes font underline settings of cell
219 220 221 222 223 224 225 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 219 def change_font_underline(underlined = false) validate_worksheet font = get_cell_font.dup font.set_underline(underlined) update_font_references(font) end |
#change_horizontal_alignment(alignment = 'center') ⇒ Object
41 42 43 44 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 41 def change_horizontal_alignment(alignment = 'center') validate_worksheet self.style_index = workbook.modify_alignment(self.style_index) { |a| a.horizontal = alignment } end |
#change_shrink_to_fit(shrink_to_fit = false) ⇒ Object
56 57 58 59 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 56 def change_shrink_to_fit(shrink_to_fit = false) validate_worksheet self.style_index = workbook.modify_alignment(self.style_index) { |a| a.shrink_to_fit = shrink_to_fit } end |
#change_text_indent(indent) ⇒ Object
66 67 68 69 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 66 def change_text_indent(indent) validate_worksheet self.style_index = workbook.modify_alignment(self.style_index) { |a| a.indent = indent } end |
#change_text_rotation(rot) ⇒ Object
61 62 63 64 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 61 def change_text_rotation(rot) validate_worksheet self.style_index = workbook.modify_alignment(self.style_index) { |a| a.text_rotation = rot } end |
#change_text_wrap(wrap = false) ⇒ Object
51 52 53 54 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 51 def change_text_wrap(wrap = false) validate_worksheet self.style_index = workbook.modify_alignment(self.style_index) { |a| a.wrap_text = wrap } end |
#change_vertical_alignment(alignment = 'center') ⇒ Object
46 47 48 49 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 46 def change_vertical_alignment(alignment = 'center') validate_worksheet self.style_index = workbook.modify_alignment(self.style_index) { |a| a.vertical = alignment } end |
#fill_color ⇒ Object
117 118 119 120 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 117 def fill_color validate_worksheet workbook.get_fill_color(get_cell_xf) end |
#font_color ⇒ Object
112 113 114 115 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 112 def font_color validate_worksheet get_cell_font.get_rgb_color || '000000' end |
#font_name ⇒ Object
102 103 104 105 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 102 def font_name validate_worksheet get_cell_font.get_name end |
#font_size ⇒ Object
107 108 109 110 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 107 def font_size validate_worksheet get_cell_font.get_size end |
#font_switch(change_type, arg) ⇒ Object
Performs correct modification based on what type of change_type is specified
243 244 245 246 247 248 249 250 251 252 253 254 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 243 def font_switch(change_type, arg) case change_type when Worksheet::NAME then change_font_name(arg) when Worksheet::SIZE then change_font_size(arg) when Worksheet::COLOR then change_font_color(arg) when Worksheet::ITALICS then change_font_italics(arg) when Worksheet::BOLD then change_font_bold(arg) when Worksheet::UNDERLINE then change_font_underline(arg) when Worksheet::STRIKETHROUGH then change_font_strikethrough(arg) else raise 'Invalid change_type' end end |
#get_border(direction) ⇒ Object
31 32 33 34 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 31 def get_border(direction) validate_worksheet get_cell_border.get_edge_style(direction) end |
#get_border_color(direction) ⇒ Object
36 37 38 39 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 36 def get_border_color(direction) validate_worksheet get_cell_border.get_edge_color(direction) end |
#horizontal_alignment ⇒ Object
122 123 124 125 126 127 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 122 def horizontal_alignment validate_worksheet xf_obj = get_cell_xf return nil if xf_obj.alignment.nil? xf_obj.alignment.horizontal end |
#is_bolded ⇒ Object
87 88 89 90 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 87 def is_bolded validate_worksheet get_cell_font.is_bold end |
#is_italicized ⇒ Object
82 83 84 85 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 82 def is_italicized validate_worksheet get_cell_font.is_italic end |
#is_struckthrough ⇒ Object
97 98 99 100 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 97 def is_struckthrough validate_worksheet get_cell_font.is_strikethrough end |
#is_underlined ⇒ Object
92 93 94 95 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 92 def is_underlined validate_worksheet get_cell_font.is_underlined end |
#remove_formula ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 21 def remove_formula self.formula = nil calculation_chain = workbook && workbook.calculation_chain calculation_cells = calculation_chain && calculation_chain.cells calculation_cells && calculation_cells.reject! { |c| c.ref.col_range.c == self.column && c.ref.row_range.begin == self.row } end |
#set_number_format(format_code) ⇒ Object
157 158 159 160 161 162 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 157 def set_number_format(format_code) new_xf = get_cell_xf.dup new_xf.num_fmt_id = workbook.stylesheet.register_number_format(format_code) new_xf.apply_number_format = true self.style_index = workbook.register_new_xf(new_xf) end |
#text_indent ⇒ Object
150 151 152 153 154 155 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 150 def text_indent validate_worksheet xf_obj = get_cell_xf return nil if xf_obj.alignment.nil? xf_obj.alignment.indent end |
#text_rotation ⇒ Object
143 144 145 146 147 148 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 143 def text_rotation validate_worksheet xf_obj = get_cell_xf return nil if xf_obj.alignment.nil? xf_obj.alignment.text_rotation end |
#text_wrap ⇒ Object
136 137 138 139 140 141 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 136 def text_wrap validate_worksheet xf_obj = get_cell_xf return nil if xf_obj.alignment.nil? xf_obj.alignment.wrap_text end |
#vertical_alignment ⇒ Object
129 130 131 132 133 134 |
# File 'lib/rubyXL/convenience_methods/cell.rb', line 129 def vertical_alignment validate_worksheet xf_obj = get_cell_xf return nil if xf_obj.alignment.nil? xf_obj.alignment.vertical end |