我正在使用PHPExcel来读取充满客户数据的excel文件。
$file = $this->suppdata['impfile'];
$type = PHPExcel_IOFactory::identify($file);
$objReader = PHPExcel_IOFactory::createReader($type);
$objPHPExcel = $objReader->load($file);
$objPHPExcel->setActiveSheetIndex(0);
$highestRow = $objPHPExcel->getActiveSheet()->getHighestRow();
$highestColumn = $objPHPExcel->getActiveSheet()->getHighestColumn();
$data = $objPHPExcel->getActiveSheet()->rangeToArray(
'A7:' . $highestColumn . $highestRow,
NULL,TRUE,FALSE
);
没什么特别的。特别之处在于,我在exec
启动的后台进程上运行此代码。我这样做是因为加载和(进一步)处理数据可能需要一些时间,我不希望用户等待这一点。它适用于CSV和TXT文件,据我所知使用来处理XLS(X)。
现在,在处理XLSX文件时,我收到此错误:
Class 'ZipArchive' not found
显而易见的方法是检查zip扩展是否已启用,如果未启用,则启用它。我这样做了,但phpinfo()
显示已加载并启用的zip扩展名。
该项目使用PHP 7.1.11在Ubuntu 16.04上运行。在我的本地机器上,我使用Windows 10和PHP 7.1.11,一切正常。
所以问题是,为什么上面的脚本禁用了扩展,但一般都启用了?