rubyroo从parsing中放列

我是编程的总新手…提前感谢所有将回答我的人..我试图打印从search开始的列。 其实我的excel是这样组成的:

| | Header | Header | Header | Header | |Header|Server 1|Server 2|Server 3|Server 4| |Header| Data | Data | Data | Data | |Header| Data | Data | Data | Data | |Header| Data | Data | Data | Data | 

这是我的代码,但输出不是我要找的….

 fo_set_parse = xls.parse(:header_search => ['Server'], :clean => true) fo_set_parse.each do |row| row.each do |key,value| if value != nil puts "#{value}" end end end 

我想从“服务器”search开始以相同的Excel风格打印。“服务器”的数量每次都会改变,所以我不能使用类似

 1.upto(xls.last_column) do |col| server1 = xls.cell(2,col) server2 = xls.cell(3,col) server3 = xls.cell(4,col) server4 = xls.cell(5,col) puts "#{server1}\t #{server2}\t #{server3}\t #{server4}\t" end 

任何帮助?

我对roo并不熟悉(乍一看,似乎并没有太多的例子可以解决),但是怎么样:

 data_row_definitions = { :data_a => 2, # ie data_a is stored in row 2 for all servers :data_b => 3, :data_c => 4, } server_columns = 2.upto(xls.last_column) # or whatever columns the servers are listed server_columns.map do |server_col| data_for_server = Hash[ data_row_definitions.map do |data_name, row| cell_value = xls.cell(row, server_col) [data_name, cell_value] end ] end 

有一个表如:

 | |Server 1|Server 2|Server N| | dataA | 1| 3| 7| | dataB | 10| 35| 14| | dataC | 100| 95| 28| 

(我会想象)你会得到的数据结构:

 [ { "dataA" => 1, "dataB" => 10, "dataC" => 100, }, { "dataA" => 3, "dataB" => 35, "dataC" => 95, }, { "dataA" => 7, "dataB" => 14, "dataC" => 28, }, ] 

而且,由于服务器variables列举了每个服务器/列,所以应该为无数个N服务器/列工作。