插件窝 干货文章 【分享案例】ThinkPHP6.0 导出 Excel

【分享案例】ThinkPHP6.0 导出 Excel

amp 39 class Excel 981    来源:    2024-10-27

下面由thinkphp框架教程栏目给大家分享一个ThinkPHP6.0 导出 Excel 案例 ,希望对需要的朋友有所帮助!

(一)环境配置

  • 基础环境
    • 系统环境:Windows10 x64
    • PHP集成环境:phpEnv7.1.5(https://www.phpenv.cn/)
      • PHP7.4.4
      • MySQL8.0.19
      • Nginx1.16.1
    • 数据库管理工具:Navicat Premium 15.0.11
    • PHP依赖管理工具:Composer(https://getcomposer.org/Composer-Setup.exe)

(二)安装ThinkPHP6.0并配置

(1)安装thinkphp6.0

composer create-project topthink/think tp2excel

(2)安装Excel插件phpspreadsheet

composer require phpoffice/phpspreadsheet

(3)配置站点

PHPEnv的配置-站点配置

(4)配置Nginx重写

立即学习“PHP免费学习笔记(深入)”;

PHPEnv的配置-重写
(5)启动,查看首页

ThinkPHP6.0首页

(三)配置数据库与数据库设计

(1)数据库配置

数据库配置

(2)数据库建表(略)

(四)查询SQL数据并导出

(1)引入Spread.php插件

引入Spread.php插件
(2)查询数据并导出

<?php
namespace app\controller;

use app\BaseController;
use think\facade\Db;
use Tools\Spread;

class Index extends BaseController
{
    public function index()
    {
        return &#39;<html><a href="/index/excel.html?limit=2000">导出Excel</a><html>&#39;;
    }

    public function excel($limit = 10)
    {
        $expTableData = Db::table(&#39;b_demo&#39;)->limit($limit)->select();
        $fileName = "IP地址导出";
        $Excel[&#39;fileName&#39;]=$fileName.date(&#39;Y年m月d日-His&#39;,time());//or $xlsTitle
        $Excel[&#39;cellName&#39;]=[&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;];
        $Excel[&#39;H&#39;] = [&#39;A&#39;=>12,&#39;B&#39;=>22,&#39;C&#39;=>28,&#39;D&#39;=>38];//横向水平宽度
        $Excel[&#39;V&#39;] = [&#39;1&#39;=>40,&#39;2&#39;=>26];//纵向垂直高度
        $Excel[&#39;sheetTitle&#39;]=$fileName;//大标题,自定义
        $Excel[&#39;xlsCell&#39;]=[
            [&#39;id&#39;,&#39;编号&#39;],
            [&#39;start&#39;,&#39;开始IP&#39;],
            [&#39;end&#39;,&#39;结束IP&#39;],
            [&#39;disp&#39;,&#39;地区&#39;]];
        Spread::excelPut($Excel,$expTableData);
    }
}

(3)导出结果

导出结果