我正在生成一些 csv 文件,生成效果很好,但是当我在 Excel 中打开文件时,它显示所有内容都搞砸了,但是同一个文件在 mac(数字)中打开得很好
下面是我用来生成文件的代码的相关部分。csv.encoding 是utf16le和 csv.delimiter 是\t
await pipelineAsync(
fs.createReadStream(sheet.path),
csv.parse({delimiter: config.get('csv.delimiter')}),
csv.transform((input) => {
if(rowCountGenerated == false) {
colCount = input.length;
rowCountGenerated = true;
}
rowCount++;
return Object.assign({}, input);
}),
csv.stringify({eol: true, record_delimiter: os.EOL, header: false, delimiter: config.get('csv.delimiter')}),
fs.createWriteStream(fpath, {encoding: config.get('csv.encoding')})
);
下面是数据在excel中的样子
以下是数据在数字中的样子
有任何想法吗?
更新 1:看起来 excel 忽略了 col 分隔符,通过手动编辑文件并添加 sep='\t' 作为第一行,我能够解决问题,也可以在 excel 中正确查看文件。
我现在唯一的问题是如何更改上面的代码以添加sep=\t为我的文件的第一行。
谢谢。

