Module: FastExcel::WorksheetExt

Includes:
AttributeHelper
Defined in:
lib/fast_excel.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from AttributeHelper

#fields_hash, #pretty_print, #set

Instance Attribute Details

#workbookObject

Returns the value of attribute workbook.



378
379
380
# File 'lib/fast_excel.rb', line 378

def workbook
  @workbook
end

Instance Method Details

#append_row(values, formats = nil) ⇒ Object



413
414
415
416
# File 'lib/fast_excel.rb', line 413

def append_row(values, formats = nil)
  increment_last_row_number!
  write_row(last_row_number, values, formats)
end

#increment_last_row_number!Object



422
423
424
# File 'lib/fast_excel.rb', line 422

def increment_last_row_number!
  @last_row_number = last_row_number + 1
end

#last_row_numberObject



418
419
420
# File 'lib/fast_excel.rb', line 418

def last_row_number
  defined?(@last_row_number) ? @last_row_number : -1
end

#set_column(start_col, end_col, width, format = nil) ⇒ Object



426
427
428
# File 'lib/fast_excel.rb', line 426

def set_column(start_col, end_col, width, format = nil)
  super(start_col, end_col, width, format)
end

#set_column_width(col, width) ⇒ Object



430
431
432
# File 'lib/fast_excel.rb', line 430

def set_column_width(col, width)
  set_column(col, col, width, nil)
end

#set_columns_width(start_col, end_col, width) ⇒ Object



434
435
436
# File 'lib/fast_excel.rb', line 434

def set_columns_width(start_col, end_col, width)
  set_column(start_col, end_col, width, nil)
end

#write_row(row_number, values, formats = nil) ⇒ Object



382
383
384
385
386
387
388
389
390
# File 'lib/fast_excel.rb', line 382

def write_row(row_number, values, formats = nil)
  values.each_with_index do |value, index|
    format = if formats
      formats.is_a?(Array) ? formats[index] : formats
    end

    write_value(row_number, index, value, format)
  end
end

#write_value(row_number, cell_number, value, format = nil) ⇒ Object



392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
# File 'lib/fast_excel.rb', line 392

def write_value(row_number, cell_number, value, format = nil)

  if workbook.constant_memory? && row_number < last_row_number
    raise ArgumentError, "Can not write to saved row in constant_memory mode (attempted row: #{row_number}, last saved row: #{last_row_number})"
  end

  if value.is_a?(Numeric)
    write_number(row_number, cell_number, value, format)
  elsif defined?(DateTime) && value.is_a?(DateTime)
    write_datetime(row_number, cell_number, FastExcel.lxw_datetime(value), format)
  elsif value.is_a?(Time)
    write_datetime(row_number, cell_number, FastExcel.lxw_time(value), format)
  elsif value.is_a?(Formula)
    write_formula(row_number, cell_number, value.fml, format)
  else
    write_string(row_number, cell_number, value.to_s, format)
  end

  @last_row_number = row_number > last_row_number ? row_number : last_row_number
end