class Spreadsheet::Workbook
The Workbook
class represents a Spreadsheet-Document and is the entry point for all Spreadsheet
manipulation.
Interesting Attributes:
default_format
-
The default format used for all cells in this
Workbook
. that have no format set explicitly or inRow#default_format
orWorksheet#default_format
.
Attributes
Public Class Methods
# File lib/spreadsheet/workbook.rb, line 17 def initialize io = nil, opts={:default_format => Format.new} @worksheets = [] @io = io @fonts = [] @palette = {} @formats = [] @formats_set = {} if @default_format = opts[:default_format] add_format @default_format end end
Public Instance Methods
Add a Format
to the Workbook
. If you use Row#set_format
, you should not need to use this Method.
# File lib/spreadsheet/workbook.rb, line 38 def add_format format if format && !@formats_set[format] @formats_set[format] = true @formats.push(format) end format end
Create a new Worksheet
in this Workbook
. Used without options this creates a Worksheet
with the name 'WorksheetN' where the new Worksheet
is the Nth Worksheet
in this Workbook
.
Use the option :name => 'My pretty Name' to override this behavior.
# File lib/spreadsheet/workbook.rb, line 71 def create_worksheet opts = {} opts[:name] ||= client("Worksheet#{@worksheets.size.next}", 'UTF-8') add_worksheet Worksheet.new(opts) end
The Font
at idx
# File lib/spreadsheet/workbook.rb, line 83 def font idx @fonts[idx] end
# File lib/spreadsheet/workbook.rb, line 97 def inspect variables = (instance_variables - uninspect_variables).collect do |name| "%s=%s" % [name, instance_variable_get(name)] end.join(' ') uninspect = uninspect_variables.collect do |name| var = instance_variable_get name "%s=%s[%i]" % [name, var.class, var.size] end.join(' ') sprintf "#<%s:0x%014x %s %s>", self.class, object_id, variables, uninspect end
Change the RGB components of the elements in the colour palette.
# File lib/spreadsheet/workbook.rb, line 59 def set_custom_color idx, red, green, blue raise 'Invalid format' if [red, green, blue].find { |c| ! (0..255).include?(c) } @palette[idx] = [red, green, blue] end
Returns the count of total worksheets present. Takes no arguments. Just returns the length of @worksheets array.
# File lib/spreadsheet/workbook.rb, line 78 def sheet_count @worksheets.length end
Write this Workbook
to a File, IO Stream or Writer
Object. The latter will make more sense once there are more than just an Excel-Writer available.
# File lib/spreadsheet/workbook.rb, line 125 def write io_path_or_writer if io_path_or_writer.is_a? Writer io_path_or_writer.write self else writer(io_path_or_writer).write(self) end end
Returns a new instance of the default Writer
class for this Workbook
(can only be an Excel::Writer::Workbook
at this time)
# File lib/spreadsheet/workbook.rb, line 135 def writer io_or_path, type=Excel, version=self.version if type == Excel Excel::Writer::Workbook.new io_or_path else raise NotImplementedError, "No Writer defined for #{type}" end end