Introduction à la façon dont thinkphp importe Excel :
Idées de développement
1. Téléchargez d'abord le fichier Excel sur le serveur
2. Obtenez le contenu du fichier Excel du serveur
3. Écrivez dans la base de données
1. Téléchargez le fichier Excel en utilisant la méthode de téléchargement "ThinkUpload();" PHP, ce qui est très pratique à réaliser. Pour cette raison, j'ai trouvé la manière la plus simple d'utiliser cette méthode
/** * TODO 上传文件方法 * @param $fileid form表单file的name值 * @param $dir 上传到uploads目录的$dir文件夹里 * @param int $maxsize 最大上传限制,默认1024000 byte * @param array $exts 允许上传文件类型 默认array('gif','jpg','jpeg','bmp','png') * @return array 返回array,失败status=0 成功status=1,filepath=newspost/2014-9-9/a.jpg */ function uploadfile($fileid,$dir,$maxsize=5242880,$exts=array('gif','jpg','jpeg','bmp','png'),$maxwidth=430){ $upload = new \Think\Upload();// 实例化上传类 $upload->maxSize = $maxsize;// 设置附件上传大小,单位字节(微信图片限制1M $upload->exts = $exts;// 设置附件上传类型 $upload->rootPath = './uploads/'; // 设置附件上传根目录 $upload->savePath = $dir.'/'; // 设置附件上传(子)目录 // 上传文件 $info = $upload->upload(); if(!$info) {// 上传错误提示错误信息 return array(status=>0,msg=>$upload->getError()); }else{// 上传成功 return array(status=>1,msg=>'上传成功',filepath=>$info[$fileid]['savepath'].$info[$fileid]['savename']); } }
Par défaut, elle est téléchargée dans le dossier uploads où se trouve le fichier d'entrée ThinkPHP index.php. Cette méthode renvoie une donnée, et. le statut est succès lorsque status=1. Il est recommandé que lors de l'écriture de modules fonctionnels ou de l'encapsulation, l'ensemble du système ait un accord au début de l'architecture. Si nécessaire, la valeur de retour soit sous la forme d'un tableau. Renvoie avec succès
return array(status=>1,data=>....,info=>.....)
et en cas d'échec,
array(status->0,info=>'可以说明出错的原因',....)
L'utilisation d'une approche unifiée de cette manière est propice à un développement standardisé. Elle peut améliorer l'efficacité et réduire la réflexion lors de l'examen du code. collaboration en équipe. Pour parler franchement, la méthode de téléchargement s'appelle comme suit :
//excel 文件 if(!empty($_FILES['xls']['name'])){ $upload=uploadfile('xls','tempxls',5242880,array('xls','xlsx')); if($upload['status']){ $path=$upload['filepath']; }else{ $this->error($upload['msg']); } }
2. Obtenir des données Excel
1 Tout d'abord, vous devez introduire la bibliothèque de classes PHPExcel
require_once 'module/PHPExcel/Classes/PHPExcel/IOFactory.php';
2. Obtenez la 0ème feuille d'Excel (Sheet1)
//获取excel文件 $objPHPExcel = \PHPExcel_IOFactory::load("uploads/$path"); $objPHPExcel->setActiveSheetIndex(0); $sheet0=$objPHPExcel->getSheet(0);
3. Obtenez le nombre de lignes et mettez les données. Lisez le tableau $data
$rowCount=$sheet0->getHighestRow();//excel行数 $data=array(); for ($i = 2; $i <= $rowCount; $i++){ $item['name']=$this->getExcelValue($sheet0,'A'.$i); $item['sex']=$this->getExcelValue($sheet0,'B'.$i); $item['contact']=$this->getExcelValue($sheet0,'C'.$i); $item['remark']=$this->getExcelValue($sheet0,'D'.$i); $item['addtime']=$this->getExcelValue($sheet0,'E'.$i); $data[]=$item; }
3. les données
$success=0; $error=0; $sum=count($data); foreach($data as $k=>$v){ if(M('temp_area3')->data($v)->add()){ $success++; }else { $error++; } } echo "总{$sum}条,成功{$success}条,失败{$error}条。";
Tutoriel recommandé : "TP5"
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!