0

スプレッドシートの日付列は次のようにフォーマットされていますが、スプレッド'mm/dd/yyyy' シートで上記の列を読んだ場合、フォーマットは上記のフォーマットとは異なります。

私のコードは次のとおりです。

require 'spreadsheet'

Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open params[:excel_file]
sheet1 = book.worksheet 0
sheet1.each do |row|
  row.set_format 1, Spreadsheet::Format.new(:number_format => 'MM/DD/YYYY')
  h = Hash.new
  h["name"] = row[0]
  h["date"] = row[1]
  ......
end

現在、h["date"]は正しく取得されていません。では、元の形式で日付列を正しく取得するにはどうすればよいですか。誰かが私がこれを整理するのを手伝ってくれますか?

4

1 に答える 1

0

row[1].dateまたはrow[1].datetimeあなたに正しい値を取得します。書きながらフォーマットを設定して、その逆ではないように設定できると思います。

更新
Excelの日付をルビーの日付に変換する必要があると思いました。
これでうまくいくはずです:
excel_date = row[1].date
ruby_date = excel_date.strftime('%m/%d/%Y')

于 2012-08-09T08:21:17.120 に答える