2016-11-21 2 views
3

존재하는 CSV 파일에 새 행을 추가하고 싶습니까? csv 파일이 있으면 열 머리글을 추가하지 않고 파일에 존재 행 뒤에 새 행을 추가하기를 원합니다.nodejs json2csv에 존재하는 csv 파일에 새 행을 추가하는 방법은 무엇입니까?

var fields = ['total', 'results[0].name.val']; 
var fieldNames = ['Total', 'Name']; 

var opts1 = { 
    data: data, 
    fields: fields, 
    fieldNames: fieldNames, 
    newLine: '\r\n' 

}; 

var opts2 = { 
    newLine: '\r\n', 
    data: data, 
    fields: fields, 
    fieldNames: fieldNames, 
    hasCSVColumnTitle: false, 

}; 

fs.stat('file.csv', function (err, stat) { 
    if (err == null) { 
    console.log('File exists'); 
    var csv = json2csv(opts2); 
    fs.appendFile('file.csv', csv, function (err) { 
     if (err) throw err; 
     console.log('The "data to append" was appended to file!'); 
    }); 
    } else if (err.code == 'ENOENT') { 
    // file does not exist 
    var csv = json2csv(opts1); 
    fs.writeFile('file.csv', csv, function (err) { 
     if (err) throw err; 
     console.log('file saved'); 
    }); 
    } else { 
    console.log('Some other error: ', err.code); 
    } 
}); 
+0

그래서 무엇이 문제입니까? –

+0

존재하는 CSV 파일에 새 행을 추가하는 방법은 무엇입니까? – user2848031

+1

이미 파일이 있는지 확인하는 코드가 있습니다. 이제 [새로운 행 추가] (http://stackoverflow.com/questions/3459476/how-to-append-to-a-file-in-node) CSV는 "쉼표로 구분 된 값"을 의미합니다. 그렇게 데이터를 형식화하는 것은 매우 쉽습니다. –

답변

8

다음 코드는 당신이 무엇을 요구 할 것입니다 :

  1. 를 헤더
  2. 내용을 기록하는 첫 번째 시간 -을 실행하면 내가 시도하고있는 다음

    코드입니다 그 후에 실행 - json 데이터를 csv 파일에 추가합니다.

    var fs = require('fs'); 
    var json2csv = require('json2csv'); 
    var newLine= "\r\n"; 
    
    var fields = ['Total', 'Name']; 
    
    var appendThis = [ 
        { 
         'Total': '100', 
         'Name': 'myName1' 
        }, 
        { 
         'Total': '200', 
         'Name': 'myName2' 
        } 
    ]; 
    
    var toCsv = { 
        data: appendThis, 
        fields: fields, 
        hasCSVColumnTitle: false 
    }; 
    
    fs.stat('file.csv', function (err, stat) { 
        if (err == null) { 
         console.log('File exists'); 
    
         //write the actual data and end with newline 
         var csv = json2csv(toCsv) + newLine; 
    
         fs.appendFile('file.csv', csv, function (err) { 
          if (err) throw err; 
          console.log('The "data to append" was appended to file!'); 
         }); 
        } 
        else { 
         //write the headers and newline 
         console.log('New file, just writing headers'); 
         fields= (fields + newLine); 
    
         fs.writeFile('file.csv', fields, function (err, stat) { 
          if (err) throw err; 
          console.log('file saved'); 
         }); 
        } 
    }); 
    
관련 문제