Class: PoiSpreadsheet::Workbook
- Inherits:
-
Object
- Object
- PoiSpreadsheet::Workbook
- Defined in:
- lib/poi_spreadsheet.rb
Instance Attribute Summary collapse
-
#j_book ⇒ Object
Returns the value of attribute j_book.
Class Method Summary collapse
Instance Method Summary collapse
-
#[](k) ⇒ Object
Get sheet by name.
- #_evaluator ⇒ Object
-
#initialize ⇒ Workbook
constructor
A new instance of Workbook.
- #save(file_name = @file_name) ⇒ Object
-
#sheets ⇒ Object
Get sheet names.
Constructor Details
#initialize ⇒ Workbook
Returns a new instance of Workbook.
53 54 55 |
# File 'lib/poi_spreadsheet.rb', line 53 def initialize @sheets = nil end |
Instance Attribute Details
#j_book ⇒ Object
Returns the value of attribute j_book.
36 37 38 |
# File 'lib/poi_spreadsheet.rb', line 36 def j_book @j_book end |
Class Method Details
.load(file) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# 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 |
Instance Method Details
#[](k) ⇒ Object
Get sheet by name
73 74 75 |
# File 'lib/poi_spreadsheet.rb', line 73 def [](k) sheets[k] end |
#_evaluator ⇒ Object
88 89 90 |
# File 'lib/poi_spreadsheet.rb', line 88 def _evaluator @_evaluator ||= j_book.getCreationHelper.createFormulaEvaluator end |
#save(file_name = @file_name) ⇒ Object
77 78 79 80 81 82 83 84 85 86 |
# File 'lib/poi_spreadsheet.rb', line 77 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 ⇒ Object
Get sheet names
58 59 60 61 62 63 64 65 66 67 68 69 70 |
# 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[name] = sheet } sheets end end |