2012-08-09 147 views
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 [ “日”]不会检索正确。那么我应该如何正确检索日期列以及我的原始格式。任何人都可以帮我解决这个问题!

回答

0

row[1].daterow[1].datetime会给你正确的价值。我想你可以在写出格式的时候设置格式,而不是相反。

更新
我以为你只是需要你的excel日期翻译为红宝石日期。
这应该做的伎俩:
excel_date = row[1].date
ruby_date = excel_date.strftime('%m/%d/%Y')