class SpreadsheetSpreadsheet

Attributes

filepath[R]

Public Class Methods

new(filepath) click to toggle source

Contract String => Any

# File lib/tmis/engine/import/spreadsheet_roo.rb, line 59
def initialize(filepath)
  @filepath = filepath.force_encoding("UTF-8")
  Spreadsheet.client_encoding = 'UTF-8'
  if File.file?(@filepath)
    @book = Spreadsheet.open(@filepath)
  else
    @book = Spreadsheet::Workbook.new(@filepath)
    @book.create_worksheet
  end
  @sheet = @book.worksheet(0)
  fmt = Spreadsheet::Format.new text_wrap: true
  fmt.horizontal_align = :center
  fmt.vertical_align = :middle
  fmt.font = Spreadsheet::Font.new('Times New Roman', :size => 12)
  @sheet.default_format = fmt
  @sheet
end

Public Instance Methods

[](r, c) click to toggle source

Contract Pos, Pos => Any

# File lib/tmis/engine/import/spreadsheet_roo.rb, line 103
def [](r, c)
  @sheet[r - 1, c - 1]
end
[]=(r, c, obj) click to toggle source

Contract Pos, Pos, Any => Any

# File lib/tmis/engine/import/spreadsheet_roo.rb, line 108
def []=(r, c, obj)
  @sheet[r - 1, c - 1] = obj
end
column(n) click to toggle source

Contract Pos => Any

# File lib/tmis/engine/import/spreadsheet_roo.rb, line 98
def column(n)
  @sheet.column(n - 1)
end
format(r, c, fmt) click to toggle source
# File lib/tmis/engine/import/spreadsheet_roo.rb, line 122
def format(r, c, fmt)
  @sheet.row(r - 1).set_format(c - 1, fmt)
end
last_column() click to toggle source

Contract None => Pos

# File lib/tmis/engine/import/spreadsheet_roo.rb, line 83
def last_column
  @sheet.column_count
end
last_row() click to toggle source

Contract None => Pos

# File lib/tmis/engine/import/spreadsheet_roo.rb, line 78
def last_row
  @sheet.last_row_index
end
merge(start_row, start_col, end_row, end_col) click to toggle source
# File lib/tmis/engine/import/spreadsheet_roo.rb, line 118
def merge(start_row, start_col, end_row, end_col)
  @sheet.merge_cells(start_row - 1, start_col - 1, end_row - 1, end_col - 1)
end
row(n) click to toggle source

Contract Pos => Any

# File lib/tmis/engine/import/spreadsheet_roo.rb, line 93
def row(n)
  @sheet.row(n - 1)
end
save() click to toggle source

Contract None => Any

# File lib/tmis/engine/import/spreadsheet_roo.rb, line 113
def save
  @book.write("#{@filepath}_temp")
  FileUtils.mv("#{@filepath}_temp", @filepath) # Обход бага в библиотеке
end
sheet(number) click to toggle source

Contract Not => Any

# File lib/tmis/engine/import/spreadsheet_roo.rb, line 88
def sheet(number)
  @sheet = @book.worksheet(number - 1)
end