Ruby on rails WriteXLSX gem未正确打印日期格式打印为正常数字格式
需要以xlsx文件mm/dd/yyyy格式打印日期,使用add_格式方法添加了该格式,但其打印为“2019-09-27 Elarated date”Ruby on rails WriteXLSX gem未正确打印日期格式打印为正常数字格式,ruby-on-rails,ruby,xlsx,Ruby On Rails,Ruby,Xlsx,需要以xlsx文件mm/dd/yyyy格式打印日期,使用add_格式方法添加了该格式,但其打印为“2019-09-27 Elarated date” workbook = ::WriteXLSX.new(file, strings_to_urls: false) worksheet = workbook.add_worksheet('Sheet 1') row=column=1 date_val = Date.today date_format = workbook.add_format({'n
workbook = ::WriteXLSX.new(file, strings_to_urls: false)
worksheet = workbook.add_worksheet('Sheet 1')
row=column=1
date_val = Date.today
date_format = workbook.add_format({'num_format': 'dd/mm/yy'})
worksheet.write(1 + row, column, date_val, date_format)
workbook.close
然后我尝试了写日期时间方法,代码示例如下
workbook = ::WriteXLSX.new(file, strings_to_urls: false)
worksheet = workbook.add_worksheet('Sheet 1')
row=column=1
date_val = Date.today
date_format = workbook.add_format({'num_format': 'dd/mm/yy'})
worksheet.write_date_time(1 + row, column, item[:value]&.iso8601, date_format)
workbook.close
您正在执行的操作的问题是您正在传递一个
日期
对象,但是如果您已经阅读了
日期
转换为Excel能够理解的数字
date\u time=DateTime.now.strftime(“%Y-%m-%dT00:00:00.000Z”)
我添加了00:00:00.000
,因为您不关心时间,如果您也需要时间,请检查
这应该能帮你解决问题
在的底部提到了它。您正在做的问题是您正在传递一个日期
对象,但是如果您已经阅读了
Excel中的日期/时间是实数加上Excel数字格式
WriteXLSX不会自动将write()中的日期/时间字符串转换为Excel日期/时间
现在,要回答您的问题,您需要将日期
转换为Excel能够理解的数字
date\u time=DateTime.now.strftime(“%Y-%m-%dT00:00:00.000Z”)
我添加了00:00:00.000
,因为您不关心时间,如果您也需要时间,请检查
这应该能帮你解决问题
这一点在文章的底部有提及
date_time_number = worksheet.convert_date_time(date_time)
format2 = workbook.add_format(:num_format => 'dd/mm/yy')
worksheet.write(row, col, number, format2)