summaryrefslogtreecommitdiffhomepage
path: root/lib/axlsx/workbook/worksheet
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2012-07-15 16:46:04 +0900
committerRandy Morgan <[email protected]>2012-07-15 16:46:04 +0900
commitaeb2d164c3db46d4d2d6e05fd34eba4e2193d28a (patch)
tree3f2acc2d7e6ff84b80b1c1ae691b6113590cb27c /lib/axlsx/workbook/worksheet
parentfc7ef8f32e3109f859a4b3ccb666b56640d319ed (diff)
downloadcaxlsx-aeb2d164c3db46d4d2d6e05fd34eba4e2193d28a.tar.gz
caxlsx-aeb2d164c3db46d4d2d6e05fd34eba4e2193d28a.zip
refactor string based cell range retrival
Diffstat (limited to 'lib/axlsx/workbook/worksheet')
-rw-r--r--lib/axlsx/workbook/worksheet/worksheet.rb26
1 files changed, 14 insertions, 12 deletions
diff --git a/lib/axlsx/workbook/worksheet/worksheet.rb b/lib/axlsx/workbook/worksheet/worksheet.rb
index ba39180f..bf48bf67 100644
--- a/lib/axlsx/workbook/worksheet/worksheet.rb
+++ b/lib/axlsx/workbook/worksheet/worksheet.rb
@@ -576,25 +576,27 @@ module Axlsx
# @return [Cell, Array]
def [] (cell_def)
return rows[cell_def] if cell_def.is_a?(Integer)
-
- parts = cell_def.split(':')
- first = name_to_cell parts[0]
+ parts = cell_def.split(':').map{ |part| name_to_cell part }
if parts.size == 1
- first
+ parts.first
else
- cells = []
- last = name_to_cell(parts[1])
- rows[(first.row.index..last.row.index)].each do |r|
- r.cells[(first.index..last.index)].each do |c|
- cells << c
- end
- end
- cells
+ range(*parts)
end
end
private
+ def range(*cell_def)
+ first, last = cell_def
+ cells = []
+ rows[(first.row.index..last.row.index)].each do |r|
+ r.cells[(first.index..last.index)].each do |c|
+ cells << c
+ end
+ end
+ cells
+ end
+
# A collection of protected ranges in the worksheet
# @note The recommended way to manage protected ranges is with Worksheet#protect_range
# @see Worksheet#protect_range