使用Roo gem读取单元格显示数据

时间:2013-04-23 19:12:57

标签: ruby-on-rails ruby rubygems gem

我正在开发一个解析excel文件的508 html表。我想读取正在显示的单元格数据(而不是当roo吐出时的浮点值)。 当有公式时,roo gem不仅仅是在应用格式后读取数据。就像在这里我获得浮动值ex:“90.909090909090907”但是excel上显示的数字是“91”。 如果我只是显示excel数据的字符串值,那就很好了。

提前谢谢。

4 个答案:

答案 0 :(得分:2)

同样的问题。正如Magesh's answer的补充一样,如果你不知道哪个单元格是整数,你可以查看:

s.cell(i, j).to_i if s.cell(i,j).is_a?(Float) && s.cell(i,j).denominator == 1

显然你可能会有一些误报,但是大多数情况下它会将应该是整数的单元格变成整数并保留那些应该是浮点数的单元格。

答案 1 :(得分:1)

当我第一次尝试使用'roo'宝石时,我遇到了同样的问题。您可以使用.to_i,

来解决这个问题
row = spreadsheet.row(1)
row[0].to_i

这里,.to_i会将数字从浮点表示更改为普通整数,如91而不是91.0或91.03030或者它可能

答案 2 :(得分:0)

查看Roo::Base.cell_to_csv(私有)方法,了解如何处理电子表格的数据类型。

答案 3 :(得分:0)

要获取显示的值(格式化值),请使用此方法

xlsx.formatted_value(row,col)

http://www.rubydoc.info/gems/roo/frames