我有一个包含2列A和B的Excel电子表格,每列1-10的行都是数字。当我尝试显示数字值时。结果如下:
#<Spreadsheet::Column:0x007fba83810368>
#<Spreadsheet::Column:0x007fba83810d90>
...
...
...
在电子表格中,我有这个:
x y
32 4
402 6
733 4
1 30
2 3128
2 4
1 1
6 2
10 63
90 333
这就是我遍历文件的方式:
require 'spreadsheet'
importing = Spreadsheet.open 'file.xls'
book = importing.worksheet 'Sheet1'
book.each do |x, y|
x = book.column(1)
y = book.column(2)
puts x
puts y
end
如何让ruby程序以格式化方式输出数据?我的预期输出与电子表格格式相同。
答案 0 :(得分:1)
这是一种方法。以下代码基本上与此answer中建议的相同(建议采用类似Ruby的方式),我已经添加了两行来生成您想要的输出格式: / p>
puts "x y"
require 'spreadsheet'
Spreadsheet.open('file.xls') do |book|
book.worksheet('Sheet1').each do |row|
break if row[0].nil?
puts "%6d %6d" % row
end
end
您需要根据您要处理的最长数量来更改列宽。我允许每列6个数字(%6d),1个空格(两个格式说明符之间)。我还用每个左对齐数字的最左边数字排列了列标题。