读取含datetime列的CSV文件时出现异常值问题求助
解决xlsx库读取CSV日期列显示数值的问题
问题原因
xlsx库读取CSV文件时,默认会自动推断单元格内容类型,把日期格式的字符串(比如dd.mm.yy这类格式)识别为Excel日期序列号或直接解析成数值,而sheet_to_json方法默认输出这些解析后的数值,导致原本正常的日期字符串变成异常数值。
解决方案
有两种可行的解决方式,根据需求选择:
方式1:直接读取原始日期字符串
在调用sheet_to_json时添加raw: true参数,禁用自动类型解析,保留CSV中的原始文本内容:
let tempData = xlsx.utils.sheet_to_json(file.Sheets[sheetNames[i]], { raw: true });
这种方式最简单,能直接获取记事本中看到的正常日期字符串。
方式2:将解析后的日期转换为指定格式字符串
如果需要将日期转换为标准日期对象或自定义格式的字符串,可以启用cellDates并指定日期格式:
let tempData = xlsx.utils.sheet_to_json(file.Sheets[sheetNames[i]], { cellDates: true, dateNF: "DD.MM.YY" // 匹配你的日期格式,比如"YYYY-MM-DD"对应年-月-日 });
dateNF参数的值需要和CSV中的日期格式对应,确保转换后的日期显示正确。
内容的提问来源于stack exchange,提问作者micronyks
相关产品推荐
相关产品推荐

