diff options
Diffstat (limited to 'lib/roo/formatters/matrix.rb')
| -rw-r--r-- | lib/roo/formatters/matrix.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/roo/formatters/matrix.rb b/lib/roo/formatters/matrix.rb new file mode 100644 index 0000000..39c7381 --- /dev/null +++ b/lib/roo/formatters/matrix.rb @@ -0,0 +1,23 @@ +module Roo + module Formatters + module Matrix + # returns a matrix object from the whole sheet or a rectangular area of a sheet + def to_matrix(from_row = nil, from_column = nil, to_row = nil, to_column = nil, sheet = default_sheet) + require 'matrix' + + return ::Matrix.empty unless first_row + + from_row ||= first_row(sheet) + to_row ||= last_row(sheet) + from_column ||= first_column(sheet) + to_column ||= last_column(sheet) + + ::Matrix.rows(from_row.upto(to_row).map do |row| + from_column.upto(to_column).map do |col| + cell(row, col, sheet) + end + end) + end + end + end +end |
