thinkpphp 5.1 프레임 워 크 가 져 오기/엑셀 파일 내 보 내기 작업 예제

이 사례 는 thinkpp 5.1 프레임 워 크 가 져 오기/엑셀 파일 내 보 내기 작업 을 설명 합 니 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
thinkpop 5.1 엑셀 파일 가 져 오기

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 파일 형식:

thinkpphp 5.1 엑셀 파일 내 보 내기

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) {
      //
    }
  }
}

thinkpHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 는 ThinkPHP 프레임 워 크 를 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기