diff options
| -rw-r--r-- | lib/axlsx.rb | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/axlsx.rb b/lib/axlsx.rb index 5be3c526..0c8c3850 100644 --- a/lib/axlsx.rb +++ b/lib/axlsx.rb @@ -51,10 +51,11 @@ module Axlsx # determines the cell range for the items provided def self.cell_range(cells, absolute=true) return "" unless cells.first.is_a? Cell - cells = sort_cells(cells) - reference = "#{cells.first.reference(absolute)}:#{cells.last.reference(absolute)}" + + first_cell, last_cell = cells.minmax_by(&:pos) + reference = "#{first_cell.reference(absolute)}:#{last_cell.reference(absolute)}" if absolute - escaped_name = cells.first.row.worksheet.name.gsub ''', "''" + escaped_name = first_cell.row.worksheet.name.gsub ''', "''" "'#{escaped_name}'!#{reference}" else reference @@ -66,7 +67,7 @@ module Axlsx # @param [Array] cells # @return [Array] def self.sort_cells(cells) - cells.sort { |x, y| [x.index, x.row.row_index] <=> [y.index, y.row.row_index] } + cells.sort_by(&:pos) end #global reference html entity encoding |
