Excelファイルを解析する508 htmlテーブルを開発しています。表示されているセル データを読み取りたい (roo が吐き出すフロート値ではありません)。式がある場合、roo gem は、形式が適用された後にデータを読み取るだけではありません。ここのように、フロート値の例を取得します: "90.909090909090907" しかし、Excel に表示される数値は "91" です。表示されているExcelデータの文字列値を取得するだけなら問題ありません。
前もって感謝します。
Excelファイルを解析する508 htmlテーブルを開発しています。表示されているセル データを読み取りたい (roo が吐き出すフロート値ではありません)。式がある場合、roo gem は、形式が適用された後にデータを読み取るだけではありません。ここのように、フロート値の例を取得します: "90.909090909090907" しかし、Excel に表示される数値は "91" です。表示されているExcelデータの文字列値を取得するだけなら問題ありません。
前もって感謝します。
同様の問題。Magesh's answerへの追加として、どのセルが整数になるかわからない場合は、次の方法で確認できます。
s.cell(i, j).to_i if s.cell(i,j).is_a?(Float) && s.cell(i,j).denominator == 1
明らかに、いくつかの誤検知が発生する可能性がありますが、ほとんどの場合、整数であるはずのセルが整数に変わり、浮動小数点であるはずのセルが保持されます。
「roo」gemを最初に使用しようとしたとき、同じ問題が発生しました。.to_i を使用して修正できます。
row = spreadsheet.row(1)
row[0].to_i
ここで、.to_i は数値を float 表現から 91.0 や 91.03030 などの代わりに 91 のような通常の整数に変更します。
(プライベート) メソッドをチェックしてRoo::Base.cell_to_csv
、スプレッドシートのデータ型を処理する方法を理解してください。
表示された値(フォーマットされた値)を取得するには、このメソッドを使用します
xlsx.formatted_value(row,col)