• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ThinkPHP 框架实现的读取excel导入数据库操作示例

    本文实例讲述了ThinkPHP 框架实现的读取excel导入数据库操作。分享给大家供大家参考,具体如下:

    入口文件中:

    require_once VENDOR_PATH.'PHPExcel/PHPExcel/IOFactory.php';
    require_once VENDOR_PATH.'PHPExcel/PHPExcel.php';
    
    

    PHP:

    namespace Home\Controller;
    class ExcelController extends CommonController
    {
    public function Import() {
    // vendor('PHPExcel.PHPExcel.IOFactory');
    vendor("PHPExcel.PHPExcel.PHPExcel");
    vendor("PHPExcel.PHPExcel.Writer.Excel5");
    vendor("PHPExcel.PHPExcel.Writer.Excel2007");
    //$excel = new PHPExcel();
    $fileName = './trans_rate.xlsx';
    date_default_timezone_set('PRC');
    // 读取excel文件
    try {
    $objPHPExcel = \PHPExcel_IOFactory::load($fileName);
    $inputFileType = \PHPExcel_IOFactory::identify($fileName);
    $objReader = \PHPExcel_IOFactory::createReader($inputFileType);
    // $objPHPExcel = $objReader->load($fileName);
    // 确定要读取的sheet $sheet = $objPHPExcel->getSheet(0);
    $highestRow = $sheet->getHighestRow();
    $highestColumn = $sheet->getHighestColumn();
    // 获取一行的数据
    // $phone_str = '';
    for ($row = 3; $row = $highestRow; $row++) {
     $row_data = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
    //获取excel表中一行的数组数据
    //dump($row_data);
    $row_data = $row_data[0];
    $time = date('Y-m-d H:i:s', strtotime(trim($row_data[0])));
    $start_province = trim($row_data[1]);
    $start_city = trim($row_data[2]);
    ...
    // $phone_str .= '"' . $phone . '",';
    $where['phone'] = $phone;
    $id_arr = M(数据表名)->where($where)->getField('id');
    $user_id = !empty($id_arr) ? $id_arr : 0;
    $fields[] = [
    '数据表字段' => $user_id,//用户id
              ...
               ];
    }
    // dump($fields);
    $rate_add = M(数据表名)->addAll($fields);
    dump($rate_add);
    echo M()->getLastSql();
    if (!(0  $rate_add)) {
    CommonController::logProfile('添加excel数据,SQL:' . M()->getLastSql()); $this->endBack(0); }
    // echo $phone_str . 'br />';
    // dump($user_id);
    } catch (Exception $e) {
    die('加载文件发生错误:"' . pathinfo($fileName, PATHINFO_BASENAME) . '": ' . $e->getMessage()); } }}
    
    

    php读取excel表数据:

    ?php
    include 'ThinkPHP/Library/Vendor/PHPExcel/PHPExcel/IOFactory.php';
    
    $inputFileName = './trans_rate.xlsx';
    date_default_timezone_set('PRC');
    // 读取excel文件
    try {
      $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
      $objReader = PHPExcel_IOFactory::createReader($inputFileType);
      $objPHPExcel = $objReader->load($inputFileName);
    } catch(Exception $e) {
      die('加载文件发生错误:"'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
    }
    
    // 确定要读取的sheet
    $sheet = $objPHPExcel->getSheet(0);
    $highestRow = $sheet->getHighestRow();
    $highestColumn = $sheet->getHighestColumn();
    
    // 获取一行的数据
    for ($row = 1; $row = $highestRow; $row++){
    // Read a row of data into an array
    $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
    //这里得到的rowData都是一行的数据,得到数据后自行处理
    var_dump($rowData);
    echo "br>";
    }
    //$data为从excel中获取到的数组
    for ($i =0; $icount($data);$i++){
      echo 'br>';
      $gettime= explode('-',$data[$i][0]);
      if (checkdate($month=$gettime[0],$day=$gettime[1],$year=$gettime[2])){
        echo gmdate('Y-m-d',gmmktime(0,0,0,$month,$day,$year));
      }else{
        echo ($data[$i][0]);
      }
      echo '-----------';
      echo $data[$i][1];
    }
    
    
    ?php
    include 'ThinkPHP/Library/Vendor/PHPExcel/PHPExcel/IOFactory.php';
    
    $inputFileName = './test.xlsx';
    date_default_timezone_set('Asia/Shanghai');
    // 读取excel文件
    try {
      $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
      $objReader = PHPExcel_IOFactory::createReader($inputFileType);
      $objPHPExcel = $objReader->load($inputFileName);
    
      // 确定要读取的sheet,什么是sheet,看excel的右下角,真的不懂去百度吧
      $sheet = $objPHPExcel->getSheet(0);
      $highestRow = $sheet->getHighestRow();//最大行
      $highestColumn = $sheet->getHighestColumn();//最大列
    
      $data = array();
      for($rowIndex=2;$rowIndex=$highestRow;$rowIndex++){    //循环读取每个单元格的内容。注意行从1开始,列从A开始
        for($colIndex='A';$colIndex=$highestColumn;$colIndex++){
          $addr = $colIndex.$rowIndex;
          if($colIndex==="A"){ //指定H列为时间所在列
            $cell = gmdate("Y-m-d H:i:s", PHPExcel_Shared_Date::ExcelToPHP($sheet->getCell($addr)->getValue()));
    //        $cell = PHPExcel_Shared_Date::ExcelToPHP($sheet->getCell($addr)->getValue());
    //        var_dump($cell);die;
          }else{
            $cell = $sheet->getCell($addr)->getValue();
          }
    //      if($cell instanceof PHPExcel_RichText){ //富文本转换字符串
    //        $cell = $cell->__toString();
    //      }
          $data[$rowIndex][$colIndex] = $cell;
        }
      }
    //  return $data;
      var_dump($data);
    } catch(Exception $e) {
      die('加载文件发生错误:"'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
    }
    
    

    更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

    希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • thinkPHP5框架导出Excel文件简单操作示例
    • ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
    • ThinkPHP基于PHPExcel导入Excel文件的方法
    • 详解thinkphp实现excel数据的导入导出(附完整案例)
    • ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
    • thinkPHP实现将excel导入到数据库中的方法
    • Dwz与thinkphp整合下的数据导出到Excel实例
    • thinkphp3.2中实现phpexcel导出带生成图片示例
    • 基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
    • thinkPHP导出csv文件及用表格输出excel的方法
    • thinkphp5.1 框架导入/导出excel文件操作示例
    上一篇:Thinkphp 框架配置操作之配置加载与读取配置实例分析
    下一篇:PHPExcel实现的读取多工作表操作示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ThinkPHP 框架实现的读取excel导入数据库操作示例 ThinkPHP,框架,实现,的,读取,