Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails WriteXLSX gem未正确打印日期格式打印为正常数字格式_Ruby On Rails_Ruby_Xlsx - Fatal编程技术网

Ruby on rails WriteXLSX gem未正确打印日期格式打印为正常数字格式

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

需要以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({'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中的日期/时间是实数加上Excel数字格式
  • WriteXLSX不会自动将write()中的日期/时间字符串转换为Excel日期/时间
  • 现在,要回答您的问题,您需要将
    日期
    转换为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)