第一步:下载PHPExcel_1.8.0 并解压:https://github.com/PHPOffice/PHPExcel
第二步:②将PHPExcel_1.8.0_doc\Classes中的文件拷贝到ThinkPHP\Library\Vendor
PHPExcel中
第三步: public function pospz(){
ini_set(‘memory_limit’,‘1024M’);
if (!empty($_FILES)) {
$config = array(
‘exts’ => array(‘xlsx’,‘xls’),
‘maxSize’ => 3145728000,
‘rootPath’ =>"./Public/",
‘savePath’ => ‘Uploads/’,
‘subName’ => array(‘date’,‘Ymd’),
);
KaTeX parse error: Expected 'EOF', got '\Think' at position 14: upload = new \̲T̲h̲i̲n̲k̲\Upload(config);
if (!$info = $upload->upload()) {
$this->error($upload->getError());
}
vendor("PHPExcel.PHPExcel");
$file_name=$upload->rootPath.$info['photo']['savepath'].$info['photo']['savename'];
$extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));//判断导入表格后缀格式
// print_r($extension);die;
if ($extension == 'xlsx') {
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
} else if ($extension == 'xls'){
$objReader =\PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
}
$sheet =$objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();//取得总行数
$highestColumn =$sheet->getHighestColumn(); //取得总列数
//导入 //ip flag description
$a=0;//记录失败多少条
$j=0;//记录成功多少条
$all=array();//吧失败的数据放到这个空数组里面
for ($i = 2; $i <= $highestRow; $i++) {
//看这里看这里,前面小写的a是表中的字段名,后面的大写A是excel中位置
$data['pos_en'] =$objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue();//这是对应的你数据库的字段
$data['termno'] =$objPHPExcel->getActiveSheet()->getCell("B" . $i)->getValue();
$data['acceptance'] =$objPHPExcel->getActiveSheet()->getCell("C" .$i)->getValue();
$data['ip_address'] =$objPHPExcel->getActiveSheet()->getCell("D" .$i)->getValue();
$data['num_id'] =$objPHPExcel->getActiveSheet()->getCell("E" .$i)->getValue();
$data['remark'] =$objPHPExcel->getActiveSheet()->getCell("F" .$i)->getValue();
$data['forbid'] =$objPHPExcel->getActiveSheet()->getCell("G" .$i)->getValue();
$pos_en=$data['pos_en'];
$data1=$data['termno'];//终端号
$data2=$data['acceptance'];//受理场景
$data3=$data['ip_address'];//主机ip
$data4=$data['num_id'];//端口号
$data5=$data['remark'];//备注
$data6=$data['forbid'];//开启禁用
$configid = $this->getPrimarykey('zzk_configid','10');//属于orclar自增id
$pos = M('zzk_tpos');//这是我的表
$config = M('zzk_pos_config');
$list = $pos->where(['pos_en'=>$pos_en])->select();//这是判断找到对应的pos_en,我的条件
if(!$list){//不等于的时候让他直接跳出循环
$a++;
$res=false;
$all[] = $data;
continue;
}
$sql="insert into zzk_pos_config(configid,termno,acceptance,ip_address,num_id,remark,forbid) values
('".$configid."','".$data1."','".$data2."','".$data3."','".$data4."','".$data5."','".$data6."')";//原生添加
$config->execute($sql);//然后判断成功多少条
if($config){
$j++;
}
}
session('all',$all);//吧失败的数据存入到session里面
$this->success('添加成功'.'成功'.$j.'条'.'失败'.$a.'条'.'<a href="'.U('Machines/pzdaoc','file='.$filename).'">请点击下载失败文件</a>',U('Machines/terminal'),200);//成功可以返回你的渲染页面,失败的话,可以点击下载你下载失败的文件
} else {
$this->error("请选择上传的文件");
}
}
public function pzdaoc(){//导出
$all=session('all');//取存到session里面的失败数据
// print_r($all);die;
if($all){//判断他
$strlist = 'pos_en,termno,acceptance,ip_address,num_id,remark,forbid';//跟你xls对应的数据字段
$strlist.="\n";
foreach ($all as $key => $val) {
s t r l i s t . = strlist.= strlist.=val[‘pos_en’]."\t,".KaTeX parse error: Expected 'EOF', got '\t' at position 16: val['termno']."\̲t̲,".val[‘acceptance’]."\t,".KaTeX parse error: Expected 'EOF', got '\t' at position 20: …'ip_address']."\̲t̲,".val[‘num_id’]."\t,".KaTeX parse error: Expected 'EOF', got '\t' at position 16: val['remark']."\̲t̲,".val[‘forbid’]."\n";//组装数据
}
$filename ='pos配置报表'.date('YmdHis',time()); //下载后你叫什么
$this->load_csv($strlist,$filename);exit;//直接给他返回
}
}
第四步:加粗样式
点击pos配置下载
第五步: