Я пытаюсь импортировать данные из Excel в базу данных с помощью библиотеки phpspreadsheet
Используемая мной версия PHP: 8.1.10
файл композитора:
Код: Выделить всё
{
"require": {
"phpoffice/phpspreadsheet": "^2.0"
}
}
Код: Выделить всё
$upload_file=$_FILES['userfile'] ['name'];
$extension=pathinfo($upload_file, PATHINFO_EXTENSION);
if ($extension == 'csv') {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
} else if ($extension == 'xls') {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
} else {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
}
$spreadsheet=$reader->load($_FILES['upload_file']['tmp_name']);
$sheetdata=$spreadsheet->getActiveSheet()->toArray();
echo '
';
print_r($sheetdata);
Неустранимая ошибка: Uncaught TypeError: PhpOffice\PhpSpreadsheet\Reader\BaseReader::load(): Аргумент №1 ($filename) должен иметь строковый тип с нулевым значением, вызываемый в C: \laragon\www\crosslink\admin\controller\client\clientlist.php в строке 2581 и определен в C:\laragon\www\crosslink\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Reader\BaseReader.php:167 трассировка стека : #0 C:\laragon\www\crosslink\admin\controller\client\clientlist.php(2581): PhpOffice\PhpSpreadsheet\Reader\BaseReader->load(NULL) #1 C:\laragon\www\crosslink\vqmod \vqcache\vq2-system_engine_action.php(114): Controllerclientclientlist->bulkUpload(Array) #2 C:\laragon\www\crosslink\system\engine\front.php(34): Action->execute(Object(Registry) ) #3 C:\laragon\www\crosslink\system\engine\front.php(29): Front->execute(Object(Action)) #4 C:\laragon\www\crosslink\admin\index.php( 191): Front->dispatch(Object(Action), Object(Action)) #5 {main}, добавленный в C:\laragon\www\crosslink\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Reader\BaseReader.php на строка 167
Подробнее здесь:
https://stackoverflow.com/questions/782 ... preadsheet