Node.js 写入 CSV 文件

Mar*_*nko 2 javascript csv node.js

我在名为“dataArray”的变量内有一个 JavaScript 文本行数组:

[
  'freq[Hz];re:Trc1_S11;im:Trc1_S11;re:Trc2_S21;im:Trc2_S21;',
  '2.400000000000000E+009;1.548880785703659E-001;1.067966520786285E-001;1.141964457929134E-003;5.855074618011713E-003;',
  '2.400166666666667E+009;1.546109169721603E-001;1.043454632163048E-001;1.287244027480483E-003;5.807569250464439E-003;',
  '2.400333333333334E+009;1.546102017164230E-001;1.018797382712364E-001;1.497663557529450E-003;5.986513104289770E-003;',
  '2.400500000000000E+009;1.545133888721466E-001;9.928287565708160E-002;1.647840370424092E-003;5.912321619689465E-003;',
  '2.400666666666667E+009;1.544111520051956E-001;9.671460092067719E-002;1.589289400726557E-003;5.917594302445650E-003;',
  ...
]
Run Code Online (Sandbox Code Playgroud)

第一行包含标题,其他行包含数据。

我需要将其写入 .csv 文件并存储该文件。我该如何做到这一点(我正在使用 Node.js)?

Mar*_*arc 6

首先,我将数组转换为有效的 csv 数据,为此我将其全部替换;,

然后我用换行符 ( csv.join("\r\n")) 将所有条目连接在一起并将其写入文件。

const fs = require("fs");

const data = [
    'freq[Hz];re:Trc1_S11;im:Trc1_S11;re:Trc2_S21;im:Trc2_S21;',
    '2.400000000000000E+009;1.548880785703659E-001;1.067966520786285E-001;1.141964457929134E-003;5.855074618011713E-003;',
    '2.400166666666667E+009;1.546109169721603E-001;1.043454632163048E-001;1.287244027480483E-003;5.807569250464439E-003;',
    '2.400333333333334E+009;1.546102017164230E-001;1.018797382712364E-001;1.497663557529450E-003;5.986513104289770E-003;',
    '2.400500000000000E+009;1.545133888721466E-001;9.928287565708160E-002;1.647840370424092E-003;5.912321619689465E-003;',
    '2.400666666666667E+009;1.544111520051956E-001;9.671460092067719E-002;1.589289400726557E-003;5.917594302445650E-003;'
];


const csv = data.map((e) => {
    return e.replace(/;/g, ",");
});



fs.writeFile("./data.csv", csv.join("\r\n"), (err) => {
    console.log(err || "done");
});
Run Code Online (Sandbox Code Playgroud)