1

我正在尝试解析格式为“7242.1661445”的数字的 xlsx 文件。在 Microsoft excel 中检查时,我发现该单元格是自定义数字格式“#,###.0000000”。

我正在使用 xlsx 库https://www.npmjs.com/package/xlsx解析这个文件。我的运行时是 Node.js。

但是,该库向我抛出了一个错误,格式不受支持 |#,###.0000000|

我尝试了其他几个库,但仍然抛出错误。解析时可以将任何参数作为选项传递吗?我究竟做错了什么 ?这是一个完整的依赖问题吗?我在这里有什么选择?javascript 平台对 excel 文件解析的支持是否不够好?

我正在运行以下代码:

var workbook = XLSX.readFile('filePath',{raw:true,WTF:true});
var worksheet = workbook.Sheets[workbook.SheetNames[0]];
console.log('Cell A1 value', worksheet['A1']);
4

1 回答 1

0

如果省略 WTF 参数,则该单元格将解析该值而不会引发错误。

现在您需要验证这些值是否正确转换为数字。

例如

var workbook = XLSX.readFile('customformat.xlsx', {raw: true })
var worksheet = workbook.Sheets[workbook.SheetNames[0]];
console.log('Cell A1 value', worksheet['A1']);

从 XLSX 文档:

WTF主要用于开发。默认情况下,解析器将抑制单个工作表上的读取错误,允许您从正确解析的工作表中读取。设置 WTF:1 会强制抛出这些错误。

于 2020-04-21T06:27:35.810 回答