4

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

先感谢您。

4

4 回答 4

2

同样的问题。作为Magesh 答案的补充,如果您不知道哪些单元格将是整数,您可以通过以下方式检查:

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

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

于 2013-10-02T15:50:54.343 回答
1

当我第一次尝试使用“roo”gem 时,我遇到了同样的问题。你可以通过使用 .to_i 来解决这个问题,

row = spreadsheet.row(1)
row[0].to_i

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

于 2013-07-13T18:49:58.847 回答
0

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

于 2015-06-19T17:13:12.157 回答
0

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

xlsx.formatted_value(row,col)

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

于 2017-09-19T11:13:45.817 回答