Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Запись в csv файл (https://javascript.ru/forum/dom-window/68354-zapis-v-csv-fajjl.html)

Gh. 11.04.2017 17:52

Запись в csv файл
 
Добрый день, сразу хочу сказать, что я далекий от программирования человек, но кровь из носа понадобился простой скрипт, который я и пытаюсь реализовать своими силами.
Мне нужно организовать запись данных в csv файл. Делаю это на node js и использую модуль fast-csv.
Как создать и записать данные в файл я разобрался, делаю это таким образом:

var ws= fs.createWriteStream('PlayerStats.csv');
csv.write ([
      ["Name","Team", "Position","Apps"],
      [name, team,position,apps]
], {headers:true, delimiter: ';'})
.pipe(ws);

А вот добавить новую строку с данными формата [name, team,position,apps] в уже существующий файл с такой информацией никак не выходит. Подскажите, как это реализовать.

SV0L0CH 11.04.2017 21:05

Судя по всему, при открытии потока надо указать режим добавления в конец.
var ws = fs.createWriteStream('PlayerStats.csv', {flags:'a'});
Хотя точно опции не знаю.

Gh. 11.04.2017 21:37

Таким образом оно записало в конец последней ячейки.
Если изначально таблица выглядела вот так:

Name Team Position
COSTA Che FW

То при попытке дописать строку (Milner Liverpool DF) с вашим кодом стала вот так:

Name Team Position
COSTA Che FWMilner Liverpool DF

SV0L0CH 12.04.2017 00:40

Значит надо дописывать '\n' в конце каждой такой операции вручную. Так же можно переопределить pipe. Хотя лучше порыться в доках, наверняка есть опция указывающая что надо в конце дописывать '\n'. Если нет, то можно попросить разработчиков добавить (если проект не заброшен).


Часовой пояс GMT +3, время: 16:09.