Class: Axlsx::Worksheet
- Inherits:
-
Object
- Object
- Axlsx::Worksheet
- Includes:
- OptionsParser
- Defined in:
- lib/axlsx/workbook/worksheet/worksheet.rb
Overview
The Worksheet class represents a worksheet in the workbook.
Instance Attribute Summary collapse
-
#preserve_spaces ⇒ Object
Accessor for controlling whether leading and trailing spaces in cells are preserved or ignored.
-
#workbook ⇒ Workbook
readonly
The workbook that owns this worksheet.
Class Method Summary collapse
-
.thin_chars ⇒ String
definition of characters which are less than the maximum width of 0-9 in the default font for use in String#count.
Instance Method Summary collapse
-
#[](cell_def) ⇒ Cell, Array
Returns the cell or cells defined using excel style A1:B3 references.
-
#add_chart(chart_type, options = {}) {|chart| ... } ⇒ Object
Adds a chart to this worksheets drawing.
-
#add_comment(options = {}) ⇒ Object
Shortcut to worsksheet_comments#add_comment.
-
#add_conditional_formatting(cells, rules) ⇒ Object
Add conditional formatting to this worksheet.
-
#add_data_validation(cells, data_validation) ⇒ Object
Add data validation to this worksheet.
-
#add_hyperlink(options = {}) ⇒ WorksheetHyperlink
Adds a new hyperlink to the worksheet.
-
#add_image(options = {}) {|image| ... } ⇒ Object
Adds a media item to the worksheets drawing.
-
#add_page_break(cell) ⇒ Object
Adds a page break (row break) to the worksheet should be added to the sheet.
- #add_pivot_table(ref, range, options = {}) {|pivot_tables.last| ... } ⇒ Object
-
#add_row(values = [], options = {}) {|@rows.last| ... } ⇒ Row
(also: #<<)
Adds a row to the worksheet and updates auto fit data.
-
#add_table(ref, options = {}) {|tables.last| ... } ⇒ Object
needs documentation.
-
#auto_filter ⇒ Object
An range that excel will apply an auto-filter to "A1:B3" This will turn filtering on for the cells in the range.
-
#auto_filter=(v) ⇒ Object
The auto filter range for the worksheet.
-
#cells ⇒ Array
convinience method to access all cells in this worksheet.
-
#col_breaks ⇒ Object
A collection of column breaks added to this worksheet add_page_break.
-
#col_style(index, style, options = {}) ⇒ Object
Set the style for cells in a specific column.
-
#cols(&block) ⇒ Object
returns the sheet data as columns If you pass a block, it will be evaluated whenever a row does not have a cell at a specific index.
-
#column_info ⇒ SimpleTypedList
Column info for the sheet.
-
#column_widths(*widths) ⇒ Object
This is a helper method that Lets you specify a fixed width for multiple columns in a worksheet in one go.
-
#comments ⇒ Array|SimpleTypedList
The a shortcut to the worksheet_comments list of comments.
-
#dimension ⇒ Dimension
The dimensions of a worksheet.
-
#drawing ⇒ Drawing
The drawing associated with this worksheet.
- #fit_to_page=(v) ⇒ Boolean
-
#fit_to_page? ⇒ Boolean
Indicates if the worksheet will be fit by witdh or height to a specific number of pages.
-
#header_footer {|@header_footer| ... } ⇒ HeaderFooter
Options for headers and footers.
-
#hyperlinks ⇒ WorksheetHyperlinks
A typed collection of hyperlinks associated with this worksheet.
-
#index ⇒ Integer
The index of this worksheet in the owning Workbook's worksheets list.
-
#initialize(wb, options = {}) ⇒ Worksheet
constructor
Creates a new worksheet.
-
#initialize_page_options(options) ⇒ Object
Initalizes page margin, setup and print options.
-
#merge_cells(cells) ⇒ Object
Creates merge information for this worksheet.
-
#name ⇒ String
The name of the worksheet.
-
#name=(name) ⇒ Object
The name of the worksheet The name of a worksheet must be unique in the workbook, and must not exceed 31 characters.
-
#name_to_cell(name) ⇒ Cell
returns the column and row index for a named based cell.
-
#outline_level_columns(start_index, end_index, level = 1, collapsed = true) ⇒ Object
shortcut level to specify the outline level for a series of columns Oulining is what lets you add collapse and expand to a data set.
-
#outline_level_rows(start_index, end_index, level = 1, collapsed = true) ⇒ Object
shortcut level to specify the outline level for a series of rows Oulining is what lets you add collapse and expand to a data set.
-
#page_margins {|@page_margins| ... } ⇒ PageMargins
Page margins for printing the worksheet.
-
#page_setup {|@page_setup| ... } ⇒ PageSetup
Page setup settings for printing the worksheet.
-
#pivot_tables ⇒ Array
The pivot tables in this worksheet.
-
#pn ⇒ String
The part name of this worksheet.
-
#print_options {|@print_options| ... } ⇒ PrintOptions
Options for printing the worksheet.
-
#protect_range(cells) ⇒ ProtectedRange
Adds a new protected cell range to the worksheet.
-
#relationships ⇒ Relationships
The worksheet relationships.
-
#rels_pn ⇒ String
The relationship part name of this worksheet.
-
#rId ⇒ String
The relationship id of this worksheet.
-
#row_breaks ⇒ Object
A collection of row breaks added to this worksheet add_page_break.
-
#row_style(index, style, options = {}) ⇒ Object
Set the style for cells in a specific row.
-
#rows ⇒ SimpleTypedList
The rows in this worksheet.
-
#selected ⇒ Object
deprecated
Deprecated.
Use SheetView#tab_selected instead.
-
#selected=(v) ⇒ Boolean
deprecated
Deprecated.
Use SheetView#tab_selected= instead.
-
#sheet_calc_pr ⇒ SheetCalcPr
The sheet calculation properties.
-
#sheet_format_pr ⇒ SheetFormatPr
The sheet format pr for this worksheet.
-
#sheet_pr ⇒ SheetPr
The sheet properties for this workbook.
-
#sheet_protection {|@sheet_protection| ... } ⇒ SheetProtection
The sheet protection object for this workbook.
-
#sheet_view {|@sheet_view| ... } ⇒ SheetView
The sheet view object for this worksheet.
-
#show_gridlines ⇒ Object
deprecated
Deprecated.
Use SheetView#show_grid_lines instead.
-
#show_gridlines=(v) ⇒ Boolean
deprecated
Deprecated.
Use SheetView#show_grid_lines= instead.
-
#styles ⇒ Object
shortcut method to access styles direclty from the worksheet This lets us do stuff like:.
-
#tables ⇒ Array
The tables in this worksheet.
-
#to_xml_string ⇒ String
Serializes the worksheet object to an xml string This intentionally does not use nokogiri for performance reasons.
Methods included from OptionsParser
Constructor Details
#initialize(wb, options = {}) ⇒ Worksheet
the recommended way to manage worksheets is Workbook#add_worksheet
Creates a new worksheet.
24 25 26 27 28 29 30 31 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 24 def initialize(wb, ={}) self.workbook = wb @sheet_protection = nil () @workbook.worksheets << self end |
Instance Attribute Details
#preserve_spaces ⇒ Object
Accessor for controlling whether leading and trailing spaces in cells are preserved or ignored. The default is to preserve spaces.
355 356 357 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 355 def preserve_spaces @preserve_spaces end |
#workbook ⇒ Workbook
The workbook that owns this worksheet
85 86 87 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 85 def workbook @workbook end |
Class Method Details
.thin_chars ⇒ String
definition of characters which are less than the maximum width of 0-9 in the default font for use in String#count. This is used for autowidth calculations
11 12 13 14 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 11 def self.thin_chars # removed 'e' and 'y' from this list - as a GUESS @thin_chars ||= "^.acfijklrstxzFIJL()-" end |
Instance Method Details
#[](cell_def) ⇒ Cell, Array
Returns the cell or cells defined using excel style A1:B3 references.
609 610 611 612 613 614 615 616 617 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 609 def [] (cell_def) return rows[cell_def] if cell_def.is_a?(Integer) parts = cell_def.split(':').map{ |part| name_to_cell part } if parts.size == 1 parts.first else range(*parts) end end |
#add_chart(chart_type, options = {}) {|chart| ... } ⇒ Object
each chart type also specifies additional options
Adds a chart to this worksheets drawing. This is the recommended way to create charts for your worksheet. This method wraps the complexity of dealing with ooxml drawing, anchors, markers graphic frames chart objects and all the other dirty details.
487 488 489 490 491 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 487 def add_chart(chart_type, ={}) chart = worksheet_drawing.add_chart(chart_type, ) yield chart if block_given? chart end |
#add_comment(options = {}) ⇒ Object
Shortcut to worsksheet_comments#add_comment
507 508 509 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 507 def add_comment(={}) worksheet_comments.add_comment() end |
#add_conditional_formatting(cells, rules) ⇒ Object
Add conditional formatting to this worksheet.
448 449 450 451 452 453 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 448 def add_conditional_formatting(cells, rules) cf = ConditionalFormatting.new( :sqref => cells ) cf.add_rules rules conditional_formattings << cf conditional_formattings end |
#add_data_validation(cells, data_validation) ⇒ Object
Add data validation to this worksheet.
460 461 462 463 464 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 460 def add_data_validation(cells, data_validation) dv = DataValidation.new(data_validation) dv.sqref = cells data_validations << dv end |
#add_hyperlink(options = {}) ⇒ WorksheetHyperlink
Adds a new hyperlink to the worksheet
470 471 472 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 470 def add_hyperlink(={}) hyperlinks.add() end |
#add_image(options = {}) {|image| ... } ⇒ Object
Adds a media item to the worksheets drawing
513 514 515 516 517 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 513 def add_image(={}) image = worksheet_drawing.add_image() yield image if block_given? image end |
#add_page_break(cell) ⇒ Object
Adds a page break (row break) to the worksheet should be added to the sheet.
524 525 526 527 528 529 530 531 532 533 534 535 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 524 def add_page_break(cell) DataTypeValidator.validate "Worksheet#add_page_break cell", [String, Cell], cell column_index, row_index = if cell.is_a?(String) Axlsx.name_to_indices(cell) else cell.pos end if column_index > 0 col_breaks.add_break(:id => column_index) end row_breaks.add_break(:id => row_index) end |
#add_pivot_table(ref, range, options = {}) {|pivot_tables.last| ... } ⇒ Object
500 501 502 503 504 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 500 def add_pivot_table(ref, range, ={}) pivot_tables << PivotTable.new(ref, range, self, ) yield pivot_tables.last if block_given? pivot_tables.last end |
#add_row(values = [], options = {}) {|@rows.last| ... } ⇒ Row Also known as: <<
Adds a row to the worksheet and updates auto fit data.
429 430 431 432 433 434 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 429 def add_row(values=[], ={}) Row.new(self, values, ) update_column_info @rows.last.cells, .delete(:widths) || [] yield @rows.last if block_given? @rows.last end |
#add_table(ref, options = {}) {|tables.last| ... } ⇒ Object
needs documentation
494 495 496 497 498 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 494 def add_table(ref, ={}) tables << Table.new(ref, self, ) yield tables.last if block_given? tables.last end |
#auto_filter ⇒ Object
An range that excel will apply an auto-filter to "A1:B3" This will turn filtering on for the cells in the range. The first row is considered the header, while subsequent rows are considered to be data.
149 150 151 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 149 def auto_filter @auto_filter ||= AutoFilter.new self end |
#auto_filter=(v) ⇒ Object
The auto filter range for the worksheet
348 349 350 351 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 348 def auto_filter=(v) DataTypeValidator.validate "Worksheet.auto_filter", String, v auto_filter.range = v end |
#cells ⇒ Array
convinience method to access all cells in this worksheet
254 255 256 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 254 def cells rows.flatten end |
#col_breaks ⇒ Object
Please do not use this directly. Instead use
A collection of column breaks added to this worksheet add_page_break
103 104 105 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 103 def col_breaks @col_breaks ||= ColBreaks.new end |
#col_style(index, style, options = {}) ⇒ Object
You can also specify the style for specific columns in the call to add_row by using an array for the :styles option
Set the style for cells in a specific column
560 561 562 563 564 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 560 def col_style(index, style, ={}) offset = .delete(:row_offset) || 0 cells = @rows[(offset..-1)].map { |row| row.cells[index] }.flatten.compact cells.each { |cell| cell.style = style } end |
#cols(&block) ⇒ Object
returns the sheet data as columns If you pass a block, it will be evaluated whenever a row does not have a cell at a specific index. The block will be called with the row and column index in the missing cell was found.
141 142 143 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 141 def cols(&block) @rows.transpose(&block) end |
#column_info ⇒ SimpleTypedList
Column info for the sheet
166 167 168 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 166 def column_info @column_info ||= Cols.new self end |
#column_widths(*widths) ⇒ Object
For updating only a single column it is probably easier to just set the width of the ws.column_info[col_index].width directly
This is a helper method that Lets you specify a fixed width for multiple columns in a worksheet in one go. Axlsx is sparse, so if you have not set data for a column, you cannot set the width. Setting a fixed column width to nil will revert the behaviour back to calculating the width for you on the next call to add_row.
544 545 546 547 548 549 550 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 544 def column_widths(*widths) widths.each_with_index do |value, index| next if value == nil Axlsx::validate_unsigned_numeric(value) unless value == nil find_or_create_column_info(index).width = value end end |
#comments ⇒ Array|SimpleTypedList
The a shortcut to the worksheet_comments list of comments
123 124 125 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 123 def comments worksheet_comments.comments if worksheet_comments.has_comments? end |
#dimension ⇒ Dimension
The dimensions of a worksheet. This is not actually a required element by the spec, but at least a few other document readers expect this for conversion
282 283 284 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 282 def dimension @dimension ||= Dimension.new self end |
#drawing ⇒ Drawing
the recommended way to work with drawings and charts is Worksheet#add_chart
The drawing associated with this worksheet.
386 387 388 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 386 def drawing worksheet_drawing.drawing end |
#fit_to_page=(v) ⇒ Boolean
332 333 334 335 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 332 def fit_to_page=(v) warn('axlsx::DEPRECIATED: Worksheet#fit_to_page has been depreciated. This value will automatically be set for you when you use PageSetup#fit_to.') fit_to_page? end |
#fit_to_page? ⇒ Boolean
Indicates if the worksheet will be fit by witdh or height to a specific number of pages. To alter the width or height for page fitting, please use page_setup.fit_to_widht or page_setup.fit_to_height. If you want the worksheet to fit on more pages (e.g. 2x2), set PageSetup#fit_to_width and PageSetup#fit_to_height accordingly.
158 159 160 161 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 158 def fit_to_page? return false unless self.instance_values.keys.include?('page_setup') page_setup.fit_to_page? end |
#header_footer {|@header_footer| ... } ⇒ HeaderFooter
Options for headers and footers.
246 247 248 249 250 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 246 def @header_footer ||= HeaderFooter.new yield @header_footer if block_given? @header_footer end |
#hyperlinks ⇒ WorksheetHyperlinks
A typed collection of hyperlinks associated with this worksheet
117 118 119 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 117 def hyperlinks @hyperlinks ||= WorksheetHyperlinks.new self end |
#index ⇒ Integer
The index of this worksheet in the owning Workbook's worksheets list.
378 379 380 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 378 def index @workbook.worksheets.index(self) end |
#initialize_page_options(options) ⇒ Object
Initalizes page margin, setup and print options
35 36 37 38 39 40 41 42 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 35 def () @page_margins = PageMargins.new [:page_margins] if [:page_margins] @page_setup = PageSetup.new [:page_setup] if [:page_setup] @print_options = PrintOptions.new [:print_options] if [:print_options] @header_footer = HeaderFooter.new [:header_footer] if [:header_footer] @row_breaks = RowBreaks.new @col_breaks = ColBreaks.new end |
#merge_cells(cells) ⇒ Object
Creates merge information for this worksheet. Cells can be merged by calling the merge_cells method on a worksheet.
267 268 269 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 267 def merge_cells(cells) merged_cells.add cells end |
#name ⇒ String
The name of the worksheet
46 47 48 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 46 def name @name ||= "Sheet" + (index+1).to_s end |
#name=(name) ⇒ Object
The name of the worksheet The name of a worksheet must be unique in the workbook, and must not exceed 31 characters
340 341 342 343 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 340 def name=(name) validate_sheet_name name @name=Axlsx::coder.encode(name) end |
#name_to_cell(name) ⇒ Cell
returns the column and row index for a named based cell
622 623 624 625 626 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 622 def name_to_cell(name) col_index, row_index = *Axlsx::name_to_indices(name) r = rows[row_index] r.cells[col_index] if r end |
#outline_level_columns(start_index, end_index, level = 1, collapsed = true) ⇒ Object
shortcut level to specify the outline level for a series of columns Oulining is what lets you add collapse and expand to a data set.
657 658 659 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 657 def outline_level_columns(start_index, end_index, level = 1, collapsed = true) outline column_info, (start_index..end_index), level, collapsed end |
#outline_level_rows(start_index, end_index, level = 1, collapsed = true) ⇒ Object
shortcut level to specify the outline level for a series of rows Oulining is what lets you add collapse and expand to a data set.
647 648 649 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 647 def outline_level_rows(start_index, end_index, level = 1, collapsed = true) outline rows, (start_index..end_index), level, collapsed end |
#page_margins {|@page_margins| ... } ⇒ PageMargins
Page margins for printing the worksheet.
186 187 188 189 190 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 186 def page_margins @page_margins ||= PageMargins.new yield @page_margins if block_given? @page_margins end |
#page_setup {|@page_setup| ... } ⇒ PageSetup
Page setup settings for printing the worksheet.
209 210 211 212 213 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 209 def page_setup @page_setup ||= PageSetup.new yield @page_setup if block_given? @page_setup end |
#pivot_tables ⇒ Array
The pivot tables in this worksheet
95 96 97 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 95 def pivot_tables @pivot_tables ||= PivotTables.new self end |
#pn ⇒ String
The part name of this worksheet
359 360 361 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 359 def pn "#{WORKSHEET_PN % (index+1)}" end |
#print_options {|@print_options| ... } ⇒ PrintOptions
Options for printing the worksheet.
231 232 233 234 235 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 231 def @print_options ||= PrintOptions.new yield @print_options if block_given? @print_options end |
#protect_range(cells) ⇒ ProtectedRange
When using an array of cells, a contiguous range is created from the minimum top left to the maximum top bottom of the cells provided.
Adds a new protected cell range to the worksheet. Note that protected ranges are only in effect when sheet protection is enabled.
275 276 277 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 275 def protect_range(cells) protected_ranges.add_range(cells) end |
#relationships ⇒ Relationships
The worksheet relationships. This is managed automatically by the worksheet
596 597 598 599 600 601 602 603 604 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 596 def relationships r = Relationships.new r + [tables.relationships, worksheet_comments.relationships, hyperlinks.relationships, worksheet_drawing.relationship, pivot_tables.relationships].flatten.compact || [] r end |
#rels_pn ⇒ String
The relationship part name of this worksheet
365 366 367 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 365 def rels_pn "#{WORKSHEET_RELS_PN % (index+1)}" end |
#rId ⇒ String
The relationship id of this worksheet.
372 373 374 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 372 def rId @workbook.relationships.for(self).Id end |
#row_breaks ⇒ Object
Please do not use this directly. Instead use
A collection of row breaks added to this worksheet add_page_break
111 112 113 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 111 def row_breaks @row_breaks ||= RowBreaks.new end |
#row_style(index, style, options = {}) ⇒ Object
You can also specify the style in the add_row call
Set the style for cells in a specific row
574 575 576 577 578 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 574 def row_style(index, style, ={}) offset = .delete(:col_offset) || 0 cells = cols[(offset..-1)].map { |column| column[index] }.flatten.compact cells.each { |cell| cell.style = style } end |
#rows ⇒ SimpleTypedList
The recommended way to manage rows is Worksheet#add_row
The rows in this worksheet
131 132 133 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 131 def rows @rows ||= SimpleTypedList.new Row end |
#selected ⇒ Object
Use SheetView#tab_selected instead.
Indicates if the worksheet is selected in the workbook It is possible to have more than one worksheet selected, however it might cause issues in some older versions of excel when using copy and paste.
325 326 327 328 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 325 def selected warn('axlsx::DEPRECIATED: Worksheet#selected has been depreciated. This value can get over SheetView#tab_selected.') sheet_view.tab_selected end |
#selected=(v) ⇒ Boolean
Use SheetView#tab_selected= instead.
306 307 308 309 310 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 306 def selected=(v) warn('axlsx::DEPRECIATED: Worksheet#selected= has been depreciated. This value can be set over SheetView#tab_selected=.') Axlsx::validate_boolean v sheet_view.tab_selected = v end |
#sheet_calc_pr ⇒ SheetCalcPr
The sheet calculation properties
52 53 54 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 52 def sheet_calc_pr @sheet_calc_pr ||= SheetCalcPr.new end |
#sheet_format_pr ⇒ SheetFormatPr
The sheet format pr for this worksheet
77 78 79 80 81 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 77 def sheet_format_pr @sheet_format_pr ||= SheetFormatPr.new yeild @sheet_format_pr if block_given? @sheet_format_pr end |
#sheet_pr ⇒ SheetPr
The sheet properties for this workbook. Currently only pageSetUpPr -> fitToPage is implemented
289 290 291 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 289 def sheet_pr @sheet_pr ||= SheetPr.new self end |
#sheet_protection {|@sheet_protection| ... } ⇒ SheetProtection
The sheet protection object for this workbook
59 60 61 62 63 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 59 def sheet_protection @sheet_protection ||= SheetProtection.new yield @sheet_protection if block_given? @sheet_protection end |
#sheet_view {|@sheet_view| ... } ⇒ SheetView
The sheet view object for this worksheet
68 69 70 71 72 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 68 def sheet_view @sheet_view ||= SheetView.new yield @sheet_view if block_given? @sheet_view end |
#show_gridlines ⇒ Object
Use SheetView#show_grid_lines instead.
Indicates if the worksheet should show gridlines or not
315 316 317 318 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 315 def show_gridlines warn('axlsx::DEPRECIATED: Worksheet#show_gridlines has been depreciated. This value can get over SheetView#show_grid_lines.') sheet_view.show_grid_lines end |
#show_gridlines=(v) ⇒ Boolean
Use SheetView#show_grid_lines= instead.
Indicates if gridlines should be shown in the sheet. This is true by default.
297 298 299 300 301 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 297 def show_gridlines=(v) warn('axlsx::DEPRECIATED: Worksheet#show_gridlines= has been depreciated. This value can be set over SheetView#show_grid_lines=.') Axlsx::validate_boolean v sheet_view.show_grid_lines = v end |
#styles ⇒ Object
shortcut method to access styles direclty from the worksheet This lets us do stuff like:
637 638 639 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 637 def styles @styles ||= self.workbook.styles end |
#tables ⇒ Array
The tables in this worksheet
89 90 91 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 89 def tables @tables ||= Tables.new self end |
#to_xml_string ⇒ String
Serializes the worksheet object to an xml string This intentionally does not use nokogiri for performance reasons
583 584 585 586 587 588 589 590 591 592 |
# File 'lib/axlsx/workbook/worksheet/worksheet.rb', line 583 def to_xml_string auto_filter.apply if auto_filter.range str = '<?xml version="1.0" encoding="UTF-8"?>' str << worksheet_node serializable_parts.each do |item| item.to_xml_string(str) if item end str << '</worksheet>' Axlsx::sanitize(str) end |