首页后端开发PHPThinkphp5中导入导出excel文件的代码是什么

Thinkphp5中导入导出excel文件的代码是什么

时间2024-03-22 12:56:03发布访客分类PHP浏览1370
导读:这篇文章给大家分享的是“Thinkphp5中导入导出excel文件的代码是什么”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“Thinkphp5中导入导出excel文件的代码是什么...
这篇文章给大家分享的是“Thinkphp5中导入导出excel文件的代码是什么”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“Thinkphp5中导入导出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文件

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中导入导出excel文件的代码是什么的介绍啦,需要的朋友可以参考上述内容,希望对大家有帮助,欢迎关注网络,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Thinkphp5中导入导出excel文件的代码是什么
本文地址: https://pptw.com/jishu/650529.html
Thinkphp5数据库高级查询怎样做,技巧是什么 Python面向对象的术语有哪些,Python类怎样构建

游客 回复需填写必要信息