方法一:一次性把所有的sheet加载遍历,把每个sheet里的数据放到数组里,此方法浪费内存,如果数据量比较大,不适合用
网站设计:PHPExcel导入excel文件
- 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/>';
- }
导入的时候没有这么多要求,所以相对比较简单,上面的代码一般情况下一般已经够用了,推荐使用第二中方法