首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SheetJS格式化数据

用SheetJS格式化数据
EN

Stack Overflow用户
提问于 2018-11-05 23:02:41
回答 7查看 37.6K关注 0票数 19

谢谢你提前看了一下这个问题!我试图使用SheetJS读取一个.xlsx文件,但在用Excel格式格式化为自定义"yyyy/mm/dd :mm:ss“的日期列时遇到了一些问题。所有这些日期都显示为较大的浮动值。

下面是上传时读取.xlsx文件的代码:

代码语言:javascript
复制
uploadWorkbook(e) {
    let reader = new FileReader();
    reader.readAsBinaryString(e.target.files[0]);
    reader.onload = (e) => {
        let data = e.target.result;
        let workbook = XLSX.read(data, {type: 'binary'});
        let first_sheet_name = workbook.SheetNames[0];
        let worksheet = workbook.Sheets[first_sheet_name];
        let jsonObj = XLSX.utils.sheet_to_json(worksheet);
        console.log(jsonObj);
    }
}

例如,第一个对象的日期值为43395.29775462963。如果可能的话,我甚至可以将所有单元格格式化为字符串。任何帮助都将不胜感激!

谢谢大家!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2018-11-05 23:23:48

因此,我发现在将工作表转换为JSON时传递raw选项会将所有单元格作为字符串输出。所以应该是:

代码语言:javascript
复制
let jsonObj = XLSX.utils.sheet_to_json(worksheet, {raw: false});
票数 30
EN

Stack Overflow用户

发布于 2020-03-12 14:15:14

这是我的方式:

代码语言:javascript
复制
 const target = e.target.result;
 const wb = XLSX.read(target,{type:'binary',cellText:false,cellDates:true});
 const wsname = wb.SheetNames[0];
 const ws = wb.Sheets[wsname];
 const data = XLSX.utils.sheet_to_json(ws, {header:1,raw:false,dateNF:'yyyy-mm-dd'});
票数 30
EN

Stack Overflow用户

发布于 2019-12-09 21:05:03

我不太确定这些标志是否存在,但目前(2019年12月),您可以添加标志"cellDates“,以便将其作为日期而不是数字。

代码语言:javascript
复制
const workbook = XLSX.read( data, {
    ...
    cellDates: true,
});

这一点更好,因为数据类型现在是日期格式的日期,而不是日期格式的字符串。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53163552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档