本文实例讲述了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文件
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入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年11月29日
2024年11月29日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]