使用Roo使用列标题解析Excel工作表-Ruby

rub*_*nce 5 ruby ruby-on-rails import-from-excel ruby-roo

我们可以使用列标题指定使用roogem 解析excel表的列号吗?我当前的代码现在是这样的:

oo = Openoffice.new("simple_spreadsheet.ods")
oo.default_sheet = oo.sheets.first
(2..oo.last_row).each do |line|
  date       = oo.cell(line,'A')
  start_time = oo.cell(line,'B')
  end_time   = oo.cell(line,'C')
  pause      = oo.cell(line,'D')
  ...
end
Run Code Online (Sandbox Code Playgroud)

我想从列标题解析,而不是将列指定为'A' 'B' 'C' ..。我可以使用Roo吗?

小智 3

您可以将整个标题行作为数组获取,并对标题行上的整个行键进行哈希处理。

oo = Openoffice.new("simple_spreadsheet.ods") 
oo.default_sheet = oo.sheets.first 
header = oo.row(1) 
2.upto(oo.last_row) do |line|  
  row_data =  Hash[header.zip oo.row(line)]
  ...
end
Run Code Online (Sandbox Code Playgroud)

您还可以用来row_data[line]嵌套哈希值以供以后使用。