Я использую Rails 5. Я хочу разобрать .xls(не путать с .xlsx doc), используя код ниже
book = Roo::Spreadsheet.open(file_location)
sheet = book.sheet(0)
text = sheet.to_csv
csv = CSV.parse(text)
arr_of_arrs = csv
text_content = ""
arr_of_arrs.each do |arr|
arr.map!{|v| v && v.to_f < 1 && v.to_f > 0 ? TimeFormattingHelper.time_as_str(v.to_f * 24 * 3600 * 1000) : v}
text_content = "#{text_content}\n#{arr.join("\t")}"
end
Вот метод, который я упоминал выше
def time_as_str(time_in_ms)
regex = /^(0*:?)*0*/
Time.at(time_in_ms.to_f/1000).utc.strftime("%H:%M:%S.%1N").sub!(regex, '')
end
В одной области, с которой я столкнулся, есть ячейка, которая появляется в моем .xls doc как
24:08:00
обрабатывается как
1904-01-02T00:08:00+00:00
с кодом выше. Как разобрать значение, которое я вижу на экране? То есть, как преобразовать значение даты в значение времени?
В качестве примера из другого документа Excel, ячейки, которая отображается как
24:02:00
анализируется моим кодом выше как
1899-12-31T00:02:00+00:00