注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

背归鸿

博闻强记,厚积薄发!

 
 
 

日志

 
 

thinkphp读取导入excel  

2013-03-11 01:04:29|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

首先先说一下,本人的这段例程是使用在Thinkphp的开发框架,要是使用在其他框架也是类似的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错,如果有问题大家务必要对路劲是否引用正确进行测试。

(一)导入Excel

第一,在前台html页面进行上传文件:如:

<form method=”post” action=”php文件” enctype=”multipart/form-data”>
         <h3>导入Excel表:</h3><input  type=”file” name=”file_stu” />

           <input type=”submit”  value=”导入” />
</form>


第二,在对应的php文件进行文件的处理

 if (! empty ( $_FILES ['file_stu'] ['name'] )) 

 {  

           import("ORG.Net.UploadFile");
           $upload = new UploadFile(); // 实例化上传类
         $upload->maxSize  = 3145728 ; // 讴置附件上传大小
            $upload->allowExts = array('xls','xlsx'); // 讴置附件上传类型
            $upload->savePath = './Uploads/excel/';// 讴置附件上传目录
            if(!$upload->upload()) {// 上传错诣 提示错诣信息
                $this->error($upload->getErrorMsg());
            }else{ // 上传成功 获叏上传文件信息
                $info =  $upload->getUploadFileInfo();
            }


第三,下载phpExcel类库,有点大,放在核心文件的Lib->ORG->Util下,建立Model,比如CaideModel.class.php

<?php
class CaideModel extends Model{
    public function read($filename,$encode='utf-8')
    {
        import("ORG.Util.PHPExcel");
        $objReader = PHPExcel_IOFactory::createReader('Excel5');
        $objReader->setReadDataOnly(true);
        $objPHPExcel = $objReader->load($filename);
        $objWorksheet = $objPHPExcel->getActiveSheet();
        $highestRow = $objWorksheet->getHighestRow();
        $highestColumn = $objWorksheet->getHighestColumn();
        $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
        $excelData = array();
        for ($row = 1; $row<= $highestRow;$row++){
            for ($col=0;$col<$highestColumnIndex;$col++) {
                $excelData[$row][]=(string)$objWorksheet->getCellByColumnAndRow($col,$row)->getValue();
            }
        }
        return $excelData;        
    }
    
}
?>

使用示例:
$resurl    = $info[0]['savepath'].$info[0]['savename'];  //$resurl 为excel的路径
$res    =    D('Caide')->read($resurl);

foreach ( $res as $k => $v ) {
                  if($k == 1) { continue; }  //如果是第一行则跳过
                   
                    $data['title']         = $v[1];
                    $data['keywords']     = $v[2];  //只能批量导入学生和老师
                    $data['description'] = $v[3];
                    $data['qtime']         = $v[4];
                    $data['atime']         = $v[5];
                    $data['answer']     = $v[6];
                    $data['pageurl']     = $v[7];
                   
                    $result = M('Caide')->add($data);
                    if(!$result){
                            $rerror    =    $rerror +1;   
                    }

            }

             if ($rerror > 0){
                        $this->error('部分用户导入数据库失败');
              }else{
                        $this->success("数据导入成功");
               }
  评论这张
 
阅读(5041)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017