Sha256: 1d7daa460bf553ca6aa564afafd5eb06b5813f2bbdb782bc1382ce807a5b5ae6

Contents?: true

Size: 1.04 KB

Versions: 5

Compression:

Stored size: 1.04 KB

Contents

module POI
  class Rows
    include Enumerable
    
    def initialize(worksheet)
      @worksheet = worksheet
      @poi_worksheet = worksheet.poi_worksheet
      @rows = {}
    end

    def [](index)
      @rows[index] ||= Row.new(@poi_worksheet.row(index) || @poi_worksheet.create_row(index), @worksheet)
    end

    def size 
      @poi_worksheet.physical_number_of_rows 
    end

    def each
      it = @poi_worksheet.row_iterator
      yield Row.new(it.next, @worksheet) while it.has_next
    end
  end

  class Row < Facade(:poi_row, org.apache.poi.ss.usermodel.Row)
    def initialize(row, worksheet)
      @row       = row
      @worksheet = worksheet
    end
    
    def [](index)
      return nil if poi_row.nil?
      cells[index]
    end

    def cells
      @cells ||= Cells.new(self)
    end

    def index
      return nil if poi_row.nil?
      poi_row.row_num
    end    

    # def height_in_points= num
    #   set_height_in_points num.to_f
    # end

    def poi_row
      @row
    end
    
    def worksheet
      @worksheet
    end
  end
end

Version data entries

5 entries across 5 versions & 3 rubygems

Version Path
timcharper-jruby-poi-0.9.1 lib/poi/workbook/row.rb
jruby-poi-0.9.0 lib/poi/workbook/row.rb
nurettin-jruby-poi-0.8.2 lib/poi/workbook/row.rb
jruby-poi-0.8.2 lib/poi/workbook/row.rb
jruby-poi-0.7.2 lib/poi/workbook/row.rb