如何使用SheetJS解析CSV时关闭类型推断保留所有值为字符串
SheetJS CSV解析关闭自动类型推断方案
核心配置
关闭SheetJS自动类型推断只需要在读取文件时添加raw: true参数即可,该参数会强制所有单元格保留原始字符串值,不会对ISO日期、数字、带前导零的字符串做任何类型转换。
如果存在特殊日期格式兼容问题,可额外补充dateNF: '@'配置,强制日期类内容输出为字符串格式。
完整代码示例
// Node.js 环境示例 const XLSX = require('xlsx'); // 读取CSV时传入核心配置 const workbook = XLSX.readFile('目标文件路径.csv', { raw: true, // 关闭所有自动类型推断,保留所有值为原始字符串 // dateNF: '@' 可选配置,特殊日期场景下补充使用 }); // 工作表转JSON const worksheet = workbook.Sheets[workbook.SheetNames[0]]; const result = XLSX.utils.sheet_to_json(worksheet, { defval: '' // 可选配置,空单元格默认返回空字符串,避免返回undefined });
浏览器端读取用户上传的CSV文件时,只需要将readFile替换为read方法,传入FileReader读取到的文件二进制内容,同样添加raw: true配置即可生效。
注意事项
- 不要和
cellDates: true参数同时使用,该参数会强制将日期类单元格转换为Date对象,优先级高于raw配置 - 转换为JSON时不需要添加额外的类型转换相关配置,默认即可输出全字符串格式的结果
内容的提问来源于stack exchange,提问作者user3788133
相关产品推荐
相关产品推荐

