function actionImport() { $userid = $this->userid; $MUser = $this->LoadApiModelMedical('user'); $user = $MUser->getUser($userid); if ($user && $this->post('filexls')) { $time_before = CTool::getUTime(); $filexls = $this->post('filexls'); $xls = new CExcel(); $uploadLoc = $this->getLoc('_data'); $filexls = $uploadLoc . $filexls; $sheetArr = $xls->getData($filexls); // print_r($sheetArr);exit; // exit; /* excel中的数据分为三段: 1, 基本信息 2, 规格信息 3, 详细信息 其中2,3统统存放到detail中 */ if ($sheetArr) { foreach ($sheetArr as $sheet => $dataArr) { // print_r($dataArr);exit; if ($dataArr) { //---------------------------------------------------- $fields = $dataArr[1]; //第1行为字段信息 // print_r($fields);exit; $pos = array_search('-', array_values($fields)); //第一个'-'的位置 // print_r($fields); $bases = $fields; //基本信息(arr) $specs = array_slice($fields, $pos + 1); //规格信息(arr) // $this->dump($fields); //---------------------------------------------------- //---------------------------------------------------- $xvalArr = array_slice($dataArr, 1); $valueArr = $partionArr = array(); $restype = $this->post('restype'); // print_r($dataArr);exit; foreach ($xvalArr as $k => $xrow) { if (empty($xrow['A']) && !isset($last_row)) { break; } //数据有问题 $row = array(); // if(empty($xrow['A']))continue; //第一栏为空 $attnameArr = $attvalArr = array(); //属性名和属性值 foreach ($bases as $c => $field) { //c为excel中的列名(A,B...) //field为excel中的第一行的值(业务上的字段) 产品品牌 $field = trim($field); $xval = trim($xrow[$c]); $row['hospitalid'] = $user['hospitalid']; if ('身份证号' == $field) { $row['idcard'] = trim($xval); } elseif (false !== strpos($field, '手机号')) { $row['mobile'] = floatval($xval); } elseif (false !== strpos($field, '姓名')) { $row['username'] = trim($xval); } elseif (false !== strpos($field, '年龄')) { //针对机械 $row['age'] = trim($xval); } elseif (false !== strpos($field, '角色id')) { $row['role'] = intval($xval); } elseif (false !== strpos($field, '所属医院')) { /*$title = trim($xval); $MHospital = $this->LoadApiModelMedical('hospital'); $hospital = $MHospital->getHospital(null,array('title'=>$title)); if($hospital){ $row['hospitalid'] = $hospital['id']; }*/ } elseif (false !== strpos($field, '科室')) { $row['deptname'] = trim($xval); } elseif (false !== strpos($field, '民族ID')) { $row['ethnic'] = trim($xval); } elseif (false !== strpos($field, '地址')) { $row['address'] = trim($xval); } elseif (false !== strpos($field, '电话')) { $row['home_phone'] = trim($xval); } elseif (false !== strpos($field, '住院号')) { $row['num_ill'] = trim($xval); } elseif (false !== strpos($field, '入院日期')) { $row['date_in'] = trim($xval); } elseif (false !== strpos($field, '出院日期')) { $row['date_out'] = trim($xval); } } $valueArr[] = $row; } // print_r($valueArr);exit; //---------------------------------------------------- // break; detail } break; //只读一页 } } //导入数据======================================== // print_r($valueArr); $dataArr = array(); $importinfos = array(); if ($valueArr) { $MUser = $this->LoadApiModelMedical('user'); foreach ($valueArr as $row) { if (empty($row['hospitalid']) || empty($row['idcard']) || empty($row['username'])) { $importinfos[] = array('code' => 1, 'message' => '数据不合法'); continue; } $retArr = $MUser->addUser($row); $importinfos[] = array('code' => 1 == $retArr['status'] ? 0 : 1, 'message' => $retArr['message']); } // print_r($retArr); // print_r($valueArr); // @unlink($filexls); } $time_after = CTool::getUTime(); $Elapse = sprintf("%.4f", $time_after - $time_before); $dataArr['elapsed'] = $Elapse; $dataArr['total'] = count($valueArr); $dataArr['importinfos'] = $importinfos; //end 导入数据==================================== // $jArr['data'] = $valueArr; $this->response($dataArr); } }
<?php set_time_limit(0); include_once 'CExcel.php'; $excel = new CExcel(array('cache' => __DIR__ . DIRECTORY_SEPARATOR . 'cache', 'template' => __DIR__ . DIRECTORY_SEPARATOR . 'template' . DIRECTORY_SEPARATOR . 'default.data', 'column' => array('编号', '用户名', '昵称', '级别'), 'columnCenter' => true, 'row' => 6, 'param' => array(1 => array(1 => '影院:传奇时代影城', 4 => '制表日期:2015/9/9 17:09:11'), 2 => array(1 => '售票员销售报表'), 3 => array(1 => '操作日期: 从 2015/9/9 到 2015/9/9'), 4 => array(1 => '放映日期: 从 2015/9/10 到 2015/9/10')), 'merge' => array('2,1:3,1', '1,2:4,2', '1,3:4,3', '1,4:4,4', '1,5:4,5'), 'height' => 18, 'width' => 30)); $db = mysqli_connect('192.168.3.172', 'root', '123456', 'tms'); $query = mysqli_query($db, 'SELECT count(*) as RecordCount FROM tms_user'); $data = mysqli_fetch_all($query, MYSQLI_ASSOC); $recordCount = $data[0]['RecordCount']; $pageSize = 2000; $pageCount = ceil($recordCount / $pageSize) + 1; for ($page = 1, $identity = 0; $page < $pageCount; $page++) { $identity = ($page - 1) * $pageSize; $query = mysqli_query($db, "SELECT uid,username,nickname,level FROM tms_user LIMIT {$identity}, {$pageSize}"); $excel->load(mysqli_fetch_all($query, MYSQLI_ASSOC), $page); } $excel->create(); $excel->download();