class PoiSpreadsheet::Workbook
Attributes
j_book[RW]
Public Class Methods
load(file)
click to toggle source
# File lib/poi_spreadsheet.rb, line 38 def self.load file @file_name = file @workbook_class = Rjb::import('org.apache.poi.hssf.usermodel.HSSFWorkbook') @poifs_class = Rjb::import('org.apache.poi.poifs.filesystem.POIFSFileSystem') @file_input_class = Rjb::import('java.io.FileInputStream') @file_input = @file_input_class.new(file) book = new fs = @poifs_class.new(@file_input) book.j_book = @workbook_class.new(fs) book end
new()
click to toggle source
# File lib/poi_spreadsheet.rb, line 53 def initialize @sheets = nil end
Public Instance Methods
[](k)
click to toggle source
Get sheet by name
# File lib/poi_spreadsheet.rb, line 86 def [](k) sheets[k] end
_evaluator()
click to toggle source
# File lib/poi_spreadsheet.rb, line 101 def _evaluator @_evaluator ||= j_book.getCreationHelper.createFormulaEvaluator end
clone_sheet(index)
click to toggle source
# File lib/poi_spreadsheet.rb, line 76 def clone_sheet index self.sheets << Worksheet.from_sheet(j_book.cloneSheet(index)) end
create_sheet(name)
click to toggle source
# File lib/poi_spreadsheet.rb, line 72 def create_sheet name self.sheets << Worksheet.from_sheet(j_book.createSheet(name)) end
remove_sheet_at(index)
click to toggle source
# File lib/poi_spreadsheet.rb, line 80 def remove_sheet_at index j_book.removeSheetAt(index) @sheets.delete_at(index) end
save(file_name = @file_name)
click to toggle source
# File lib/poi_spreadsheet.rb, line 90 def save file_name = @file_name @file_output_class ||= Rjb::import('java.io.FileOutputStream') out = @file_output_class.new(file_name); begin j_book.write(out) ensure out.close(); end end
sheets()
click to toggle source
Get sheets
# File lib/poi_spreadsheet.rb, line 58 def sheets @sheets ||= begin sheets = [] self.j_book.getNumberOfSheets.times { |i| j_sheet = j_book.getSheetAt(i) sheet = Worksheet.from_sheet(j_sheet) sheet.book = self name = j_book.getSheetName(i) sheets << sheet } sheets end end