Шикарное видео. Обязательно попробую. А будут видео про парсинг сайтов? Например что-то с сайта взять, определённую строчку или какие-то данные которые обновляются. Иногда открываешь сайт, а там просто одна сплошная строка, как такое парсить то? (P.S. можно сделать видео про PDF, например с сайта посетитель мог бы скачать список услуг. С админки данные заносятся на страницу сайта, а уже по кнопке человек эту таблицу мог бы сказать, возможно с картинками или подписью в файле PDF. То есть в файл PDF в конце вставить свою визитку или какую-то информацию). Ещё раз спасибо за видео. Супер!!!
А как экспортировать результаты фильтра? У меня в блейде они есть, но когда я пытаюсь запихать их по классике в {{route('agentsExport', ['users' => $users])}} - на бэке $users пустой
У тебя в классе импорта должен быть метод collection как я сделал на 25:18 Внутри этого метода, у тебя есть цикл что-то вроде foreach ($rows as $key => $row) И внутри этого цикла ты проверяешь строчку, типа так: if($key == 0) continue; И получается, если у тебя в цикле первая строка, то она пропуститься
@@devpovyshevМы немного друг друга не поняли) Я имел ввиду дату не в плане таймпштампов, а работу с датами в экселевском документе. Типо одна колонка в экселе с пользовательями, к примеру, а вторая - с датами. Я думаю, что я не первый кто задаётся этим вопросом, т.к. у экселя очень своеобразное понятие времени, а никакой инфы ни на ютубе, нигде нет.
Большое спасибо!! Подскажите, у меня есть огромные файлы в excel, которые нужно импортировать в mysql. Как сделать это в первый раз я поняла из вашего урока. Данные, приходящие ко мне в excel, обновляются до трех раз в день. как мне сделать такой импорт, чтобы обновилось несколько колонок в бд. Номер и название товаров остаются прежними, меняется только количество на складе и цена. И вообще можно ли так сделать?
@@devpovyshev ой, и ещё только сейчас поняла, если товар закончился на складе, то эту строку из бд в MySQL надо удалить. То есть в этом случае, такого товара вообще не будет в excel файле. Как сложно то🙏
Ну для начала. Импорт с созданием и импорт с обновлением травара это 2 разных метода, если вдруг не так. С удалением все просто на самом деле. Но я на пальцах сейчас не объясню. Самый простой способ, это сделать валидацию. Только смотри валидацию не у Laravel, а у этой либы maatweb. Посмотри валидацию коллекции там. И валидируй данные по exists ( посмотри видео у меня про валидацию если не в курсе). Ну а если тебе надо обновлять данные, то скорее всего придется затронуть каждую строчку. Такая уж участь синхронизации 1с))
@@karabas1991 Тогда тут все просто. Я показывал как сохраняется excl через метод store типа Exce::store(new Export,). А в конце ты делаешь return response()->json($name_excel_export, 200); А в Axios ты принимаешь уже имя твоего excel файла, и в тег вставляешь его в url, где хранится этот файл, типа example.ru/store/name_excel_export.xlsx.
Супер, спасибо, то, что искал )
спасибо большое, хорошо преподнесли материал. Желаю вам успехов в этой стезе и с наступающим!
Спасибо огромное. Очень хорошее видео. Ещё интересно импорт больших баз в очередях с валидацией.
Спасибо. Запишу как-нибудь
Шикарное видео. Обязательно попробую. А будут видео про парсинг сайтов? Например что-то с сайта взять, определённую строчку или какие-то данные которые обновляются. Иногда открываешь сайт, а там просто одна сплошная строка, как такое парсить то? (P.S. можно сделать видео про PDF, например с сайта посетитель мог бы скачать список услуг. С админки данные заносятся на страницу сайта, а уже по кнопке человек эту таблицу мог бы сказать, возможно с картинками или подписью в файле PDF. То есть в файл PDF в конце вставить свою визитку или какую-то информацию). Ещё раз спасибо за видео. Супер!!!
А как экспортировать результаты фильтра? У меня в блейде они есть, но когда я пытаюсь запихать их по классике в {{route('agentsExport', ['users' => $users])}} - на бэке $users пустой
Извини, не отписал. Тут с ходу не скажешь. Если скинешь ссылку на проект (можно на почту), я могу глянуть
У меня в первом случае импорта выводится ошибка когда добавляю в бд undifined offset:1 name =>$row[1] скажите пожалуйста что я смогу сделать?
Работает только $row[0] а при остальных выводит ошибку
Перед циклом, открой dd($rows), посмотри что тебя в $rows, может там и нет $row[1]
Подскажите, а как можно выполнить импрот данных из еxcel файла в котором есть название столбцов, чтобы их не затрагивало?
Привет. Когда добавляешь запись в таблицу, проверяй в цикле, если первая запись, то пропускай
@@devpovyshev а можете по подробнее подсказать как выполнить проверку?
У тебя в классе импорта должен быть метод collection как я сделал на 25:18
Внутри этого метода, у тебя есть цикл что-то вроде foreach ($rows as $key => $row)
И внутри этого цикла ты проверяешь строчку, типа так: if($key == 0) continue;
И получается, если у тебя в цикле первая строка, то она пропуститься
Спасибо за урок. Все получилось. Вот только вместо даты (31.08.2021) парсится типа 33545. Как правильно спарсить это поля не теряя данных? Спасибо
Подскажи, как быть с датами, при парсинге? Т.к. в БД они заносятся в экселевском формате типо "24242412.2421" ,
Точно не могу сказать, надо смотреть. Можно попробовать так: date('Y-m-d H:i:s', strtotime("24242412.2421"))
@@devpovyshev круто что отвечаешь, даже на давно вышедших роликах. То что ты сказал писать в контроллер?
Это там где ты получаешь эту дату. А через data(...) Ты просто переведёшь ее из одного формата в другой который тебе надо
@@devpovyshev спасибо!
@@devpovyshevМы немного друг друга не поняли) Я имел ввиду дату не в плане таймпштампов, а работу с датами в экселевском документе. Типо одна колонка в экселе с пользовательями, к примеру, а вторая - с датами. Я думаю, что я не первый кто задаётся этим вопросом, т.к. у экселя очень своеобразное понятие времени, а никакой инфы ни на ютубе, нигде нет.
Большое спасибо!! Подскажите, у меня есть огромные файлы в excel, которые нужно импортировать в mysql. Как сделать это в первый раз я поняла из вашего урока. Данные, приходящие ко мне в excel, обновляются до трех раз в день. как мне сделать такой импорт, чтобы обновилось несколько колонок в бд. Номер и название товаров остаются прежними, меняется только количество на складе и цена. И вообще можно ли так сделать?
Тебе надо импортировать огромный excel в таблице и сверять, если данные в колонках другие у товара, то обновлять. Я правильно понял?
@@devpovyshev да! Поменяться может цена и количество на складе, а номер товара и название остаются прежними
@@devpovyshev ой, и ещё только сейчас поняла, если товар закончился на складе, то эту строку из бд в MySQL надо удалить. То есть в этом случае, такого товара вообще не будет в excel файле.
Как сложно то🙏
Ну для начала. Импорт с созданием и импорт с обновлением травара это 2 разных метода, если вдруг не так.
С удалением все просто на самом деле. Но я на пальцах сейчас не объясню. Самый простой способ, это сделать валидацию. Только смотри валидацию не у Laravel, а у этой либы maatweb. Посмотри валидацию коллекции там. И валидируй данные по exists ( посмотри видео у меня про валидацию если не в курсе).
Ну а если тебе надо обновлять данные, то скорее всего придется затронуть каждую строчку. Такая уж участь синхронизации 1с))
@@devpovyshev спасибо:) теперь знаю хоть, что так можно этим пакетом делать. Я просто только подошла к этому вопросу. Почитаю доки. И урок посмотрю
как вызвать экспорт методом в связке laravel + vue ?
vue и laravel общаются по api?
@@devpovyshev да, без енерции, spa , все запросы на серв через аксиос на апи летят
@@karabas1991 Тогда тут все просто. Я показывал как сохраняется excl через метод store типа Exce::store(new Export,). А в конце ты делаешь return response()->json($name_excel_export, 200); А в Axios ты принимаешь уже имя твоего excel файла, и в тег вставляешь его в url, где хранится этот файл, типа example.ru/store/name_excel_export.xlsx.
@@karabas1991 Лучше конечно сразу url на файл делать сразу в responce. А ссылка на url доставай из env. Типа env('APP_URL').'/'.$name_excel_export
@@devpovyshev спасибо, буду пробовать