用于解析XLS文件的未定义类

时间:2019-03-27 10:35:41

标签: php class xls

我需要通过composer安装的SimpleXLS软件包类,但是当我尝试对其进行测试时,我的SimpleXLSX似乎是未定义的。

<?php

include './_inc/bootstrap.php';
require_once('./vendor/shuchkin/simplexls/src/SimpleXLS.php');
if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {
    print_r( $xlsx->rows() );
} else {
    echo SimpleXLSX::parseError();
}

2 个答案:

答案 0 :(得分:1)

更改

if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {

收件人

if ( $xlsx = SimpleXLS::parse('book.xlsx') ) {

SimpleXLSX的所有引用更改为SimpleXLS,因为根据this,该类称为SimpleXLS,而不是SimpleXLSX

注意:如果您包含自动加载器,则Composer将处理自动加载。

答案 1 :(得分:1)

使用Composer时,通常不应该在包内包括特定文件,而应仅包括Composer生成的自动加载器:

require_once './vendor/autoload.php';

该文件仅需运行一次,因此可以在现有的_inc/bootstrap.php文件中,您需要在其中向上一个目录,因此该行应为:

require_once '../vendor/autoload.php';

(请注意,require_once是关键字,而不是函数,因此不需要括号,在复杂情况下加括号可能会引起混淆。)

正如Script47在一个单独的答案中指出的那样,您似乎还混淆了两个名称相似的软件包:

  • shuchkin/simplexls定义了一个类SimpleXLS,用于读取旧格式的.xls二进制文件
  • shuchkin/simplexlsx定义了一个类SimpleXLSX,用于读取更新的.xlsx压缩XML文件