Ruby Spreadsheet Gem:如何显示列中所有内容的值?

时间:2014-09-06 03:15:58

标签: ruby excel rubygems

我有一个包含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程序以格式化方式输出数据?我的预期输出与电子表格格式相同。

1 个答案:

答案 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个空格(两个格式说明符之间)。我还用每个左对齐数字的最左边数字排列了列标题。