中关村在线

首页 排行 新品 问答 下载 论坛 手机 笔记本 数码相机 主板 显卡 平板电脑 更多

数据从excel导入数据库时,会导入空值怎么办

举报
讨论回答 (5)
zhoushengchen11
qq7944328
wangluo_999
thinkphp3.2和phpexcel导入最基本用法
先整个最基础的代码,理解了这个,后面的就非常简单了
$file_name= './Upload/excel/123456.xls';
        import("Org.Util.PHPExcel");
        import("Org.Util.来自PHPExcel.IOFactory");
        $objReader = PHPExcel_IOFactory::createReader('Excel5');
        $objPHPExcel = $objReader->load($file_name,$encode='utf-8');
        $sheet = $objPHPExcel->getSheet(0);
        $highestRow = $sheet->getHighestRow(); // 取得总行数
        $highestColumn = $sheet->getHighestColumn(); // 取得总列数
    
        $s = $objPHPExcel->getActiveSheet()->getCell("A2")->getValue();表格内容:

再给大家整个一点难度的,先说下思路。
1.上传excel文件,得到它的地址
2.写个处理exl的function,即可
实例代码演示:
public function upload(){
        $files = $_FILES['exl'];
        
        
        // exl格式,否则重新上传
        if($files['type'] !='application/vnd.ms-excel'){
            $旧支妒思校至布this->error('不是Excel文件,请重新上传');    
        }
        
        // 上传
        $upload = new ThinkUpload();// 实例化上传类
        $把断盾歌upload->maxSize   =     3145728 ;// 设置附件上传大小
        $upload->exts      =     array('xls');// 设置附件上传类型
        $upload->rootPath  =     './Upload/'; // 设置附件上传根目录
        $upload->savePath  =     'excel/'; // 设置附件上传(子)目录
        //$upload->subName   =     array('date', 'Ym');
        $upload->subName   =     '';
        // 上传文件  
        $info   =   $upload->upload();
    
        $file_name =  $upload->rootPath.$info['exl']['savepath'].$info['exl']['savename'];
        $exl = $this->import_exl($file_name);
        
        // 去掉第exl表格中第一行
        unset($exl[0]);
        
        // 清理空数组
        foreach($exl as $k=>$v){
            if(empty($v)){
                unset($exl[$k]);
            }    
        };
        // 重新排序
        sort($exl);
        
        $count = count($exl);
        // 检测表格导入成功后,是否有数据生成
        if($count<1){
            $this->error('未检测到有效数据');    
        }
        
        // 开始组合数据
        foreach($exl as $k=>$v){
        
            $goods[$k]['goods_sn'] = $v;
            
            // 查询数据库
            $where['goods_sn'] = array('like','%'.$v.'%');
            $res = M('goods')->where($where)->find();
            
            $goods[$k]['goods_name'] = $res['goods_name'];
            $goods[$k]['goods_thumb'] = $res['goods_thumb'];
            if($res){
                // 是否匹配成功  
                $goods[$k]['is_match']    = '1';
                $f += 1;
            }else{
                // 匹配失败
                $goods[$k]['is_match']    = '0';
                $w += 1;
            }
                    
        }
        // 实例化数据
        $this->assign('goods',$goods);
        //print_r($f);
        
        // 统计结果
        $total['count'] = $count;
        $total['success'] = $f;
        $total['error'] = $w;
        $this->assign('total',$total);
        
        // 删除Excel文件
        unlink($file_name);
        $this->display('info');
            
    }
/* 处理上传exl数据
     * $file_name  文件路径
     */
    public function import_exl($file_name){
        //$file_name= './Upload/excel/123456.xls';
        import("Org.Util.PHPExcel");   // 这里不能漏掉
        import("Org.Util.PHPExcel.IOFactory");
        $objReader = PHPExcel_IOFactory::createReader('Excel5');
        $objPHPExcel = $objReader->load($file_name,$encode='utf-8');
        $sheet = $objPHPExcel->getSheet(0);
        $highestRow = $sheet->getHighestRow(); // 取得总行数
        $highestColumn = $sheet->getHighestColumn(); // 取得总列数
        
        for($i=1;$i<$highestRow+1;$i++){
            $data[] = $objPHPExcel->getActiveSheet()->getCell('A'.$i)->getValue();    
        }
        return $data;    
    }有问题一定要及时弄清楚

