aboutsummaryrefslogtreecommitdiffstats
path: root/lib/roo/formatters/matrix.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/roo/formatters/matrix.rb')
-rw-r--r--lib/roo/formatters/matrix.rb23
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