我使用PHPExcel将数据导入mysql数据库。
我的代码是,
require APPPATH . 'phpexcel/PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load($_FILES['ifile']['tmp_name']);
$data = $objPHPExcel->getActiveSheet(0)->toArray(null, true, true, true);
在我的excel表中有14行,但$objPHPExcel->setActiveSheetIndex(0)->getHighestRow()
返回1047856行。由于这个处理时间太长。所以$data
返回错误,服务器变慢。怎么避免这个?
答案 0 :(得分:1)
不,您的Excel工作表在这些行中有一些东西:无论是数据还是样式或打印设置等等,它们都存在于Excel文件本身中....但是,有一个getHighestDataRow()
方法可以查看细胞的实际内容而不仅仅是它们在文件中的存在。它仍将返回包含NULL或空字符串的单元格,但可能更适合您的使用。
如果getHighestDataRow()
解决了行数问题,那么您应该考虑使用rangeToArray()
而不是toArray()