使用PHP Yii2将Excel文件导入到MySQL

我只想使用PHPExcel将数据从excel(xls,xlsx)导入到Yii2中的mySql db中。 这是我在控制器中的代码:

$modelFile ->file = $firstName. '_' .$middleName. '_' .date('Ym-d'). '_' .$file ->getBaseName(). "." .$file ->getExtension(); $objPHPExcel = new \PHPExcel(); $inputFiles = fopen("../file/".$modelFile ->file, "r"); try { $inputFileType = \PHPExcel_IOFactory::identify($inputFiles); $objReader = \PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader ->load($inputFiles); } catch (Exception $ex) { die('Error'); } $sheet = $objPHPExcel ->getSheet(0); $highestRow = $sheet ->getHighestRow(); $highestColumn = $sheet ->getHighestColumn(); //$row is start 2 because first row assigned for heading. for ($row = 2; $row <= $highestRow; ++$row) { $rowData = $sheet ->rangeToArray('A'.$row. ':' .$highestColumn.$row, NULL, TRUE, FALSE); //save to branch table. $modelHeader = new FakturOut(); $modelDetail = new FakturOutDetail(); $modelHeader ->name = $rowData[0][0]; $modelHeader ->age = $rowData[0][1]; $modelHeader ->address = $rowData[0][2]; $modelHeader ->academic_id = $rowData[0][3]; $modelHeader ->mother_name = $rowData[0][4]; $modelHeader ->father_Name = $rowData[0][5]; $modelHeader ->gender = $rowData[0][6]; $modelHeader ->height = $rowData[0][7]; $modelHeader ->weight= $rowData[0][8]; $modelHeader ->save(); } 

然后,浏览器返回错误通知,如pathinfo()期望参数1是string,资源给定 。 请帮忙解决这个错误。

在你使用的代码中

  $inputFileType =\PHPExcel_IOFactory::identify($inputFiles); 

用于标识有效的excel文件,它期望参数为filename

我可以在你的代码中看到,你已经传递了$inputFiles作为参数来identify方法,它不是文件名,而是资源处理程序。 并identify方法期望它是string(文件名)。

这是你得到错误的原因。

注意:fopen()在成功时返回一个文件指针资源,或者在错误时返回FALSE。

  $inputFiles = fopen("../file/" . $modelFile->file, "r");