警告:包括(PHPExcel.php):无法打开流:没有这样的文件或目录



我试图实现使用 PHPExcel 将 XLS 文件中的单个工作表转换为 CSV - 内存耗尽,但卡在 PHP Excel 加载过程中。

我下载了包(http://phpexcel.codeplex.com/),并按照安装说明将文件夹"类"复制到三个目录:

1) C:\xampp\htdocs\mycode - 只是我当前的工作目录

2) C:\xampp\php\pear - bcs 这是我在echo get_include_path();时得到的

3) C:\xampp\php\pear\PEAR - 你知道,以防万一...

仍然当我运行时:

include 'PHPExcel.php';
include 'PHPExcel/IOFactory.php';

我收到以下错误消息:

警告:include(PHPExcel.php):无法打开流:在第5行的C:\xampp\htdocs\mycode\paths.php中没有这样的文件或目录

警告:include():打开"PHPExcel.php"以包含失败(include_path='。C:\xampp\php\PEAR') 在 C:\xampp\htdocs\mycode\paths.php 第 5 行

警告:include(PHPExcel/IOFactory.php):无法打开流:在第6行的C:\xampp\htdocs\mycode\paths.php中没有这样的文件或目录

警告:include():打开"PHPExcel/IOFactory.php"进行包含(include_path='失败。C:\xampp\php\PEAR') 在 C:\xampp\htdocs\mycode\paths.php 第 6 行

提前...

。将文件夹"类"复制到三个目录

似乎提示就在那里。不应该是

require_once 'Classes/PHPExcel.php';

或者,将Classes文件夹添加到包含路径...

set_include_path(implode(PATH_SEPARATOR, [
    realpath(__DIR__ . '/Classes'), // assuming Classes is in the same directory as this script
    get_include_path()
]));
require_once 'PHPExcel.php';

就我而言,我不得不更换我的

include "../classes/Projects.php";

通过这个:

require_once "./classes/Projects.php";
通常,

当您包含文件时,它将相对于您从中调用include的文件。 确保您在正确的目录中查找。 我这样说是因为您包含文件的方式似乎好像 PHPExcel 文件应该在完全相同的目录中,但看起来您将其放入名为 classes 的文件夹中。

例如,如果您的目录结构如下所示:

C:
   - xampp
       - htdocs
           - mycode
               - classes  (where you extracted your files to...)
                   - (more files and subdirectories in here)
               - index.php (where you are including file into...)

然后,您将包括index.php所在的位置。 因此,如果 PHPExcel 位于 classes 文件夹中,那么您的 include 语句应如下所示:

include classes/PHPExcel.phpinclude classes/PHPExcel/IOFactory.php

这个模块最初对我有用。 但后来我添加了 Yii2 并花了很长时间寻找问题的解决方案。 对于那些找到这个主题的人,就像我所做的那样,并将 Yii2 添加到 Yii1,我将离开这个解决方案。

对我来说首先帮助了这个。

        spl_autoload_unregister(['YiiBase', 'autoload']);
        require_once Yii::app()->params['rootPath'] . '/PHPExcel/Classes/PHPExcel.php';
        spl_autoload_register(['YiiBase', 'autoload']);

当我添加 Yii2 时,我改变了

        spl_autoload_unregister(['Yii', 'autoload']);
        spl_autoload_unregister(['YiiBase', 'autoload']);
        require_once Yii::app()->params['rootPath'] . '/PHPExcel/Classes/PHPExcel.php';
        spl_autoload_register(['YiiBase', 'autoload']);
        spl_autoload_register(['Yii', 'autoload']);

下次使用

  $objPHPExcel = new PHPExcel();
  ...
  $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

相关内容

  • 没有找到相关文章

最新更新