[#49480] [ANN] Milkode 1.1 — ongaeshi <ongaeshi0621@...>

おんがえし です。

13 messages 2013/07/02

[#49508] OSXでRUBY-TKインストール出来た方いますか? — Tsuyoshi Uema <mugenkai_151e@...>

7.8年ぶりの書き込みです。

12 messages 2013/07/29

[ruby-list:49486] Spreadsheet でfloatを入れるとDate型になってしまう

From: dezawa <dezawa@...>
Date: 2013-07-05 04:28:33 UTC
List: ruby-list #49486
出沢です

Spreadsheetを使ってLinux上でExcelファイルの修正を試みています。

新しいsheetを作ったり、あまり複雑ではないbookの場合は問題は
起きなかったのですが、裏に色々仕組まれているsheetで発生しました。
 空のcellに 7.5 とか 0.5 などを入れると Date型になってしまい、
 できたExcelを開くと 7.00, 0.00 となります。

require 'rubygems'
require 'spreadsheet'

book = Spreadsheet.open('/tmp/orig.xls')
sheet = book.worksheet(0)

puts sheet[45,14].class           => NilClass
sheet[45,14] = 7.5
puts sheet[45,14]                 => 1900-01-06
puts sheet[45,14].class           => Date
book.write('/tmp/modified.xls')

book2 = Spreadsheet.open('/tmp/9modified.xls')
sheet2 = book2.worksheet(0)
puts sheet2[45,14].class              => Date

調べてみると書式が   0.00_);[RED]\(0.00\)   となっているのが
原因でした。
  1)cell(45,14)書式を標準、下二桁表示にして上の処理をしたら、
    Float になった
  2)新しいbookをOpenofficeで作り、この書式のcellを作ってそこに
    上の処理をしたらDateになった

さて、
問題のBookに手を入れたくないのですが(色々仕組まれていて触るのが怖い)
なにか良い方法は無いでしょうか。

宜しくお願いします。
ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]
spreadsheet (0.8.5)

In This Thread

Prev Next