我有这样的xlsx文件:
我正在将我的xlsx文件导出到csv文件。所以我得到了这个结果:
DemandID;ExceptionalFlag;TAG
47 417;"X78 Sos
kopk";Enabled
41 224;"NAnCond
Blap
MOP
nbi
baze";Enabled
65 489;;Direct
我想导入我的csv文件,就像这样的输出:
DemandID;ExceptionalFlag;TAG
47 417;"X78 Sos kopk";Enabled
41 224;"NAnCond Blap MOP nbi baze";Enabled
65 489;;Direct
我现在不在要添加此条件的位置,您会发现以下内容我的代码是:
var content = reader.result;
var lines = content.split((/\r\n|\n/));
var headers=lines[0].split(";");
for(var i=1;i<lines.length;i++){
var currentline = lines[i].match(/(\s*"[^"]+"\s*|\s*[^;]+|;)(?=;|$)/g);
}
请帮助。
答案 0 :(得分:0)
您的问题没有得到很好的定义,我们真的不知道行应该在哪里结束(如果每个值都以';'结尾会更好。)如果我们假设最后一列只能包含一个单词,这将给出您想要的输出:
const input = `DemandID;ExceptionalFlag;TAG
47 417;"X78 Sos
kopk";Enabled
41 224;"NAnCond
Blap
MOP
nbi
baze";Enabled
65 489;;Direct`;
let result = input.replace(/\n/g, " ").split(''); // collapse the string, split into array
let counter = 0;
let flag = false;
for (let i=0; i < result.length; i++) { // look at every character in the array
if (result[i] === ';') counter++ // count the number of ';'
if (counter === 2) { // when the counter reaches 2
flag = true;
counter = 0;
}
if (flag && result[i] === ' ') { // replace the next space with \n
result[i] = '\n';
flag = false; // and reset...
}
}
console.log(result.join(''));