0

我正在生成一些 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为我的文件的第一行。

谢谢。

4

0 回答 0