我正在使用phpexcel,我有一个问题:当创建一个阅读器对象时,我得到了这个错误:
致命错误:在第170行的C:\xampp\htdocs\phpexcel\Classes\PHPExcel\IOFactory.php中找不到类‘PHPExcel_Reader_excel.php
我的代码是:
<?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,发现了以下内容:
$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)
怎么啦?文档有点让人迷惑
发布于 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()方法时,需要通过名称指定读取器,例如:
$reader = PHPExcel_IOFactory::createReader("Excel5");/Examples文件夹中有大量示例说明了不同阅读器的这种用法,包括让PHPExcel自己使用load()选择正确的阅读器,以及在使用identify()方法设置阅读器之前验证文件的格式是否正确
我必须承认,我认为这个文档相当简单,特别是其中包含的示例
发布于 2016-05-06 21:51:22
为了方便起见,您可以使用PHPExcel_IOFactory::createReaderForFile($file);= $objReader,它会自动为您的文件选择一个阅读器
https://stackoverflow.com/questions/23750504
复制相似问题