Проблема с тем, что вы делаете, заключается в том, что вы передаете объект date
, но если вы прочитали документацию Дата и время , то первые две строки говорят об этом -
- Дата / время в Excel - это действительное число плюс числовой формат Excel.
- WriteXLSX не выполняет автоматическое преобразование строк даты / времени в write () в дату / время Excel.
Теперь, чтобы ответить на ваш вопрос, вам необходимо преобразовать date
в number
, который понимает Excel.
date_time = DateTime.now.strftime('%Y-%m-%dT00:00:00.000Z')
Я добавил 00:00:00.000
, так как вы не беспокоитесь о времени, если вы хотите, чтобы время также было, тогда проверьте документацию strftime
date_time_number = worksheet.convert_date_time(date_time)
format2 = workbook.add_format(:num_format => 'dd/mm/yy')
worksheet.write(row, col, number, format2)
Это должно решить это для вас
Это помогло мне понять, как использовать convert_date_time , и его упоминание находится внизу документации Date Time