excel - Ruby 阅读 Excel 在值中包含额外的 '[" "]',我该如何删除它们?
问题描述
我有这个非常简单的 Ruby 代码
xlsx = Roo::Excelx.new($docs_dir + '/mytestsheet.xlsx')
xlsx.each do |str|
send_keys_characters(str)
step %[I wait for 2 sec]
end
end
但是输出返回 [" "] .eg ["xxxxxx"]["aaaaaaaaaaaaaaaaaaaaa"]["bbbbbbbbbbbbbbbbbbbb"]["cccccccccccccccccc"] 之间的值我怎样才能去掉多余的 [" "] 并只留下值?
解决方案
在这种情况下,我喜欢的一种方法是解构块参数。
本文对 Ruby 中的解构提供了更广泛的概述: https ://jsarbada.wordpress.com/2019/02/05/destructuring-with-ruby/
对于您的示例:
您可以使用括号告诉块您期望一个数组作为参数,并且您希望使用该数组中的元素,而不是数组本身:
irb(main):001:0> [ ['a'], ['b'], ['c'] ].each do |(char)|
irb(main):002:1* puts char.inspect
irb(main):003:1> end
"a"
"b"
"c"
=> [["a"], ["b"], ["c"]]
注意正在打印的内容。那些是字符串。|(char)|
( 而不是)的解构语法|char|
导致变量char
被分配到数组的第一个元素,而不是被分配到数组本身。我相信这与您想要的相似。
您的代码更像这样,没有解构(请注意 内缺少括号|char_in_arr|
):
irb(main):004:0> [ ['a'], ['b'], ['c'] ].each do |char_in_arr|
irb(main):005:1* puts char_in_arr.inspect
irb(main):006:1> end
["a"]
["b"]
["c"]
=> [["a"], ["b"], ["c"]]
所以我建议你试试下面的代码,看看它是否符合你的目的:
xlsx.each do |(str)|
send_keys_characters(str)
step %[I wait for 2 sec]
end
推荐阅读
- c# - 解决方案的某些 DLL-s 中使用了不同版本的 C#
- java - 我如何设置一个监听器,当我的新位置在多边形内时通知我(有点像地理围栏)
- visual-studio-code - Visual Studio Code - 在 Windows 上的“选择默认外壳”列表中添加选项?
- android - 如何将值从 android 编辑文本发送到我的网站以进行登录?
- git - 更改了 bitbucket 上的 git 存储库名称,现在当我尝试拉/推时身份验证失败
- javascript - 前后移动覆盖元素
- python - 我正在尝试使用 CSV 文件中的数据制作多项式回归线
- sublimetext3 - sublime text 3中是否有任何快捷键来更改语言?
- c# - Kendo UI ASP.NET Core:自定义编辑器模板中的 NullReferenceException
- php - 无法在 Laravel 中访问文件 PHPMailer