4

Excelファイルを解析する508 htmlテーブルを開発しています。表示されているセル データを読み取りたい (roo が吐き出すフロート値ではありません)。式がある場合、roo gem は、形式が適用された後にデータを読み取るだけではありません。ここのように、フロート値の例を取得します: "90.909090909090907" しかし、Excel に表示される数値は "91" です。表示されているExcelデータの文字列値を取得するだけなら問題ありません。

前もって感謝します。

4

4 に答える 4

2

同様の問題。Magesh's answerへの追加として、どのセルが整数になるかわからない場合は、次の方法で確認できます。

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 は数値を float 表現から 91.0 や 91.03030 などの代わりに 91 のような通常の整数に変更します。

于 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 に答える