php知识总结

phpexcel 致命错误: Class 'PHPExc

2019-03-10  本文已影响0人  响呼雷

linux出现Class 'PHPExcel_Reader_Csv' not found

在不得已之下还是需要满足csv文件上传的,现在针对遇到的“Class 'PHPExcel_Reader_Csv' not found”问题给出解决方案!(点上小爱心哦)

首先我也是百度了好久,大部分都是”Call to undefined method PHPExcel_Reader_CSV::setLineEnding ()“这样的错误,如果你看过我的phpexcel 导入、导入这篇文章,你会发现如下代码:

$objReader = \PHPExcel_IOFactory::createReader('CSV')
->setDelimiter(',')
->setInputEncoding('GBK')
->setEnclosure('"')
// ->setLineEnding("\r\n") //这一行就是导致出现”Call to undefined method PHPExcel_Reader_CSV::setLineEnding ()“问题,注释掉即可。
->setSheetIndex(0);

上传csv为什么汉字空白呢?

$objReader = \PHPExcel_IOFactory::createReader('CSV') ; //初始写的时候就这么一行,但是通过百度加上后半段代码,空白问题解决了。(没有去深度学习这几个参数的意思,你要加油袄!!!)
->setDelimiter(',')
->setInputEncoding('GBK')
->setEnclosure('"')
->setSheetIndex(0);

重点开了,Class 'PHPExcel_Reader_Csv' not found这个错误是怎么回事呢?
首先我是这么做的,因为他报的错误”PHPExcel_Reader_Csv“,我觉得和”createReader“这个方法有问题

$objReader = \PHPExcel_IOFactory::createReader('CSV');

找到”createReader“方法后,下面是PHPExcel的代码,他遍历了自身的”searchLocations“变量,而且还有”type“,一看就是类型嘛!!!

public static function createReader(readerType = '') { // Search typesearchType = '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;
           }
       }
   }
既然和类型有关系,我就找到了

private static $autoResolveClasses = array(
'Excel2007',
'Excel5',
'Excel2003XML',
'OOCalc',
'SYLK',
'Gnumeric',
'HTML',
'CSV',
);

解决办法:就是把$objReader = \PHPExcel_IOFactory::createReader('Csv')中的Csv换成大写就ok了,哈哈!!!
上一篇下一篇

猜你喜欢

热点阅读