chl416733278
552221123qQ
展开查看全部 5 条讨论
精品应用推荐
新浪微博 新浪微博 天气通 天气通 淘宝特价版 淘宝特价版 UC浏览器 UC浏览器
相关问题

如何实现全国各地同事共用一个excel表格?

2996 浏览 10 回答

主要使用excel处理数据的话,财务人员学习VBA和python哪个比较好?

4568 浏览 10 回答

每天面对大量excel表,好麻烦,效率很低,有什么推荐的工具吗?

3343 浏览 9 回答

word excel 一打开文件就提示另存为。。。怎麽办???着急

29.1万 浏览 8 回答

EXCEL里面数据太多了,打开好慢,怎么办?

4694 浏览 8 回答

扩展阅读

RTX5090、U9-285HX、R9-9955HX3D全来了!微星游戏本、AIPC、轻薄本抢鲜看

评论 5

RTX5090、U9-285HX、R9-9955HX3D全来了!微星游戏本、AIPC、轻薄本抢鲜看

都在玩命冲高端的当下,为什么499元的手机却火了?

评论 5

都在玩命冲高端的当下,为什么499元的手机却火了?

让数字化转型更智能、更可持续 理光IM C7010数码复合机评测

评论 5

让数字化转型更智能、更可持续 理光IM C7010数码复合机评测

时隔3个月 都2025年了为何9800X3D还在卖断货?

评论 0

时隔3个月 都2025年了为何9800X3D还在卖断货?

CES 2025看点汇总:AI领航重塑未来生活新图景

评论 6

CES 2025看点汇总:AI领航重塑未来生活新图景
热门问题

免费韩国漫画在线观看的地址有么?

8068 浏览 5 回答

免费韩国漫画在线观看的地址有么?

荣耀Magic7 Pro

9851 浏览 1 回答

荣耀Magic7 Pro

求推荐一款笔记本。工科研究生用,便于随身携带。平时做科研,处理数据,查阅文献。不玩网游和单机,至多玩棋牌游戏和影音。喜欢摄影,需要修图。附加:纠结要不要带数字键盘区。预算最多8000。尽量便宜些。

1.2万 浏览 6 回答

求推荐一款笔记本。工科研究生用,便于随身携带。平时做科研,处理数据,查阅文献。不玩网游和单机,至多玩棋牌游戏和影音。喜欢摄影,需要修图。附加:纠结要不要带数字键盘区。预算最多8000。尽量便宜些。

一公里大约多少步数 一公里有多少步

7513 浏览 8 回答

一公里大约多少步数 一公里有多少步

海尔售后电话(海尔)全国统一400客服服务热线

5469 浏览 6 回答

海尔售后电话(海尔)全国统一400客服服务热线

字节跳动旗下12款产品

6814 浏览 6 回答

字节跳动旗下12款产品

苹果手机怎么打开apk文件

2万 浏览 6 回答

苹果手机怎么打开apk文件

QQ浏览器上次浏览如何恢復

5423 浏览 9 回答

QQ浏览器上次浏览如何恢復

在哪里可以免费看韩漫的?

2884 浏览 6 回答

在哪里可以免费看韩漫的?

肿么找回QQ浏览器历史记录

7312 浏览 6 回答

肿么找回QQ浏览器历史记录
最新问答

苹果手机怎么重新设定下载软件密码

3809 浏览 4 回答

苹果手机怎么重新设定下载软件密码

王者荣耀收徒条件是什么 王者荣耀收徒攻略

7310 浏览 7 回答

王者荣耀收徒条件是什么 王者荣耀收徒攻略

云宫迅音曲头音乐是什么乐器

8871 浏览 8 回答

云宫迅音曲头音乐是什么乐器

该款intel confidential cpu 规格怎样?

1029 浏览 6 回答

该款intel confidential cpu 规格怎样?

福与褔,字形和含义的区别是什么?

2274 浏览 6 回答

福与褔,字形和含义的区别是什么?
举报
举报成功

经过核实后将会做出处理,感谢您为社区和谐做出贡献。

请选择删除原因
删除成功
确定推荐该回答?
推荐成功

更多频道

频道导航
辅助工具