gpt4 book ai didi

ruby roo 从解析中删除列

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:37 25 4
gpt4 key购买 nike

我在编程方面完全是新手...在此先感谢所有愿意回答我的人...我正在尝试从搜索开始打印列。其实我的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

我想从“服务器”搜索开始以相同的 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, # i.e. 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,
},
]

并且应该适用于您拥有的许多 N 服务器/列,因为每个服务器/列都在 server_columns 变量中被枚举。

关于ruby roo 从解析中删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23104722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com