gpt4 book ai didi

node.js - 如何避免在nodejs excel文件读取中将大量数字转换为指数

转载 作者:行者123 更新时间:2023-12-02 16:12:19 26 4
gpt4 key购买 nike

我想读取将电话号码存储为数字的 Excel 文件,但是当我使用 SheetJS/js-xlsx (npm install xlsx) 读取该文件时,所有大电话号码都会转换为字符串,例如

9.19972E+11 

919971692474 --> 9.19972E+11

我的代码是

var workbook = XLSX.readFile(req.files.fileName.path);
var sheet_name_list = workbook.SheetNames;
var csvFile = XLSX.utils.sheet_to_csv(workbook.Sheets[sheet_name_list[0]]);
console.log(csvFile2);

控制台输出为

customer_phone,product_name
9.19972E+13,"Red Belly Shoes,"

有什么办法可以避免这种转换吗?

最佳答案

数字 919971692474 在 Excel 中通常显示为 9.19972E+11。要强制它显示完整数字,您必须将数字格式设置为 0(右键单击,设置单元格格式,选择自定义类型“0”)。当您这样做时,会显示完整的数字。如果您未在 Excel 中设置格式,则 xlsx 模块将使用“常规”格式,并且该数字格式会将电话号码显示为指数。

如果文件不正确,您可以通过删除 w 键并添加与所需数字格式相对应的 z 键来覆盖 CSV 格式。例如,要更改单元格 A2:

var sheet = workbook.Sheets[workbook.SheetNames[0]];
delete sheet.A2.w;
sheet.A2.z = '0';

如果您想对所有数字单元格执行此操作,只需循环即可:

Object.keys(sheet).forEach(function(s) {
if(sheet[s].w) {
delete sheet[s].w;
sheet[s].z = '0';
}
});

关于node.js - 如何避免在nodejs excel文件读取中将大量数字转换为指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27733114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com