使用php

时间:2018-03-15 07:23:38

标签: php excel import

我想用php导入excel。我有

 public function importexcel()
    {

        $this->img = 'poc.xlsx';
$exceldata = array();
 require 'Classes/PHPExcel/IOFactory.php';
try
{
    $inputfiletype = PHPExcel_IOFactory::identify( $this->img);
    $objReader = PHPExcel_IOFactory::createReader($inputfiletype);
    $objPHPExcel = $objReader->load( $this->img);
}

catch(Exception $e)
{
    die('Error loading file "'.pathinfo( $this->img,PATHINFO_BASENAME).'": '.$e->getMessage());
}

POC.xlsx

enter image description here

但是当我加载页面时出现了类似

的错误
  

加载文件“poc.xlsx”时出错:无法打开poc.xlsx进行阅读!   文件不存在。

请帮帮我。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您应始终使用文件的绝对路径。如果文件与控制器位于同一目录中,则具有路径的行应如下所示:

$this->img = __DIR__ . '/poc.xlsx';

__DIR__是一个魔术常量,其值始终等于当前文件目录的绝对路径。

请注意,您正在使用require语句,如下所示:

require 'Classes/PHPExcel/IOFactory.php';

由于您显然没有通知不存在文件的致命错误,因此它表示当前工作目录不是controllers,而是在其上方。所以,你也可以写

$this->img = '../poc.xlsx';` 

这可能也会奏效。但同样,当您使用绝对路径时,它将更容易避免丢失文件时的所有错误。