zoukankan      html  css  js  c++  java
  • TP 上传excel

     <?php
     class ExcelAction extends Action{
        public function read($filename,$encode='utf-8'){
            vendor('Excel.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; 
            
        } 
        public function excel(){
            $this->display();    
        }
        public function runexcel(){
            if (! empty ( $_FILES ['file_stu'] ['name'] )) 
             {
                $tmp_file = $_FILES ['file_stu'] ['tmp_name'];
                $file_types = explode ( ".", $_FILES ['file_stu'] ['name'] );
                $file_type = $file_types [count ( $file_types ) - 1];
                 /*判别是不是.xls文件,判别是不是excel文件*/
                 if (strtolower ( $file_type ) != "xls")              
                {
                      $this->error ( '不是Excel文件,重新上传' );
                 }
                /*设置上传路径*/
                 $savePath = '/';
                /*以时间来命名上传的文件*/
                 $str = date ( 'Ymdhis' ); 
                 $file_name = $str . "." . $file_type;
                 /*是否上传成功*/
                 if (! copy ( $tmp_file, $savePath . $file_name )) 
                  {
                      $this->error ( '上传失败' );
                  }
                /*
            
                   *对上传的Excel数据进行处理生成编程数据,这个函数会在下面第三步的ExcelToArray类中
            
                  注意:这里调用执行了第三步类里面的read函数,把Excel转化为数组并返回给$res,再进行数据库写入
            
                */
              $res = $this->read ( $savePath . $file_name );
               /*
            
                    重要代码 解决Thinkphp M、D方法不能调用的问题   
            
                    如果在thinkphp中遇到M 、D方法失效时就加入下面一句代码
            
                */
               spl_autoload_register ( array ('Think', 'autoload' ) );
            
               /*对生成的数组进行数据库的写入*/
               foreach ( $res as $k => $v ) 
               {
                   if ($k != 0) 
                  {
                      $data ['khmc'] = $v[0];
                      $data ['lxdz'] = $v[6];
                      $data ['khdh'] = $v[4];
                      $result = M ( 'khgl' )->add ( $data );
                     if (! $result) 
                     {
                          $this->error ( '导入数据库失败' );
                      }
                  }
               }
            }
        }
     }
     ?>
  • 相关阅读:
    VB连接Mysql数据库
    SASS优化响应式断点管理
    图像切割之(五)活动轮廓模型之Snake模型简单介绍
    Ubuntu的力量何在?
    开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
    thrift之默认传输类TTransportDefaults和虚拟传输类TVirtualTransport
    Java实现 蓝桥杯VIP 算法训练 水仙花数
    Java实现 蓝桥杯VIP 算法训练 求指数
    Java实现 蓝桥杯VIP 算法训练 求指数
    Java实现 蓝桥杯VIP 算法训练 求指数
  • 原文地址:https://www.cnblogs.com/hgj123/p/4260149.html
Copyright © 2011-2022 走看看