紧接着上面的文件,讲一下PHPExcel的excel文件导入
方法一:一次性把所有的sheet加载遍历,把每个sheet里的数据放到数组里,此方法浪费内存,如果数据量比较大,不适合用
header("Content-Type:text/html;charset=utf-8"); include "./PHPExcel-1.8/Classes/PHPExcel/IOFactory.php"; $filename="test.xlsx"; $objPHPExcel=PHPExcel_IOFactory::load($filename);//加载文件 $sheetCount=$objPHPExcel->getSheetCount();//获取excel文件里有多少个sheet for($i=0;$i<$sheetCount;$i++){ $data=$objPHPExcel->getSheet($i)->toArray();//读取每个sheet里的数据 全部放入到数组中 print_r($data); }
方法二:选择要加载的sheet,逐行逐列读取,节约内存
header("Content-Type:text/html;charset=utf-8"); include "./PHPExcel-1.8/Classes/PHPExcel/IOFactory.php"; $filename="test.xlsx"; $fileType=PHPExcel_IOFactory::identify($filename);//自动获取文件的类型提供给phpexcel用 $objReader=PHPExcel_IOFactory::createReader($fileType);//获取文件读取操作对象 $sheetName=array("test");//指定sheet名称 $objReader->setLoadSheetsOnly($sheetName);//只加载指定的sheet $objPHPExcel=$objReader->load($filename);//加载文件 foreach($objPHPExcel->getWorksheetIterator() as $sheet) {//循环取sheet foreach($sheet->getRowIterator() as $row){//逐行处理 if($row->getRowIndex()<2){//从第二行开始处理 continue; } foreach($row->getCellIterator() as $cell){//逐列读取 $data=$cell->getValue();//获取单元格数据 echo $data." "; } echo '<br/>'; } echo '<br/>'; }
导入的时候没有这么多要求,所以相对比较简单,上面的代码一般情况下一般已经够用了,推荐使用第二中方法