Maison  >  Article  >  développement back-end  >  TP5.0 Exportation et importation de tables de données PHPExcel

TP5.0 Exportation et importation de tables de données PHPExcel

藏色散人
藏色散人avant
2019-07-24 14:11:473652parcourir

1. Téléchargez d'abord la bibliothèque de classes PHPexcel depuis github

ou téléchargez la bibliothèque de classes PHPexcel via le lien suivant.

http://www.php.cn/xiazai/leiku/1491

2 Après l'avoir décompressé, copiez-le pour l'étendre

Le code du contrôleur est le suivant :

<?php
/**
 * Created by PhpStorm.
 * User: luxiao
 * Date: 2017/5/8
 * Time: 16:49
 */
namespace app\index\controller;
use think\Loader;
use think\Controller;
class Excel extends Controller
{
    function excel()
    {
        $path = dirname(__FILE__); //找到当前脚本所在路径
        Loader::import(&#39;PHPExcel.Classes.PHPExcel&#39;);  //手动引入PHPExcel.php
        Loader::import(&#39;PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory&#39;);  //引入IOFactory.php 文件里面的PHPExcel_IOFactory这个类
        $PHPExcel = new \PHPExcel();  //实例化
        $PHPSheet = $PHPExcel->getActiveSheet(); 
        $PHPSheet->setTitle("demo"); //给当前活动sheet设置名称
        $PHPSheet->setCellValue("A1","姓名")->setCellValue("B1","分数");//表格数据
        $PHPSheet->setCellValue("A2","张三")->setCellValue("B2","2121");//表格数据
        $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,"Excel2007");  //创建生成的格式
        header(&#39;Content-Disposition: attachment;filename="表单数据.xlsx"&#39;);  //下载下来的表格名
        header(&#39;Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&#39;);
        $PHPWriter->save("php://output"); //表示在$path路径下面生成demo.xlsx文件
    }
}

Appelez la méthode Excel pour générer une table, puis écrivez vous-même le code en fonction de vos propres besoins.

Les données de la table PHPexcel sont importées dans la table de ville de la base de données, avant cela, créez le formulaire vous-même. Cette fois, j'ai utilisé la table de données d'adresse pour tester :

function inserExcel()
    {
        Loader::import(&#39;PHPExcel.Classes.PHPExcel&#39;);
        Loader::import(&#39;PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory&#39;);
        Loader::import(&#39;PHPExcel.Classes.PHPExcel.Reader.Excel5&#39;);
        //获取表单上传文件
        $file = request()->file(&#39;excel&#39;);
        $info = $file->validate([&#39;ext&#39; => &#39;xlsx&#39;])->move(ROOT_PATH . &#39;public&#39; . DS . &#39;uploads&#39;);  //上传验证后缀名,以及上传之后移动的地址
        if ($info) {
//            echo $info->getFilename();
            $exclePath = $info->getSaveName();  //获取文件名
            $file_name = ROOT_PATH . &#39;public&#39; . DS . &#39;uploads&#39; . DS . $exclePath;   //上传文件的地址
            $objReader =\PHPExcel_IOFactory::createReader(&#39;Excel2007&#39;);
            $obj_PHPExcel =$objReader->load($file_name, $encode = &#39;utf-8&#39;);  //加载文件内容,编码utf-8
            echo "<pre class="brush:php;toolbar:false">";
            $excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式
            array_shift($excel_array);  //删除第一个数组(标题);
            $city = [];
            foreach($excel_array as $k=>$v) {
                $city[$k][&#39;Id&#39;] = $v[0];
                $city[$k][&#39;code&#39;] = $v[1];
                $city[$k][&#39;path&#39;] = $v[2];
                $city[$k][&#39;pcode&#39;] = $v[3];
                $city[$k][&#39;name&#39;] = $v[4];
            }
            Db::name(&#39;city&#39;)->insertAll($city); //批量插入数据
        } else {
            echo $file->getError();
        }

Code frontal :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="http://localhost/chexian5.0/index.php/index/excel/intoexcel" enctype="multipart/form-data" method="post">
    <input type="file" name="excel" />
    <input type="submit" value="导入">
</form>
</body>
</html>

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer