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 日期翻译为红宝石日期。
这应该可以解决问题:
excel_date = row[1].date
ruby_date = excel_date.strftime('%m/%d/%Y')

于 2012-08-09T08:21:17.120 回答