中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何操作thinkphp5.1 框架導入/導出excel文件

發布時間:2021-03-08 15:29:27 來源:億速云 閱讀:216 作者:TREX 欄目:開發技術

這篇文章主要介紹“如何操作thinkphp5.1 框架導入/導出excel文件”,在日常操作中,相信很多人在如何操作thinkphp5.1 框架導入/導出excel文件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何操作thinkphp5.1 框架導入/導出excel文件”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

thinkphp5.1 導入excel文件

public function importExcel()
  {
    try {
      //獲取表格的大小,限制上傳表格的大小
      if ($_FILES['file']['size'] > 10 * 1024 * 1024) { //文件過大
        log_debug($log_title . 'END === MSG:' . '文件過大');
        parent::endBack(['state' => 0, 'msg' => '文件過大']);
      }
 
      //限制上傳表格類型
      $ext = substr(strrchr($_FILES['file']["name"], '.'), 1);
      if ($ext != 'xls' && $ext != 'xlsx') {
        log_debug($log_title . 'END === MSG:' . '文件格式不正確');
        parent::endBack(['state' => 0, 'msg' => '上傳文件必須為excel表格']);
      }
 
 
      //讀取表格
      $filename = $_FILES['file']['tmp_name'];
      $reader = IOFactory::createReader('Xlsx'); //Xls,Xlsx都可讀取
      $canRead = $reader->canRead($filename);
      if (!$canRead) {
        log_debug($log_title . 'END,文件格式不正確,SQL:' . Db::name('')->getLastSql());
        parent::endBack(['state' => 0, 'msg' => '文件格式不正確', 're_login' => false]);
      }
 
      $spreadsheet = $reader->load($filename); //載入excel表格
      $worksheet = $spreadsheet->getActiveSheet(); //選中sheet表
      $highestRow = $worksheet->getHighestRow(); // 總行數
//      $highestColumn = $worksheet->getHighestColumn(); // 總列數
 
      if (!(0 < $highestRow)) {
        log_debug($log_title . 'END,文件內容空,SQL:' . Db::name('')->getLastSql());
        parent::endBack(['state' => 0, 'msg' => '文件沒有數據', 're_login' => false]);
      }
 
 
      //循環讀取--有效判斷
      $sst_word_arr = []; //存放敏感詞的數組
      for ($row = 1; $row <= $highestRow; $row++) {
        //取列數A列的數據
        $tmp_word = $spreadsheet->getActiveSheet()->getCell('A' . $row)->getValue();
        if ('' != trim($tmp_word) && null != $tmp_word) {
          $sst_word_arr[] = $tmp_word;
          break; //發現有效數據,直接退出,接下來插入數據
        }
      }
//      $sst_word_arr = array_unique($sst_word_arr);
 
      if (empty($sst_word_arr)) {
        log_debug($log_title . 'END,文件無有效數據,SQL:' . Db::name('')->getLastSql());
        parent::endBack(['state' => 0, 'msg' => '文件無有效數據', 're_login' => false]);
      }
 
      //判斷和數據庫操作
      for ($row = 2; $row <= $highestRow; $row++) {
        //取列數A列的數據
        $tmp_old_car_num = $spreadsheet->getActiveSheet()->getCell('A' . $row)->getValue();
 
        $car_num = trim($tmp_old_car_num);
        if ('' != $car_num && null != $car_num) {
          //數據庫操作
          }
        }
      }
 
      $ret_arr = [
        'state' => 1,
         //返回數據
      ];
 
      log_debug($log_title . 'END,SUCCESS');
      parent::endBack($ret_arr);
  } catch (\Exception $e) {
      //
    }
  }

excel文件格式為:

如何操作thinkphp5.1 框架導入/導出excel文件

thinkphp5.1 導出excel文件

namespase app\test;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class test {
  public function carNumsExport()
  {
    $log_title = '測試 => 車牌列表導出[' . __METHOD__ . '] ';
    try {
 
      $file_name = '《車牌列表》from y8zh - ' . $user_info['uid'] . '.xlsx';
      $file_relative_path = parent::$module_name . DIRECTORY_SEPARATOR . 'fcb_car_nums' . DIRECTORY_SEPARATOR;
      $file_path = parent::$api_file_root_path . $file_relative_path;
 
      // 已生成過則直接返回
      if (file_exists($file_path . $file_name)) {
        $ret_arr = [
          'state' => 1,
          'download_url' => parent::$api_file_get_url . $file_relative_path . $file_name,
        ];
        parent::endBack($ret_arr);
      }
 
      if (!is_dir($file_path)) {
        mkdir($file_path, 0777, true);
      }
 
      $spreadsheet = new Spreadsheet();
      $sheet = $spreadsheet->getActiveSheet();
 
      //獲取所有車牌號
      $car_nums = Db::connect('db_config_yun')->name('vechicle')->column('DISTINCT number');
 
      $i = 1;
        $sheet->setCellValue('A' . $i, '車牌號')->getStyle('A' . $i)->getFont()->setBold(true);
        $i++;
 
      // 表內容
      if (!empty($car_nums)) {
        foreach ($car_nums as $k_c => $v_c) {
          $sheet->setCellValue('A' . $i, $v_c);
          $i++;
        }
 
      }
 
      $writer = new Xlsx($spreadsheet);
      $writer->save($file_path . $file_name);
      $ret_arr = [
        'state' => 1,
        'download_url' => parent::$api_file_get_url . $file_relative_path . $file_name,
      ];
 
      log_debug($log_title . 'END === DOWNLOAD_URL:' . $ret_arr['download_url']);
      parent::endBack($ret_arr);
  } catch (\Exception $e) {
      //
    }
  }
}

到此,關于“如何操作thinkphp5.1 框架導入/導出excel文件”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广东省| 新余市| 老河口市| 新绛县| 涟水县| 安远县| 靖宇县| 泰顺县| 博乐市| 铅山县| 西城区| 塔河县| 苍梧县| 叶城县| 无极县| 法库县| 祁门县| 宜章县| 巴中市| 彰化市| 托克逊县| 太仆寺旗| 林甸县| 象山县| 宁晋县| 呼和浩特市| 新巴尔虎左旗| 河南省| 巨野县| 苏州市| 新绛县| 江川县| 林州市| 阿尔山市| 千阳县| 都江堰市| 郓城县| 鄂托克旗| 吴川市| 呼和浩特市| 合水县|