Maison > cadre php > PensezPHP > Comment importer Excel en utilisant PHPExcel dans thinkphp

Comment importer Excel en utilisant PHPExcel dans thinkphp

Libérer: 2020-05-13 09:06:23
avant
4498 Les gens l'ont consulté

Comment importer Excel en utilisant PHPExcel dans thinkphp

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']);
    }
}
Copier après la connexion

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=>.....)
Copier après la connexion

et en cas d'échec,

array(status->0,info=>'可以说明出错的原因',....)
Copier après la connexion
peut être renvoyé

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']);
            }
        }
Copier après la connexion

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';
Copier après la connexion
.

2. Obtenez la 0ème feuille d'Excel (Sheet1)

//获取excel文件
$objPHPExcel = \PHPExcel_IOFactory::load("uploads/$path");
$objPHPExcel->setActiveSheetIndex(0);
$sheet0=$objPHPExcel->getSheet(0);
Copier après la connexion

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[&#39;name&#39;]=$this->getExcelValue($sheet0,&#39;A&#39;.$i);
            $item[&#39;sex&#39;]=$this->getExcelValue($sheet0,&#39;B&#39;.$i);
            $item[&#39;contact&#39;]=$this->getExcelValue($sheet0,&#39;C&#39;.$i);
            $item[&#39;remark&#39;]=$this->getExcelValue($sheet0,&#39;D&#39;.$i);
            $item[&#39;addtime&#39;]=$this->getExcelValue($sheet0,&#39;E&#39;.$i);

            $data[]=$item;
        }
Copier après la connexion

3. les données

$success=0;
        $error=0;
        $sum=count($data);
        foreach($data as $k=>$v){
            if(M(&#39;temp_area3&#39;)->data($v)->add()){
                $success++;
            }else {
                $error++;
            }
        }

        echo "总{$sum}条,成功{$success}条,失败{$error}条。";
Copier après la connexion

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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal