首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPExcel:找不到'PHPExcel_Reader_excel.php‘

PHPExcel:找不到'PHPExcel_Reader_excel.php‘
EN

Stack Overflow用户
提问于 2014-05-20 11:21:48
回答 2查看 15.2K关注 0票数 2

我正在使用phpexcel,我有一个问题:当创建一个阅读器对象时,我得到了这个错误:

致命错误:在第170行的C:\xampp\htdocs\phpexcel\Classes\PHPExcel\IOFactory.php中找不到类‘PHPExcel_Reader_excel.php

我的代码是:

代码语言:javascript
复制
    <?php
require_once(dirname(__FILE__)."/Classes/phpexcel.php");
//or
require_once(dirname(__FILE__)."/Classes/PHPExcel/IOFactory.php");
//$phpexcel = new PHPExcel();
$reader = PHPExcel_IOFactory::createReader("excel.php");
?>

我检查了第170行的IOFactory.php,发现了以下内容:

代码语言:javascript
复制
$searchType = 'IReader';

    // Include class
    foreach (self::$_searchLocations as $searchLocation) {
        if ($searchLocation['type'] == $searchType) {
            $className = str_replace('{0}', $readerType, $searchLocation['class']);

            $instance = new $className();
            if ($instance !== NULL) {
                return $instance;
            }
        }
    }

但是不可能找到任何类,因为它们使用_而不是/(路径是phpexcel\Classes\PHPExcel\Reader,并且有像excel5.php、excel2007.php这样的文件,但没有excel.php)

怎么啦?文档有点让人迷惑

EN

回答 2

Stack Overflow用户

发布于 2014-05-20 14:59:16

除非您已经添加了自己的自定义阅读器PHPExcel_Reader_excel.php,否则这将返回一个错误。

PHPExcel User Documentation - Reading Spreadsheet Files online的第1部分和/Documentation文件夹中所述,有7种不同的阅读器可用于7种不同的电子表格格式:

PHPExcel可以读取许多不同的电子表格文件格式,但并非所有阅读器都支持所有功能。查看功能交叉引用文档(Functionality Cross-Reference.xls),以获得标识哪些读卡器支持哪些功能的列表。

目前,PHPExcel支持以下文件类型进行读取:

Excel5

Microsoft Excel™二进制文件格式(BIFF5和BIFF8)是Microsoft Excel™在版本95和2003之间使用的二进制文件格式。大多数电子表格程序都支持该格式(在不同程度上)。BIFF文件的扩展名通常为.xls。描述该格式的文档可以在http://msdn.microsoft.com/en-us/library/cc313154(v=office.12).aspx或从http://download.microsoft.com/download/2/4/8/24862317-78F0-4C4B-B355-C7B2C1D997DB/[MS-XLS].pdf (可下载的PDF)在线找到。

Excel2003XML

Microsoft Excel™2003包含名为SpreadsheetML的文件格式的选项。该文件是一个压缩的XML文档。它不是很常见,但它的核心功能是受支持的。这种格式的文档可以在http://msdn.microsoft.com/en-us/library/aa140066%28office.10%29.aspx上找到,但遗憾的是,它的细节相当稀疏。

Excel2007

Microsoft ExcelExcel2007附带了一种新的文件格式,即Microsoft Office Open XML SpreadsheetML,Excel2010进一步扩展了这一点,并提供了迷你图等新功能。这些文件的扩展名通常为.xlsx。此格式基于eXtensible标记语言(XML)文件的压缩集合。Microsoft Office Open XML SpreadsheetML主要是在ECMA376 (http://www.ecma-international.org/news/TC45_current_work/TC45_available_docs.htm)和ISO29500中标准化的。

OOCalc

也称为开放文档格式( OASIS ),这是用于电子表格的OpenOffice.org可扩展标记语言文件格式。它包含一个压缩存档,其中包含几个组件,所有这些组件都是文本文件,其中大多数都带有eXtensible标记语言(XML)的标记。它是OpenOffice.org Calc和StarCalc的标准文件格式,文件的扩展名通常为.ods。已发布的文件格式规范可从OASIS Open Office XML格式技术委员会网页(http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office#technical)获得。其他信息可从OpenOffice.org项目的OpenOffice.org XML文件格式网页(http://xml.openoffice.org/general.html)获得。

SYLK

这是Microsoft Multiplan Symbolic Interchange (SYLK)文件格式。Multiplan是Microsoft Excel™的前身。文件的扩展名通常为.slk。虽然不常见,但仍有一些应用程序将SYLK文件生成为跨平台选项,因为(尽管仅限于单个工作表)它是一种易于实现的简单格式,并且支持一些基本的数据和单元格格式选项(与CSV文件不同)。

数字

Gnumeric文件格式由Gnome Gnumeric电子表格应用程序使用,通常文件的扩展名为.gnumeric。文件内容使用XML (XML)标记存储,然后使用eXtensible项目的gzip压缩库对文件进行压缩。http://projects.gnome.org/gnumeric/doc/file-format-gnumeric.shtml

CSV

逗号分隔值(CSV)文件格式是文本格式文件的常用结构策略。在CSV文件中,文件中的每一行代表一行数据,并且(在文件的每一行中)不同的数据字段(或列)使用逗号(“,”)彼此分隔。如果数据字段包含逗号,则应将其括起来(通常用引号(")括起来。有时,制表符“\t”或竖线符号(“|”)用作分隔符,而不是逗号。由于CSV是纯文本格式,因此不支持任何数据格式选项。“

在使用createReader()方法时,需要通过名称指定读取器,例如:

代码语言:javascript
复制
$reader = PHPExcel_IOFactory::createReader("Excel5");

/Examples文件夹中有大量示例说明了不同阅读器的这种用法,包括让PHPExcel自己使用load()选择正确的阅读器,以及在使用identify()方法设置阅读器之前验证文件的格式是否正确

我必须承认,我认为这个文档相当简单,特别是其中包含的示例

票数 4
EN

Stack Overflow用户

发布于 2016-05-06 21:51:22

为了方便起见,您可以使用PHPExcel_IOFactory::createReaderForFile($file);= $objReader,它会自动为您的文件选择一个阅读器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23750504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档