Групповое переименование файлов *csv по содержимому ячейки (help)
Нужна помощь обычному пользователю ПК, как переименовать файлы расширения *csv с одним листом по ячейке A1.
Нужна помощь обычному пользователю ПК, как переименовать файлы расширения *csv с одним листом по ячейке A1.
Имеется папка с большим количеством файлов формата CSV, все они одной структуры(столбцы одинаковы)
Файлы CSV являются текстовыми и имеют структуру через разделение символом ;
Сделаем обработку файлов и сохранение в базу данных
В общем виде, открываем файл на чтение, читаем каждую строку, получаем данные столбцов и сохраняем в таблицу:
$DIR = 'data/';
$files = scandir($DIR);
foreach($files as $k => $file)if($file!='.'&&$file!='..'){
$cfile = $DIR.$file;
$pi=pathinfo($cfile);
$open = fopen($cfile, "r");
$strnum=0;
while (($data = fgetcsv($open, 10000, ";")) !== FALSE){
$data = array_map( "convert", $data );
if($strnum>$proc['pos']){
DB_insert($DB,$data,$file);//записываем в таблицу
}
}
fclose($open);
}
function convert( $str ) {//преобразуем кодировку для базу данных
return iconv( "Windows-1251", "UTF-8", $str );
}
Код обходит указанную папку, открывает каждый файл и заносит данные в базу данных. Процесс долгий и его необходимо выполнять в консоли или реализовывать процесс сохранения этапа работы в отдельный файл и при новом вызове брать параметры.
function DB_insert($DB,$data,$file){
$values = array();
$kol=0; $i=0; foreach($polya as $k => $v){
if(isset($data[$i])&&$data[$i]!='') $values[] = '"'.$DB->rescape($data[$i]).'"';
else { $values[] = '""'; $kol++; }
$i++;
}
if(count($polya)!=$kol){
$sql = 'INSERT INTO tablevins VALUES(0,"'.$DB->rescape($file).'",'.implode(',',$values).');';
$rez = $DB->QUR($sql);
}
}
Реализация WEB интерфейса для поиска данных
Поиск происходит по двум полям VIN и номеру кузова. Опция «тип поиска» позволяет объединять искомые по условию «И» или «ИЛИ»
Функция для поиска в таблице данных, универсальная и получает опции поиска через переменную $data
function DB_search($DB,$data){
$out = array(); $usl = array();
foreach($data['where'] as $k => $v){ if($v!=''){
$usl[] = $k.' LIKE "%'.$DB->rescape($v).'%"';
}
}
if(count($usl)){
$tip = ' OR '; if($data['tipsearch']==1) $tip = ' AND ';
$sql = 'SELECT * FROM tablevins WHERE '.implode($tip,$usl);
$rez = $DB->QUR_SEL($sql);
if(!$rez['err']&&$rez['kol']){ $out = $rez['rez']; }
}
return $out;
}
Более подробно можно посмотреть на https://alneo.ru/2022/12/poisk-v-fajlah-csv/
Доброго дня всем.
Вопрос такой. Есть много файлов CSV с данными.
Можно ли как то объединить все эти файлы для более удобного поиска в них информации?
Может создать какую то БД в которой будет вся информация из файлов и по ней уже можно будет искать?
Возможно ли какими то средствами это сделать? MySQL?
В программировании не понимаю вообще, но попробовать хочется.
Конкурс мемов объявляется открытым!
Выкручивайте остроумие на максимум и придумайте надпись для стикера из шаблонов ниже. Лучшие идеи войдут в стикерпак, а их авторы получат полугодовую подписку на сервис «Пакет».
Кто сделал и отправил мемас на конкурс — молодец! Результаты конкурса мы объявим уже 3 мая, поделимся лучшими шутками по мнению жюри и ссылкой на стикерпак в телеграме. Полные правила конкурса.
А пока предлагаем посмотреть видео, из которых мы сделали шаблоны для мемов. В главной роли Валентин Выгодный и «Пакет» от Х5 — сервис для выгодных покупок в «Пятёрочке» и «Перекрёстке».
Реклама ООО «Корпоративный центр ИКС 5», ИНН: 7728632689
Необходимое предисловие в эти чёрные дни
С началом войны РФ с Украиной мои статьи потеряли смысл на фоне этого ада. Продуктивно работать почти невозможно. Кто-то потерял дом, кто-то детей. Миллионы беженцев. Два из трёх этажей своего дома я отдал под размещение двух семей беженцев с детьми. Если у вас есть возможности, помогайте нуждающимся. Сейчас много пишут про поддержку бизнеса в РФ. Самая лучшая поддержка бизнесу и народу — вывести войска из Украины. Людей убивать нельзя!
Деньги на ЕГРИП были собраны донатами до войны. С опозданием, но я должен выполнить обещанное.
Доступ к данным ЕГРИП в XML и JSON
Если вы не прочитали статью “ЕГРЮЛ, доходы и расходы, налоги, количество сотрудников в XML и JSON бесплатно”, то начните с неё, там описано как получить данные в XML или JSON по ИНН или ОГРН. Там же есть примеры кода и ссылки на описание форматов данных. Для индивидуальных предпринимателей точно также данные получаются по ИНН или ОГРНИП.
Все индивидуальные предприниматели, доступны по следующим ссылкам с ИНН физических лиц:
https://egrul.itsoft.ru/770300584079.json
https://egrul.itsoft.ru/770300584079.xml
https://egrul.itsoft.ru/770300584079
Индивидуальные предприниматели также доступны по ссылкам с ОГРНИП.
https://egrul.itsoft.ru/308774631700332.json
https://egrul.itsoft.ru/308774631700332.xml
https://egrul.itsoft.ru/308774631700332
Оригинальные архивы ЕГРЮЛ, ЕГРИП
Эти архивы ФНС РФ предоставляет за 300 000р. в год:
новый формат ЕГРЮЛ (архивы с 2021 года)
старый формат ЕГРЮЛ (архивы с 2018 года)
новый формат ЕГРИП (архивы с 2021 года)
Мы написали претензию ФНС с требованием выложить все архивы с 2002 года и получили отписку. Сейчас в данных обстоятельствах нет моральных сил с ними судиться и биться за развитие российской экономики. Пока взяли паузу. Может война закончится, а может экономика. И тогда вопрос отпадёт сам собой. В папках _FULL все данные на начало года. Далее изменения.
Обработанные данные в форматах csv
Архивы ЕГРЮЛ, ЕГРИП и обновления к ним в формате csv.
- org: ОГРН, ИНН, max_num;
- org2: организации;
- person: физические лица и индивидуальные предприниматели;
- org_chief: руководители организаций;
- founder: учредители;
- mng: управляющие организации;
- income_outcome: доходы и расходы;
- taxes: налоги;
- tax_systems: налоговые системы;
- ssch: среднесписочная численность;
- msp: микропредприятия, малые, средние;
- support: господдержка;
- okved_ref: оквэд;
- opf: организационно-правовая форма;
- org_status_ref: справочник статусов организаций;
- org_status: статусы организаций;
- predecessor: предшественники;
- country: страны.
min_num, max_num, cdate_num, update_at_num — это сокращённая форма даты в виде двухбайтового целого. Дата в номер и обратно преобразуется по следующим правилам:
$d = date(‘Y-m-d’);
$d_num = (intval($d[2] . $d[3])<<9) + (intval($d[5] . $d[6])<<5) + intval($d[8] . $d[9]);
$d2 = ‘20’ . sprintf(“%’.02d”, $d_num>>9) . ‘-’ . sprintf(“%’.02d”, ($d_num>>5)&15) . ‘-’ . sprintf(“%’.02d”, $d_num&31);
Эти поля нужны для реализации Медленно меняющихся измерений (от англ. Slowly Changing Dimensions, SCD) типа 2. min_num или cdate_num хранят дату начала действия этой строки, например, для руководителя — это дата когда человек стал руководителем организации. max_num, updated_at_num — дата последней выписки где данный факт был обнаружен. Если дата org_chief.max_num меньше org.max_num, то org_chief.max_num дата, когда человек пропал из руководителей в ЕГРЮЛ. Реально он мог перестать быть руководителем чуть раньше.
Актуальные данные надо соединять по ogrn и org.max_num. Записи в соединённых таблицах с max_num < org.max_num хранят историю по организации.
org2.crc32 — это уникальный ключ crc32(kpp, short_name, full_name, street, house, corpus, apartment). В org2 хранится история изменения юридического адреса и наименования организации.
По остальным таблицам полагаю должно быть всё понятно из названия полей и документации к данным (см. Приказ ФНС России от 18.01.2021 N ЕД-7–14/17@).
Уставной капитал
Уставной капитал отсутствует в некоторых ООО. Но его можно вычислить по сумме уставных капиталов учредителей.
Отчёты и анализ данных ЕГРЮЛ, ЕГРИП
- Топ управляющих организаций по количеству организаций, которыми они управляют.
- Топ руководителей организаций по количеству организаций, которыми они руководят.
- Топ предпринимателей по количеству организаций, которые они учредили.
- Топ организаций по количеству организаций, которые они учредили.
- Организации, где учредитель РФ.
- Организации, где есть учредитель иностранное лицо.
- Организации с оборотом от миллиарда рублей за 2020 год.
В отчёте “Организации с оборотом от миллиарда рублей за 2020 год” вы можете видеть, что налогов ряд крупных организации платят около нуля, сотрудников в некоторых тоже крайне мало в пересчёте на приход. Если сравнить с малым бизнесом, где налоговая нагрузка порядка 3–7%, то крупные компании явно недоплачивают и работают там какие-то многорукие и многоголовые, что на одного сотрудника бывает миллиарды прихода.
Невероятное
Леденев Владимир Владимирович руководитель в 2874 организациях с большим отрывом опережает всех остальных. Правда там за ним следуют 8 руководителей в 1000 организаций. Эх, нам бы базу с 2002 года, вот это бы данные были. Такие люди заслуживают статьи в Википедии.
Присылайте ссылки на ваши проекты
Ссылки на полезные и бесплатные проекты мы опубликуем на нашем сайте.
Если вы сделаете анализ выложенных данных
У нас запланирована следующая статья с рядом очень интересных отчётов. Количество отчётов, которые только можно придумать огромное. Поэтому мы рады будем всем любителям анализировать данные.
Донаты
На следующий год проекту нужно 300 000р на покупку данных у ФНС РФ. Нужен второй сервер. Не помешают деньги на дальнейшее развитие и добавление других данных. Кто-то обещал задонатить после публикации ЕГРИП и архивов. Пожалуйста, закиньте денег сколько можете. Это реально важно.
Подробности и дополнительная информация здесь.
Всем доброго времени суток. Выгружаю csv с сайта-конструктора , затем создаю новый документ в excel и импортирую данные из csv файла. Все прекрасно открывается и редактируется. А как сохранить изменения именно в исходном csv файле? "Сохранить как - csv" не подходит, так как мы создаем новый файл, а не обновляем старый-отображение уже поменялось, и конструктор сайтов начинает жаловаться.
Если обновить данные, excel обновляет все от исходного csv файла, то есть все изменения откатываются(значок сбоку на скрине).
Простыми словами - чтобы в выгруженной мешанине внести правки и такую же мешанину скормить конструктору.
Добрый день, Пикабутяне.
Прошу помочь с вопросом. На Тостере я его конечно задал, но отклика совсем нет.
Если позволите, я процитирую вопрос здесь:
"Возникла потребность обработать 5-8 больших файлов CSV в RStudio (инструмент не обсуждается). Начал пробовать и возник ряд вопросов:
1. Каким способом это делать?
2. Как писать ProgressBar загрузки?
3. Общие рекомендации?
Как-то беглый поиск в сети не навёл на нужный материал. Подскажите, пожалуйста.
"Прошу помощи и подсказки
P.S. Давайте, пожалуйста, только бы комментариев о различных используемых инструментах и неверном выборе.
Импортирую с сайта все товары в csv, редактирую в exel, когда сохраняю изменения строки объединяются, подскажите как сохранять, чтобы формат не изменялся.
Сегодня будем тягать контакты с новодела от компании Nokia.
Нам понадобится программа BEST. Для её запуска, потребуется ключ защиты(донгл), либо активация, например на Infinity Box.
Цепляем коробок/донгл к компьютеру. Запускаем программу, на вкладке BB5 | XGOLD, выбираем подвкладку User Data. Как видим, почти все кнопки не активны, пока так и должно быть.
Цепляем телефон к компьютеру обычным USB кабелем, программа сама его подхватит и загонит в нужный режим. Все кнопки становятся активным.
Ставим галку на *.csv, жмём Read PhBook, указываем путь, куда сохранить.
Получаем 2 файла:
csv - тут думаю объяснять не нужно.
S4pb - телефонная книга в формате беста, можно залить в другой телефон Nokia.
Источник(моя группа в вк): https://vk.com/igor_repair?w=wall-133928723_795