<form action="{:U('Index/files')}" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file"/> <br/> <input type="submit" name="submit" value="Submit"/> </form>
public function files(){ $filename = $_FILES['file']['name']; $ext = preg_split("/./", $filename); $ext = strtolower($ext[1]); /* * 获取文件后缀名 */ $allowed_types = array("xls", "xlsx"); $filePath = "./Public/excel/" . $_FILES["file"]["name"]; // print_r($filePath);die; if (!in_array($ext, $allowed_types)) { echo "File type is wrong!"; die; } // else if (file_exists($filePath)) { // echo "A file with this name already exists!"; // die; // } else { move_uploaded_file($_FILES["file"]["tmp_name"], $filePath); } /** * @param $val * @return string * 检查文件名是否符合要求,如果符合,就保存到指定路径。如果不符合,报错。 */ // import("Org.Util.PHPExcel"); require_once "./ThinkPHP/Library/Org/Util/PHPExcel/Classes/PHPExcel.php"; //$filePath=$_FILES["file"]["tmp_name"]; //sleep(50); $PHPExcel = new PHPExcel(); //默认用excel2007读取excel,若格式不对,则用之前的版本进行读取 $PHPReader = new PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { return $this->error(null, "no file"); } } $PHPExcel = $PHPReader->load($filePath); $sheetCount = $PHPExcel->getSheetCount(); $sheetNames = $PHPExcel->getSheetNames(); //var_dump($sheetNames); //die; /**读取excel文件中有多少个sheet*/ $objExcel = array(); for ($SheetID = 0; $SheetID < $sheetCount; $SheetID++) { /**读取excel文件中的工作表*/ $name = $sheetNames[$SheetID]; $currentSheet = $PHPExcel->getSheetByName($name); $name = iconv("utf-8", "gb2312", $name); /**取得最大的列号*/ $allColumn = $currentSheet->getHighestColumn(); /**取得一共有多少行*/ $allRow = $currentSheet->getHighestRow(); for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) { /**从第A列开始输出*/ for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) { $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65, $currentRow)->getValue(); $val = iconv("utf-8", "gb2312", $val); $objExcel[$name][$currentRow - 1][ord($currentColumn) - 65] = $val; //编码需要转换成gb2312 /* $val = urlencode($val); $objExcel[$name][$currentRow - 1][ord($currentColumn) - 65] = urldecode($val); */ } } } unlink($filePath); /* * $objExcel = json_encode($objExcel); * $objExcel = urldecode($objExcel); * 读取文件中的内容,因为json_encode()的参数必须是utf-8编码。为了保证汉字输出的结果,这里先将数组中的内容用urlencode进行编码, * 在被json_encode()编码之后,再用urldecode解码。 */ //return $objExcel; // print_r($objExcel); foreach ($objExcel as $k=>$v){ //取出里面的id拼接成新的一维数组 $result = array_reduce($v, 'array_merge', array()); //过滤掉里面的空值取出id $id = array_filter($result); } }