最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

thinkphp5.1 框架導(dǎo)入/導(dǎo)出excel文件操作示例

 更新時間:2020年05月25日 11:10:20   作者:人生如初見_張默  
這篇文章主要介紹了thinkphp5.1 框架導(dǎo)入/導(dǎo)出excel文件操作,結(jié)合實例形式分析了thinkphp5.1 框架導(dǎo)入/導(dǎo)出excel文件具體操作實現(xiàn)技巧與相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了thinkphp5.1 框架導(dǎo)入/導(dǎo)出excel文件操作。分享給大家供大家參考,具體如下:

thinkphp5.1 導(dǎo)入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(); // 總行數(shù)
//      $highestColumn = $worksheet->getHighestColumn(); // 總列數(shù)
 
      if (!(0 < $highestRow)) {
        log_debug($log_title . 'END,文件內(nèi)容空,SQL:' . Db::name('')->getLastSql());
        parent::endBack(['state' => 0, 'msg' => '文件沒有數(shù)據(jù)', 're_login' => false]);
      }
 
 
      //循環(huán)讀取--有效判斷
      $sst_word_arr = []; //存放敏感詞的數(shù)組
      for ($row = 1; $row <= $highestRow; $row++) {
        //取列數(shù)A列的數(shù)據(jù)
        $tmp_word = $spreadsheet->getActiveSheet()->getCell('A' . $row)->getValue();
        if ('' != trim($tmp_word) && null != $tmp_word) {
          $sst_word_arr[] = $tmp_word;
          break; //發(fā)現(xiàn)有效數(shù)據(jù),直接退出,接下來插入數(shù)據(jù)
        }
      }
//      $sst_word_arr = array_unique($sst_word_arr);
 
      if (empty($sst_word_arr)) {
        log_debug($log_title . 'END,文件無有效數(shù)據(jù),SQL:' . Db::name('')->getLastSql());
        parent::endBack(['state' => 0, 'msg' => '文件無有效數(shù)據(jù)', 're_login' => false]);
      }
 
      //判斷和數(shù)據(jù)庫操作
      for ($row = 2; $row <= $highestRow; $row++) {
        //取列數(shù)A列的數(shù)據(jù)
        $tmp_old_car_num = $spreadsheet->getActiveSheet()->getCell('A' . $row)->getValue();
 
        $car_num = trim($tmp_old_car_num);
        if ('' != $car_num && null != $car_num) {
          //數(shù)據(jù)庫操作
          }
        }
      }
 
      $ret_arr = [
        'state' => 1,
         //返回數(shù)據(jù)
      ];
 
      log_debug($log_title . 'END,SUCCESS');
      parent::endBack($ret_arr);
  } catch (\Exception $e) {
      //
    }
  }

excel文件格式為:

thinkphp5.1 導(dǎo)出excel文件

namespase app\test;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class test {
  public function carNumsExport()
  {
    $log_title = '測試 => 車牌列表導(dǎo)出[' . __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++;
 
      // 表內(nè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) {
      //
    }
  }
}

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。

希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。

相關(guān)文章

  • php使用GeoIP庫實例

    php使用GeoIP庫實例

    這篇文章主要介紹了php使用GeoIP庫實例,本文給出了細分到國家、細分到城市的代碼實例,需要的朋友可以參考下
    2014-06-06
  • PHP驗證終端類型是否為手機的簡單實例

    PHP驗證終端類型是否為手機的簡單實例

    下面小編就為大家?guī)硪黄狿HP驗證終端類型是否為手機的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十六)

    PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十六)

    這篇文章主要介紹了PHP網(wǎng)頁游戲Xnova(ogame)源碼解讀的攻擊任務(wù)頁面的代碼流程,需要的朋友可以參考下
    2014-06-06
  • 在PHP8中向數(shù)組添加元素的常用方法

    在PHP8中向數(shù)組添加元素的常用方法

    這篇文章主要介紹了在PHP8中向數(shù)組添加元素的常用方法,在這里主要講解幾個常用的方法:使用方括號[]添加元素、使用array_unshift()函數(shù),向數(shù)組的頭部添加元素、使用array_push()函數(shù),向數(shù)組的尾部添加元素、使用array_splice()函數(shù)添加元素,需要的朋友可以參考下
    2023-09-09
  • 詳解PHP如何更好的利用PHPstorm的自動提示

    詳解PHP如何更好的利用PHPstorm的自動提示

    本篇文章主要介紹了詳解PHP如何更好的利用PHPstorm的自動提示,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • laravel返回統(tǒng)一格式錯誤碼問題

    laravel返回統(tǒng)一格式錯誤碼問題

    在使用yii和laravel的過程中,兩個框架對web-api都非常友好,也都對restful做了不同程度的支持,但是還是遇到了一些問題,下面以laravel6.4為例,簡單描述下我遇到的問題,需要的朋友參考下吧
    2019-11-11
  • thinkPHP5框架分頁樣式類完整示例

    thinkPHP5框架分頁樣式類完整示例

    這篇文章主要介紹了thinkPHP5框架分頁樣式類,結(jié)合完整實例形式分析了thinkPHP5帶css樣式控制的分頁類定義與簡單使用方法,需要的朋友可以參考下
    2018-09-09
  • thinkPHP5.0框架API優(yōu)化后的友好性分析

    thinkPHP5.0框架API優(yōu)化后的友好性分析

    這篇文章主要介紹了thinkPHP5.0框架API優(yōu)化后的友好性,結(jié)合具體實例分析了thinkPHP5.0框架進行API優(yōu)化后在數(shù)據(jù)輸出及錯誤調(diào)試方面的友好性改進,需要的朋友可以參考下
    2017-03-03
  • php+webSoket實現(xiàn)聊天室示例代碼(附源碼)

    php+webSoket實現(xiàn)聊天室示例代碼(附源碼)

    本篇文章主要介紹了php+webSoket搭建chatServer示例(附源碼)的資料,這里整理了詳細的代碼,有需要的小伙伴可以參考下。
    2017-02-02
  • 基于PHP實現(xiàn)發(fā)微博動態(tài)代碼實例

    基于PHP實現(xiàn)發(fā)微博動態(tài)代碼實例

    這篇文章主要介紹了基于PHP實現(xiàn)發(fā)微博動態(tài)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12

最新評論

开阳县| 大埔县| 朝阳市| 安龙县| 定结县| 视频| 嘉峪关市| 抚州市| 永城市| 瓦房店市| 湟中县| 苍溪县| 洪湖市| 彰武县| 昌宁县| 天台县| 彩票| 沙田区| 临城县| 平和县| 台南市| 黄浦区| 固阳县| 波密县| 元氏县| 丹阳市| 新郑市| 平阴县| 彭州市| 精河县| 铁力市| 栖霞市| 建德市| 芜湖县| 鹰潭市| 孟州市| 新干县| 嵊州市| 桦甸市| 永康市| 正宁县|