正如其他帖子中所述,
roo
gem
有一些复杂的文档,我不知道如何迭代xlsx
workbook
的sheets
,然后每个sheet
' s 行。
迭代每个
sheet
只会得到 sheet
的名称,而不是对 sheet
本身的引用。所以我必须声明一下。仍然无法遍历所有rows
。
s = '/Users/user3/Desktop/departments.xlsx'
a = Roo::Spreadsheet.open(s)
sheets = a.sheets.reverse
sheets.each_with_index do |index, i|
sheet = a.sheet(index)
sheet.each_row do|row|
puts row
end
end
roo
文档中的其他示例假设 default sheet
文件中有一个 workbook
和一张工作表。不是我的情况,所以很快就会变得混乱。
如何遍历每张表,然后遍历每一行,以进行测试并包含到我的分析中?我正在使用的电子表格有一个空白列和许多行,以及一些艺术品......典型的办公室东西。这些人不是数据人。绕过他们在电子表格中的“创造力”是通过迭代和测试每一行,然后剥离空白单元格来完成的。
任何有洞察力的人都会真正感激。
您应该将工作表名称传递给
sheet
方法,该方法声明:Roo::Base#sheet
file = 'xxx/xxx.xlsx' # your file path
wb = Roo::Spreadsheet.open(file, extension: :xlsx)
sheet_names = wb.sheets # all sheet names in this workbook
sheet_names.each do |sheet_name|
curr_sheet = wb.sheet(sheet_name) # change default sheet
curr_sheet.each_row_streaming do |row|
# do something
end
end
已解决:使用
Creek
gem
。感谢@Rajagopalan为此。