关于通过前端xslx解析excel日期格式数据转化问题以及自定义时间格式YYYY

您所在的位置:网站首页 excel格式转换为数字少了 关于通过前端xslx解析excel日期格式数据转化问题以及自定义时间格式YYYY

关于通过前端xslx解析excel日期格式数据转化问题以及自定义时间格式YYYY

2023-12-20 17:13| 来源: 网络整理| 查看: 265

如果excel中内容如下,需要解析时间格式的内容

 

XLSX.read会默认解析为天数的时间戳字符串(从1900年算起到当前日期的天数)

 

如果想让xlsx帮我们解析时,就完成解析时间格式,只需要加上如下配置即可

const workbook = XLSX.read(data, { type: "binary", cellDates: true,//设为true,将天数的时间戳转为时间格式 });

 

再看转换后的结果(转成了中国标准时间)

我最终想要的是转换成自己想要的时间格式,需要moment工具类

import moment from "moment";

 

定义一个转换日期格式的方法(转成日期格式:YYYY-MM-DD)

注意的点:xlsx将excel中的时间内容解析后,会小一天

如2020/11/3,xlsx会解析成  Mon Nov 02 2020 23:59:17 GMT+0800    小了43秒

当再用moment转换成日期时:

Mon Nov 02 2020 23:59:17 GMT+0800  会转成2020/11/2     所以需要在moment转换后+1天

具体方法如下:

convertExcelDateFormat: function (row, columnName) {//日期转换 var date = row[columnName] if (date === undefined || date === null || date === "") { return null; } //非时间格式问题 返回Invalid date let retFormat = moment(date).format('YYYY-MM-DD'); if (retFormat === "Invalid date"){ return retFormat; } return moment(date).add(1, 'days').format('YYYY-MM-DD') },

 

最终转换结果:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3