您的位置:首页 > 编程语言 > PHP开发

thinkphp的excel的导入导出

2020-06-08 05:41 579 查看
1 public function upload()
2 {
3 //设置响应头
4 header("Contec-Type=text.html;charset=utf-8");
5 //实例化上传类
6 $upload=new \Think\Upload();
7 //设置上传附件大小
8 $$upload->maxSizae=20480000;
9 //设置上传附件类型
10 $upload->exts=array('xls',xlsx);
11 //设置文件上传目录
12 $upload->savPath="/";
13 //上传文件
14 $info=$upload->uploadOne($_FILES['file']);
15 $filename='/.Upload'.$info['savepath'].$info['savename'];
16 $exts=$info['ext'];
17 if(!$info)
18 {
19 //提示上传错误
20 $this->error($upload->getError);
21
22 }
23 else{
24 //上传成功,开始导入
25 $this->dataImport($finame,$exts);
26
27 }
28 }
29
30 //这是导入函数
31 puhblic function dataImport($filename,$exts)
32 {
33
34  //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
35         import("Org.Util.PHPExcel");
36         //创建PHPExcel对象,注意,不能少了\
37         $PHPExcel=new \PHPExcel();
38         //如果excel文件后缀名为.xls,导入这个类
39         if($exts == 'xls'){
40             import("Org.Util.PHPExcel.Reader.Excel5");
41             $PHPReader=new \PHPExcel_Reader_Excel5();
42         }else if($exts == 'xlsx'){
43            import("Org.Util.PHPExcel.Reader.Excel2007");
44            $PHPReader=new \PHPExcel_Reader_Excel2007();
45
46     //载入文件
47         $PHPExcel=$PHPReader->load($filename);
48         //获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
49         $currentSheet=$PHPExcel->getSheet(0);
50         //获取总列数
51         $allColumn=$currentSheet->getHighestColumn();
52         //获取总行数
53         $allRow=$currentSheet->getHighestRow();
54         //循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
55
56         for($currentRow=3;$currentRow<=$allRow;$currentRow++){
57             //从哪列开始,A表示第一列
58
59             for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){
60                 //数据坐标
61                 $address=$currentColumn.$currentRow;
62                 //读取到的数据,保存到数组$arr中
63                $data[$currentRow][$currentColumn]=$currentSheet->getCell($address)->getValue();
64
65             }
66         }
67         $this->save_import($data);
68
69 }
70
71 //导入导数据库中
72 public function save_import($data)
73 {
74 //假设是某个数据库
75 $database=D('upload');
76 //用循环
77 foreach($data as $k=>$v)
78 {
79 //封装数据
80 $info['name']=$v['B'];
81             $info['age']=$v['C'];
82             $info['tel']=$v['E'];
83             $info['addr']=$v['F'];
84             $info['career']=$v['G'];
85             if($v['B']!=""&&$v['C']!=""&&$v['E']!=""&&$v['F']!=""&&$v['G']!="")
86             {
87             $result=$d->where(array('tel'=>$v['E']))->find();
88
89             if($result){
90               $res=$d->where(array('tel'=>$v['E']))->save($info);
91             }else{
92                 $res=$d->add($info);
93             }
94
95
96 }
97
98
99
100 }

 

转载于:https://www.cnblogs.com/zjl10101314/p/9464043.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: