L'importation de données est nécessaire dans de nombreux endroits. Comment utiliser ThinkPhp5.1 pour importer des données ? Ensuite, l'éditeur vous fera comprendre l'ensemble du processus ?
1 Préparation
L'éditeur implémente l'importation de données via PHPExcel, donc avant la production, vous devez d'abord télécharger les composants liés à PHPExcel. Actuellement, tp5.1 prend en charge l'installation du compositeur et l'éditeur a installé le composant PHPExcel via le compositeur. [Recommandé : Tutoriel vidéo thinkphp]
Avant l'installation, vous devez d'abord vous assurer que vous disposez du composant composer sur votre ordinateur. Si Composer n'est pas encore installé, vous pouvez exécuter la commande suivante sous Linux et Mac OS X :
.curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
Sous Windows, vous devez télécharger et exécuter Composer-Setup.exe, adresse de téléchargement :
https://www.kancloud.cn/manual/thinkphp5_1/353948
Après avoir installé composer, vous devez installer PHPExcel , win+R, ouvrez Exécutez l'interface, saisissez cmd, entrez dans l'interface de gestion, saisissez la lettre du lecteur où se trouve votre projet (ici, prenez le lecteur D comme exemple, le projet est dans D:phpstudy_proWWWmyapp.io), et puis cliquez sur Entrée :
Entrée : cd D : phpstudy_proWWWmyapp.io, localisez le répertoire où se trouve le projet
L'étape suivante consiste à installer le plug-in PHPExcel, saisissez : composer require phpoffice/phpexcel , cliquez sur Entrée pour lancer l'installation de PHPExcel.
2 Page de soumission frontale
html
<form class="layui-form" enctype="multipart/form-data"> <input type="hidden" name="type_id" value="{$type_id}"> <div class="layui-form-item" style="margin-left: 42px;"> <div class="layui-input-inline" style="width: 122px;"> <button type="button" class="layui-btn" name="file" lay-verify="file" id="test3"><i class="layui-icon"></i>上传文件</button> </div> </div> <div class="layui-form-item" style="margin-left: 42px;"> <div class="layui-input-inline"> <button class="layui-btn" lay-filter="add" lay-submit="add"> 导入 </button> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <div style="line-height: 35px;"> 注: <p>1.文件大小:请上传小于10M的文件</p> <p>2.文件类型:上传时首先 <span class="common-a"> <a href="/import/member.xlsx">下载导入模板</a> </span>,填好信息后上传</p> </div> </div> </div> </form>
js
<script> layui.use(['form', 'layer','upload'], function () { $ = layui.jquery; var form = layui.form , layer = layui.layer; var $ = layui.jquery, upload = layui.upload; upload.render({ elem: '#test3' ,url: '你的上传路径' ,accept: 'file' //普通文件 ,exts: 'xls|xlsx' ,size:'10240' ,done: function(res){ $('#test3').append('<input type="text" name="file" id="file" lay-verify="file" value="'+res.data +'" />') } }); //监听提交 form.on('submit(add)', function(data){ console.log(data); //发异步,把数据提交给php $.post('{:url(\'saveImportMember\')}',$('form').serialize(),function(data){ if(data.res == 1){ layer.msg(data.msg); setTimeout(function(){parent.window.location.reload();},1000); }else if(data.res == 0){ layer.alert(data.msg,{icon: 2}); }else{ layer.alert('操作失败',{icon: 2}); } }) return false; }); }); </script>
3 Traitement en arrière-plan
Voici un exemple de téléchargement d'un tableau d'informations sur les membres Les valeurs des champs incluses. sont : nom (nom), sexe (sexe), type d'adhésion (type_id), numéro d'identification (identité), numéro de membre (numéro), numéro de contact (téléphone), tri (tri), statut de membre (statut).
//上传excel文件 $file = Request::param('file'); //获取文件路径 $filePath = Env::get('root_path').'public'.DIRECTORY_SEPARATOR.$file; if($filePath == ''){ return ['res'=>0,'msg'=>'你上传的文件为空']; } $suffix = $this->DbSy->GetFileExt($file); //判断哪种类型 if($suffix=="xlsx"){ $reader = \PHPExcel_IOFactory::createReader('Excel2007'); }else{ $reader = \PHPExcel_IOFactory::createReader('Excel5'); } //载入excel文件 $excel = $reader->load("$filePath",$encode = 'utf-8'); //读取第一张表 $sheet = $excel->getSheet(0); //获取总行数 $row_num = $sheet->getHighestRow(); //获取总列数 $col_num = $sheet->getHighestColumn(); $time = time(); $data = []; //数组形式获取表格数据 $count = 0; $total = 0; $error_count = 0; for ($i = 2; $i <= $row_num; $i ++) { $type_id = Request::param('type_id'); $data['type_id'] = $type_id; $name = $sheet->getCell("A".$i)->getValue(); $sex = $sheet->getCell("B".$i)->getValue(); $identity = $sheet->getCell("C".$i)->getValue(); $telephone = $sheet->getCell("F".$i)->getValue(); $data['sort'] = $this->DbSy->getSort(5,'sort desc',array('type_id'=>$type_id)); if(!$identity){ return ['res'=>0,'msg'=>'身份证号不能为空']; } $data['identity'] = $identity; if(!$name){ return ['res'=>0,'msg'=>'姓名不能为空']; } $data['name'] = $name; if($sex=='男'){ $data['sex'] = 1; }elseif ($sex=='女'){ $data['sex'] = 2; }else{ $data['sex'] = 3; } $data['identity'] = $identity; $data['number'] = $this->DbSy->getNumber(5,'sort desc',array('type_id'=>$type_id)); if($telephone){ $data['telephone'] = $telephone; }else{ $data['telephone'] = ''; } $data['status'] = 5; $member = $this->DbSy->FindWhere(5,array('name'=>$name,'identity'=>$identity,'type_id'=>$type_id)); if($member){ /*$data['updatetime'] = time();*/ $info = $this->DbSy->editContent(5,$data,array('id'=>$member['id'])); if($info){ $total++; } }else{ // 读取单元格 $data['addtime'] = time(); $data['updatetime'] = time(); $info = $this->DbSy->insertGetId(5,$data); if($info){ $count++; }else{ $error_count++; } } } $msg = "成功导入".$count."条数据,重复".$total."条数据,导入失败".$error_count."条数据"; if($count > 0){ return ['res'=>1,'msg'=>$msg]; }else{ return ['res'=>0,'msg'=>$msg]; }
Ce qui précède est le résumé de l'éditeur de tous les processus d'importation d'informations à l'aide de TP5.1+PHPExcel. J'espère que cela sera utile à tout le monde.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

L'article traite du cadre de test intégré de ThinkPhP, mettant en évidence ses principales fonctionnalités telles que les tests d'unité et d'intégration, et comment il améliore la fiabilité des applications grâce à la détection précoce des bogues et à une meilleure qualité de code.

L'article discute de l'utilisation de ThinkPHP pour les flux de données boursières en temps réel, en se concentrant sur la configuration, la précision des données, l'optimisation et les mesures de sécurité.

L'article traite des considérations clés pour l'utilisation de ThinkPHP dans des architectures sans serveur, en se concentrant sur l'optimisation des performances, la conception sans état et la sécurité. Il met en évidence des avantages tels que la rentabilité et l'évolutivité, mais relève également des défis

L'article discute de la mise en œuvre de la découverte de services et de l'équilibrage des charges dans les microservices ThinkPHP, en se concentrant sur la configuration, les meilleures pratiques, les méthodes d'intégration et les outils recommandés. [159 caractères]

Le conteneur IOC de ThinkPhp propose des fonctionnalités avancées comme le chargement paresseux, la liaison contextuelle et l'injection de méthode pour une gestion efficace des dépendances dans les applications PHP. COMMANDE CHARACTER: 159

L'article discute de l'utilisation de ThinkPHP pour créer des outils de collaboration en temps réel, en se concentrant sur la configuration, l'intégration WebSocket et les meilleures pratiques de sécurité.

ThinkPHP profite aux applications SaaS avec sa conception légère, son architecture MVC et sa extensibilité. Il améliore l'évolutivité, accélère le développement et améliore la sécurité grâce à diverses fonctionnalités.

L'article décrit la création d'un système de file d'attente de tâches distribué à l'aide de ThinkPhp et RabbitMQ, en se concentrant sur l'installation, la configuration, la gestion des tâches et l'évolutivité. Les problèmes clés incluent assurer la haute disponibilité, éviter les pièges communs comme Imprope


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Version Mac de WebStorm
Outils de développement JavaScript utiles

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft