tp3.2导入,导入失败可以下载你的失败文件

第一步:下载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配置下载

第五步:

            
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值