我有以下代码
require 'rubygems'
require 'roo'
class ExcelReader
dataarray = Array.new();
dataarray_new = Array.new();
workbook = Roo::Spreadsheet.open('C:\data\testexcel.xlsx')
worksheets = workbook.sheets
worksheets.each do |worksheet|
num_rows = 0
workbook.sheet(worksheet).each_row_streaming do |row|
if(num_rows>0) #skipping header
row_cells = row.map do |cell|
cell.value
end
dataarray.push(row_cells)
end
num_rows += 1
end
puts dataarray.to_s;
dataarray1, dataarray2 = dataarray.partition { |element|
for index in (0...dataarray.size)
element[index].first == dataarray1[index].first if(dataarray1!=nil)
dataarray_new.push(element[index]) if(element[index]!=nil)
end
}
end
puts dataarray_new.to_s;
end
电流输出
[1, "Mia", 2, "Isha", 1, "Mia", 2, "Isha", 1, "Mango", "Apple", 2, "Banana", "Cashew"]
实际上excel看起来像:
sheet 1
No Name
1 Mia
2 Isha
Sheet 2
No Fruit1 Fruit2
1 Mango Apple
2 Banana Cashew
我是 ruby 新手,我希望输出
[[[1, "Mia"], [[1, "Mango", "Apple"]], [[2, "Isha"], [2, "Banana", "Cashew"]]]
我需要将工作表 1 的第 1 行和工作表 2 的第 1 行合并为我尝试使用分区的数组。工作表 1 和工作表 2 的列 1 相同。