//上传文件
public function uploadFile(){
$upload = new \Think\Upload();
$savename = date('Y-m-d').'-'.time();//使用date('Y-m-d H:i:s')作为文件名,因含有冒号,文件就无法保存了,文件名不可含有冒号:
$upload ->exts = array('xls','xlsx');
$upload ->rootPath = 'Public/sxwx/policytracking/';
$upload ->autoSub = false;//是否开启子目录进行保存,默认开启
$upload ->saveName = $savename;
$info = $upload ->upload();
if (!$info) {
$this->backMsg('0','文件格式有误');
}
//导入成功
vendor("PHPExcel.PHPExcel");
$excel = new \PHPExcel();
vendor("PHPExcel.Classes.PHPExcel.Reader.Excel5");
vendor("PHPExcel.Classes.PHPExcel.Reader.Excel2007");
$file = 'Public/sxwx/policytracking/'.$info['excel']['savename'];
$phpReader = new \PHPExcel_Reader_Excel5();//xls格式的表格
$ext = $info['excel']['ext'];//获取文件的后缀名,传过来的字段名为excel
if ($ext=='xlsx') {
$phpReader = new \PHPExcel_Reader_Excel2007();//xlsx格式的表格
}
$objPHPExcel = $phpReader ->load($file);//读取文件内容
/*表格格式
投保单号 保单状态 状态原因 回复处理方式 新契约下发时间 处理完成时间 业务员姓名
*/
$sheet = $objPHPExcel->getSheet(0);
// 取得总行数
$highestRow = $sheet->getHighestRow();
// 取得总列数
$highestColumn = $sheet->getHighestColumn();
//循环读取excel文件,读取一条,插入一条
$data=array();
//从第三行开始读取数据,第一行名字,第二行字段名
for($j=3;$j<=$highestRow;$j++){
//从A列读取数据
for($k='A';$k<=$highestColumn;$k++){
// 读取单元格
$cellVal = $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue();
$data[$j][]=$cellVal;
}
}
$stateTab = M('sxwx_policy_state');
$stateTab ->startTrans();
foreach ($data as $key => $value) {
$add['toubao_num'] = $value[0];
$add['policy_state'] = $value[1];
$add['state_reason'] = $value[2];
$add['response_type'] = $value[3];
$add['assign_time'] = gmdate('Y-m-d',intval(($value[4]-25569)*3600*24));//excel读取日期时间有问题,转化为日期
$add['completed_time'] = gmdate('Y-m-d',intval(($value[5]-25569)*3600*24));//excel读取日期时间有问题,转化为日期
$add['record_name'] = $value[6];
$exist = $stateTab ->where($add) ->find();
if (!$exist) {
$res[] = $stateTab ->add($add,array(),true);
}
}
foreach ($res as $key => $value) {
if ($value === false) {
$stateTab ->rollback();
}
}
$stateTab ->commit();
$this -> backMsg('1','数据批量导入成功');
}
private function backMsg($code,$desc){
$ret['code'] = $cdoe;
$ret['desc'] = $desc;
$this ->ajaxReturn($ret);
}