【问题标题】:Import Excel file to MySQL using PHP Yii2使用 PHP Yii2 将 Excel 文件导入 MySQL
【发布时间】:2017-03-31 13:55:19
【问题描述】:

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

$modelFile ->file = $firstName. '_' .$middleName. '_' .date('Y-m-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 是字符串,给定资源。请帮忙解决这个错误。

【问题讨论】:

    标签: php mysql excel import yii2-advanced-app


    【解决方案1】:

    在您使用过的代码中

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

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

    我可以在您的代码中看到,您已将$inputFiles 作为参数传递给identify 方法,该方法不是文件名而是资源处理程序。 identify 方法期望它是字符串(文件名)。

    这就是你得到错误的原因。

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

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

    【讨论】:

    • 嗯,错误已解决。我只是听从你的指示。我只是添加这样的新行代码$fileName = "../file/" . $newTempModel-&gt;file;。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多