Исключить указанные c строк в CSV - PullRequest
1 голос
/ 11 февраля 2020

Это мой первый пост здесь, и мне нужна помощь с файлом CSV.

Я энтузиаст VBA и привык программировать на cobol и тому подобное ... В любом случае, вот моя проблема:

У меня есть файл CSV, который импортирует информацию о продукте (сумки, кошельки и другие вещи) с завода в нашу систему, но у нас возникла проблема с контейнером для кошелька ... Поэтому мы исключили все кошельки из системы и теперь нам нужно импортировать только те, которые создают заказы на покупку только с кошельками ... вот в чем проблема:

1;492;CNPJ;COMPANY;50;1207960;09/10/2019;02/12/2019 15:44:00;719;REPRESENTACOES COMERCIAIS;591;FL BRASIL HOLDING LOGISTICA E TRANSPORTE LTDA;1;Rodov.-CIF;;;;;28/56/84 DD C/ 6.5% AC;1775;NAME HERE;ROAD HERE;CENTRO;19200000;CITY;ST;CNPJ;;541009976115;CELLPHONE;;;;;;31;EMAIL
2;492;CNPJ;COMPANY;50;1207960;090.01.09292;0050;PRETO;BOLSA ENVELOPE FEM LETREIRO;U;1;28/01/2020;04/02/2020
2;492;CNPJ;COMPANY;50;1207960;090.01.09292;0050;PRETO;BOLSA ENVELOPE FEM LETREIRO;U;1;28/01/2020;04/02/2020
2;492;CNPJ;COMPANY;50;1207960;090.01.09292;0050;PRETO;BOLSA ENVELOPE FEM LETREIRO;U;1;28/01/2020;04/02/2020
1;492;CNPJ;COMPANY;50;1207960;09/10/2019;02/12/2019 15:44:00;719;REPRESENTACOES COMERCIAIS;591;FL BRASIL HOLDING LOGISTICA E TRANSPORTE LTDA;1;Rodov.-CIF;;;;;28/56/84 DD C/ 6.5% AC;1775;NAME HERE;ROAD HERE;CENTRO;19200000;CITY;ST;CNPJ;;541009976115;CELLPHONE;;;;;;31;EMAIL
2;492;CNPJ;COMPANY;50;1207960;090.01.09292;0050;PRETO;BOLSA ENVELOPE FEM LETREIRO;U;1;28/01/2020;04/02/2020
2;492;CNPJ;COMPANY;50;1207960;090.01.09292;0050;PRETO;BOLSA ENVELOPE FEM LETREIRO;U;1;28/01/2020;04/02/2020

Итак, это мой CSV-файл в двух словах (я немного изменил его, чтобы скрыть конфиденциальную информацию), он использует 1 для информации о клиенте и 2 для элемента, который клиент хочет. Все, что мне нужно сделать, это удалить все строки, в которых нет «CARTEIRA» (кошелек), и оставить заголовок (тот, который начинается с 1), так что этот CSV будет включать только заказы на покупку кошельков для этих клиентов.

Я не могу использовать Excel, потому что он портит 0 и другие вещи внутри CSV (например, слово «Кафе» ... Это изменит «е» на «é» из-за португальской грамматики), но я понятия не имею, какую программу использовать для удаления этих строк ... и файл CSV довольно большой.

Я хотя и использовал VBA, но понятия не имею, с чего начать ... В Notepad ++ не было возможность "исключить всю строку" ... не то чтобы я все равно смог найти.

Итак, во-первых, извините за плохой engli sh, а во-вторых, если возможно, я хочу поделиться этим решением со своей командой которые имеют 0 опыта в программировании: D.

Спасибо,

Kr4ft

1 Ответ

0 голосов
/ 11 февраля 2020

Предполагая, что вы используете Windows (или используете PowerShell Core), вы можете использовать что-то подобное для запуска:

Import-Csv .\my-data.csv -Header ClientId, No, Code, Type -Delimiter ";" 
| Where-Object {$_.ClientId -EQ 1 -or ($_.ClientId -EQ 2 -and $_.Code -EQ "CNPJ")}
| Export-Csv -Delimiter ";" out.csv

Обратите внимание, что если ваш CSV-файл содержит строку заголовка, вы можете удалить -Header параметр. В противном случае вам придется указывать каждый столбец в параметре -Header

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...