2012-08-09 2 views
0

La colonne date dans la feuille de calcul est au format 'mm/dd/yyyy' Mais lorsque je lis la colonne ci-dessus via la feuille de calcul, le format est différent du format ci-dessus.Comment faire pour récupérer la date correctement en utilisant tableur gem ruby ​​

Mon code est le suivant:

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 

Actuellement h [ "date"] ne récupère pas correctement. Alors, comment dois-je récupérer la colonne de date correctement avec mon formatage d'origine. Quelqu'un peut-il m'aider à régler cela!

Répondre

0

row[1].date ou row[1].datetime vous obtiendrez la bonne valeur. Je suppose que vous pouvez définir le format en l'écrivant pour exceller et non l'inverse.

Mise à jour
Je pensais que vous aviez juste besoin votre date excel traduit comme date de rubis.
Cela devrait faire l'affaire:
excel_date = row[1].date
ruby_date = excel_date.strftime('%m/%d/%Y')

Questions connexes