PHPExcel不使用xls文件
我正在使用php读取excel文件,它与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
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
…但在此之前会出现致命错误,终止脚本