读取EXCEL
1 /** 2 * 读取excel 3 * @param $filename 4 * @param int $sheet 5 * @return array 6 */ 7 function readExcel($filename,$sheet=0) 8 { 9 //导入PHPExcel 10 vendor("PHPExcel.PHPExcel"); 11 //$cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip; 12 //$cacheSettings = array('memoryCacheSize'=>'100MB'); 13 //\PHPExcel_Settings::setCacheStorageMethod($cacheMethod); 14 $filePath = $filename; 15 $data = array(); 16 if (strpos($filename, '.csv')) { 17 $objReader = \PHPExcel_IOFactory::createReader('CSV') 18 ->setDelimiter(',') 19 ->setInputEncoding('gb2312') //不设置将导致中文列内容返回boolean(false)或乱码 20 ->setEnclosure('"'); 21 $PHPExcel = $objReader->load($filename); 22 } else { 23 $PHPExcel = \PHPExcel_IOFactory::load($filename); 24 } 25 26 if ($sheet) { 27 $currentSheet = $PHPExcel->getSheet($sheet); 28 } else { 29 $currentSheet = $PHPExcel->getActiveSheet();//当前工作表 30 } 31 32 $columns = $currentSheet->getHighestColumn(); // 总列数 33 $columns++; 34 $rows = $currentSheet->getHighestRow(); // 总行数 35 36 //\PHPExcel_Cell::columnIndexFromString($highestColumn); //字母列转换为数字列 如:AA变为26 37 //$cell = $currentSheet->getCellByColumnAndRow(数字列, 数字行)->getValue(); 38 //$columnName = \PHPExcel_Cell::stringFromColumnIndex(27); 39 $data = array(); 40 //循环读取每个单元格的内容。注意行从1开始,列从A开始 41 for($row=1;$row<=$rows;$row++){ 42 for($column='A';$column!=$columns;$column++){ 43 //$cell = \PHPExcel_Shared_Date::ExcelToPHP($currentSheet->getCell($column.$row)->getValue())-8*3600;//把中国时间当做格林威治时间来转时间戳,所以+8时区 44 $cell = $currentSheet->getCell($column.$row)->getValue(); 45 if($cell instanceof \PHPExcel_RichText) {//富文本转换字符串 46 $cell = $cell->__toString(); 47 } 48 $data[$row][]=$cell; 49 if($column == $columns) { 50 break; 51 } 52 } 53 } 54 return $data; 55 }