PHPExcel不使用xls文件

PHPExcel不使用xls文件,php,phpexcel,Php,Phpexcel,我正在使用php读取excel文件,它与xlsx一起工作正常,但当尝试读取xls文件时,它显示了一个错误 Fatal error: Call to undefined method PHPExcel_Reader_CSV::setReadDataOnly() in /var/www/.... 这是我的密码 $file_path='/var/www/html/site/sample.xls'; $inputFileType = PHPEx

我正在使用php读取excel文件,它与
xlsx
一起工作正常,但当尝试读取
xls
文件时,它显示了一个错误

     Fatal error: Call to undefined method PHPExcel_Reader_CSV::setReadDataOnly() in /var/www/....
这是我的密码

            $file_path='/var/www/html/site/sample.xls';
            $inputFileType = PHPExcel_IOFactory::identify( $file_path);

            $objReader = PHPExcel_IOFactory::createReader($inputFileType);  

            $objReader->setReadDataOnly(true);

            /**  Load $inputFileName to a PHPExcel Object  **/  
            $objPHPExcel = $objReader->load( $file_path);

            $total_sheets=$objPHPExcel->getSheetCount(); 

            $allSheetName=$objPHPExcel->getSheetNames(); 
            $objWorksheet = $objPHPExcel->setActiveSheetIndex(0); 
            $highestRow = $objWorksheet->getHighestRow(); 
            $highestColumn = $objWorksheet->getHighestColumn();  
            $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);  
            for ($row = 1; $row <= $highestRow;++$row) 
            {  
                for ($col = 0; $col <$highestColumnIndex;++$col)
                {  
                    $value=$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();  

                          $arraydata[$row-1][$col]=trim($value); 


                }  

            }
$file_path='/var/www/html/site/sample.xls';
$inputFileType=PHPExcel\u IOFactory::identify($file\u path);
$objReader=PHPExcel\u IOFactory::createReader($inputFileType);
$objReader->setReadDataOnly(true);
/**将$inputFileName加载到PHPExcel对象**/
$objPHPExcel=$objReader->load($file\u路径);
$total_sheets=$objPHPExcel->getSheetCount();
$allSheetName=$objPHPExcel->getSheetNames();
$objWorksheet=$objPHPExcel->setActiveSheetIndex(0);
$highestRow=$objWorksheet->getHighestRow();
$highestColumn=$objWorksheet->getHighestColumn();
$highestColumnIndex=PHPExcel_单元::columnIndexFromString($highestColumn);
对于($row=1;$row getValue();
$arraydata[$row-1][$col]=trim($value);
}  
}

对于二进制Excel文件(xls),使用(旧版)可能会更幸运。这是迄今为止我发现的最可靠的文件。

您正在加载的文件被标识为
CSV
文件,即使它有
.xls
扩展名……对于一些开发人员来说,将文件格式保存为CSV或带有.xls扩展名的html标记,这是非常常见的做法,但这并不能使它们成为BIFF format.xls fi莱斯

setReadDataOnly()
方法对于CSV读取器不可用,因为CSV文件不能包含除数据以外的任何内容

PHPExcel的最新版本为CSV读取器中的
setReadDataOnly()
提供了一个存根,以防止在这种情况下出现错误,我当然建议您升级到最新的代码;但是如果您不能做到这一点,那么最简单的修复方法就是将调用包装到
setReadDataOnly()
if
测试中:

$inputFileType = PHPExcel_IOFactory::identify( $file_path);

$objReader = PHPExcel_IOFactory::createReader($inputFileType);  
if ($inputFileType !== 'CSV') {
    $objReader->setReadDataOnly(true);
}

可能
$file\u path
错误?如果(!!file\u存在($file\u path))返回;到begin@hindmost$file_path没有错,我仔细检查了EDI需要xls和xlsx,如果调用
setReadDataOnly()时出现致命错误,我将其升级为xlsx
在调用
load
之前,将不会读取数据….
load()
是一种方法,它将数据实际读取到PHPExcel对象中,然后将该对象分配给
$objPHPExcel
…但在此之前会出现致命错误,终止脚本