使用excel将结果记录在ruby watir中。如何使用puts保持不同单元格中的值

时间:2014-05-06 12:31:33

标签: ruby excel cell watir

我是ruby watir的新手,需要你的帮助。

我使用以下命令将我的脚本结果记录到Excel工作表中。

File.open('c:\log.txt', 'w') do |file|
  file.puts("TEST PASSED" + "#{Time.now}")
end

此处测试通过,时间显示在单个单元格中。

我想在不同的单元格中显示它们。

请提出解决方案。 提前谢谢!

2 个答案:

答案 0 :(得分:1)

最简单的解决方案可能是将结果记录在CSV(逗号分隔值)文件中。这些可以像文本文件一样编写,也可以作为网格读取。

对于CSV文件,每行代表表中的一行。在每行中,列值(或单元格)用逗号分隔。例如,以下内容将创建包含3列的2行:

a1, b1, c1
a2, b2, c2

对于您的日志记录,您可以:

  • 创建log.csv而不是log.txt
  • 以逗号分隔输出值

代码如下:

File.open('c:\log.csv', 'w') do |file|
  file.puts("TEST PASSED, #{Time.now}")
end

答案 1 :(得分:1)

您正在登录名为log.txt的文件,该文件似乎是纯文本文件。如果您希望您的文件是excel文件,则需要格式,最容易写入的文件是.csv.tsv,它代表逗号分隔变量和制表符分隔变量。然后你可以用几种不同的方式写作。你可以像以前一样写:

File.open('c:\log.tsv', 'w') do |file|
  file.puts("TEST PASSED\t" + "#{Time.now}")
end

表示tsv(注意它不需要被称为.tsv)

File.open('c:\log.csv', 'w') do |file|
  file.puts("TEST PASSED," + "#{Time.now}")
end

表示csv

或者您可以使用standard csv library。像这样:

CSV.open("c:\log.csv", "wb") do |csv|
  csv << ["TEST PASSED", "#{Time.now}"]
end

你可以操纵tsv:

CSV.open("c:\log.csv", "wb", { :col_sep => "\t" }) do |csv|
  csv << ["TEST PASSED", "#{Time.now}"]
end