Thinkphp6Excel导入导出

thinkphp6 Excel导入导出 详解 composer下载 composer require phpoffice/phpspreadsheet 导入导出 <?php namespace app\index\lib; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; use think\exception\Validate. 阅读详情

1.composer下载phpspreadsheet

composer require phpoffice/phpspreadsheet

2.二次封装,类 

<?php
/**
 * Created by PhpStorm.
 * Author: Shadow
 * Date: 2021/12/14
 * Time: 8:00 上午
 * description: Excel.php
 */


namespace app\admin\lib;

use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use think\exception\ValidateException;
use think\facade\Filesystem;

class Excel
{
    /**
     * @param string $filename
     * @return array|string
     * @throws \PhpOffice\PhpSpreadsheet\Exception
     * @throws \PhpOffice\PhpSpreadsheet\Reader\Exception
     */
    public static function importExcel($filename = "")
    {
        $file[] = $filename;

        try {
            // 验证文件大小,名称等是否正确
            validate(['file' => 'fileSize:51200|fileExt:xls,xlsx'])
                ->check($file);
            // 将文件保存到本地
            $savename = Filesystem::disk('public')->putFile('file', $file[0]);
            // 截取后缀
            $fileExtendName = substr(strrchr($savename, '.'), 1);
            // 有Xls和Xlsx格式两种
            if ($fileExtendName == 'xlsx') {
                $objReader = IOFactory::createReader('Xlsx');
            } else {
                $objReader = IOFactory::createReader('Xls');
            }
            // 设置文件为只读
            $objReader->setReadDataOnly(TRUE);
            // 读取文件,tp6默认上传的文件,在runtime的相应目录下,可根据实际情况自己更改
            $objPHPExcel = $objReader->load(public_path() . '/storage/' . $savename);
            //excel中的第一张sheet
            $sheet = $objPHPExcel->getSheet(0);
            // 取得总行数
            $highestRow = $sheet->getHighestRow();
            // 取得总列数
            $highestColumn = $sheet->getHighestColumn();
            Coordinate::columnIndexFromString($highestColumn);
            $lines = $highestRow - 1;
            if ($lines <= 0) {
                return "数据为空数组";
            }
            // 直接取出excle中的数据
            $data = $objPHPExcel->getActiveSheet()->toArray();
            // 删除第一个元素(表头)
            array_shift($data);
            //删除文件
            unlink(public_path() . '/storage/' . $savename);
            // 返回结果
            return $data;
        } catch (ValidateException $e) {
            return $e->getMessage();
        }
    }

    // 导出
    public static function export($header = [], $type = true, $data = [], $fileName = "1910")
    {
        // 实例化类
        $preadsheet = new Spreadsheet();
        // 创建sheet
        $sheet = $preadsheet->getActiveSheet();
        // 循环设置表头数据
        foreach ($header as $k => $v) {
            $sheet->setCellValue($k, $v);
        }
        // 生成数据
        $sheet->fromArray($data, null, "A2");
        // 样式设置
        $sheet->getDefaultColumnDimension()->setWidth(12);
        // 设置下载与后缀
        if ($type) {
            header("Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            $type = "Xlsx";
            $suffix = "xlsx";
        } else {
            header("Content-Type:application/vnd.ms-excel");
            $type = "Xls";
            $suffix = "xls";
        }
        ob_end_clean();//清楚缓存区
        // 激活浏览器窗口
        header("Content-Disposition:attachment;filename=$fileName.$suffix");
        //缓存控制
        header("Cache-Control:max-age=0");
        // 调用方法执行下载
        $writer = IOFactory::createWriter($preadsheet, $type);
        // 数据流
        $writer->save("php://output");
    }
}

 3.form表单页面 

<!--    //导入-->
    <form action="index" method="post" enctype="multipart/form-data">
        <input type="file" name="myfile">
        <input type="submit" value="提交">
    </form>
<!--    导出-->
    <a href="{:url('./get')}"><button type="button" class="btn btn-primary">导出</button></a>

 4.路由

//导入
Route::any('index', 'UserControllers/index');
//导出
Route::get('get', 'UserControllers/get');

控制器层调用

excel的导入、导出

 //导入
    public function index(Request $request)
    {
        // 接收文件上传信息
        $files = $request->file("myfile");
        // 调用类库,读取excel中的内容
        $data = Excel::importExcel($files);
        $arr = [];
        foreach($data as $val){
            $arr[] = [
                'number'=>$val[1],
                'password'=>$val[2],
                'pwd'=>$val[3],
                'classify'=>$val[4],
                'photo'=>$val[5],
                'name'=>$val[6],
                'content'=>$val[7],
            ];
        }
        $obj = new User();
        $obj->saveAll($arr);
        if ($obj){
            return redirect('show');
        }
    }

    //导出
    public function get()
    {
        //设置表格的表头数据
        $header = ['A1' => "编号","B1" => "账号","C1" => "密码","D1" => "确认","E1" => "部门","F1" => "人脸对比检测照片","G1" => "姓名","H1" => "简介"];
        // 假设下面这个数组从数据库查询出的二维数组
        $data = User::select()->toArray();
        // 保存文件的类型
        $type= true;
        // 设置下载文件保存的名称
        $fileName = '信息导出'.time();
        // 调用方法导出excel
        Excel::export($header,$type,$data,$fileName);
    }

模型层

static function sel(){
    //查询所有数据
    return self::select();
}

硬件之光实战篇--Boost 当开关管处于关闭状态时,由于电感中的电流在短时间内不能瞬间消失,因此它会产生一个电感电动势,在电容器上加上一个高电压,从而使输出电压变高。--------------------------------------------------------分割线----------------------------------------------------------------在应用中,升压芯片需要根据负载电路的需求,选择合适的电感和电容等元器件,以达到所需要的升压倍数和输出电压。 阅读详情

相关推荐

Halcon与C#联合编程(一):使用S7协议实现机器视觉上位机与西门子PLC联动

本项目技术栈:C#基础,多线程,Halcon DirectShow,Halcon形状检测,Halcon QR码识别,西门子S7通讯协议,西门子PLC为核心的下位机及执行元件

虎鲸不是鱼 1万+

thinkphp6.0导出/导入excel

thinkphp6.0导出excel 使用phpoffice

munchmills的博客 2064

避坑指南:OpenWRT改AP模式必做的5个关键设置(DHCP/防火墙/WAN口处理)

本文详细解析了将OpenWRT设备从路由模式切换为AP模式时,必须完成的五个关键设置步骤。核心在于理解AP模式本质是带无线的智能交换机,需彻底关闭DHCP服务、调整防火墙策略、正确桥接所有物理接口(包括WAN口处理),并集成无线网络,以确保设备能透明接入主路由网络,避免出现设备隔离或无法互访等常见问题。

t1u2v的博客 738

ThinkPHP6 excel 导出功能完整实现

在 ThinkPHP 6.0 中实现 excel 导入导出功能,需要使用第三方库或扩展,例如 phpspreadsheet。

json_li的博客 2804

MATLAB代码实现了一个柱塞泵配流盘过流面积的计算和可视化功能

该MATLAB代码实现了一个柱塞泵配流盘过流面积的计算和可视化功能。输出曲线可直接用于验证设计的合理性(如是否存在过流面积突变或不足)。的不同范围,选择对应的几何模型计算过流面积。通过分段逻辑计算柱塞腔在不同旋转角度(过流面积在特定条件下会被限制(如。),确保结果符合物理实际。条件分支,根据旋转角度。

huanghm88的专栏 584

C/C++小宇宙代码(完整代码)

C语言实现小宇宙的完整代码。

AIGC 2526

php 导入、导出Excel教程

【代码】php 导入、导出Excel教程。

qq_58954197的博客 1040

【嘉立创EDA】从AD21导入pcb边界到嘉立创EDA专业版

有许多前期工程由AD进行完成,在后续update的过程中,由于开模等原因限制,部分pcb外型需要继续沿用,本文将此过程记录,以供有需要的读者参考。

l64481000的博客 4528

ThinkPHP6如何使用phpexcel导出excel并设置样式

thinkphp表格导出

北方的猿 978

Arduino开发实例-EMG 肌肉信号传感器

在医学研究中,测量肌肉的活动、收缩和扩张非常重要。 EMG 肌肉传感器测量肌肉活动并产生信号以显示扩张和收缩量。 因此,输出取决于所选肌肉的活动量。 3 绿色、红色和黄色电极连接到模块,用于传输来自肌肉运动的电信号。

视觉与物联智能 1701

从后端角度浅谈抗辐射设计----三模冗余(TMR)

三模冗余设计(TMR),是最常用的一种容错技术,三个模块采取相同的操作,以多数相同的输出作为表决系统的正确输出,即3取2,因为三个模块是相互独立的,而其中两个模块同时出错的概率是极小的,因此便可保证系统输出的可信度。然而这个设计也会存在面积浪费,功耗的增加,而且由于是冗余的设计,在后续进行综合或者pr的时候会被工具优化,因此需要对模块进行don’t touch设置;通过增值表得到,逻辑关系表达式为:Q=(Q1&Q2)|(Q1&Q3)|(Q2&Q3),通过工艺库的stdcell进行搭建,得到如下电路。

芯冰乐 329

ThinkPHP6轻松搞定Excel导入导出

上传成功之后,使用PhpOfficePhpSpreadsheetIOFactory类库中的方法,读取上传的Excel文件中的数据。安装完毕后,在controller层中引入PhpOfficePhpSpreadsheetSpreadsheet和PhpOfficePhpSpreadsheetWriterXlsx类库,这些类库将在我们的后面代码中使用。除了导出Excel,ThinkPHP6还可以实现Excel的导入功能。获取到Excel表格数据后,我们需要将数据遍历一遍,使用数组保存Excel表格的每一行数据。

weixin_45734165的博客 942

OPTEE:TA命令操作的实现(三)

上文我们创建好了通道,现在就是操作,怎么操作TA呢?REE侧的CA执行创建会话操作成功后,CA就可使用获取到的调用来让TA执行特定的命令。通过ioctl的系统调用发送到OP-TEE的驱动中,保存在共享内存中,并触发安全监控模式调用(smc)切换到Monitor模式(ARMv7)或EL3(ARMv8)中进行安全世界状态的处理。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1268

tp6 thinkphp6 excel导入导出 PHPExcel导入导出excel

tp6 thinkphp6用PHPExcel导入导出excel

5593

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ThinkPHP6轻松搞定Excel导入导出,让你的工作效率翻倍!

持续每天分享好用的软件源码

hulianwangjike的博客 780

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

thinkphp6 Excel导入导出 包含图片

composer下载 composer require phpoffice/phpspreadsheet public function export() { $data = $this->model->field('type_name,image,statusswitch')->select(); //创建一个新的excel文档 $newExcel = new Spreadsheet(); /.

jack_qinSer的博客 998

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Thinkphp6之Excel导入导出 数据案例及实战

Thinkphp6之Excel导入导出 数据案例及实战 精心创作

MrWangisgoodboy的博客 1085

thinkphp6 Excel导入导出

1.composer下载phpspreadsheet composer require phpoffice/phpspreadsheet 2.二次封装 <?php namespace app\index\lib; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; use think\e

qq_58467694的博客 565

thinkphp6使用PhpOffice导入导出excel

项目后台使用Thinkphp6+layuiAdmin,经常用到导入导出excel的功能,记录一下。

骷大人的博客 2238

thinkphp6 excel导入导出

composer下载phpspreadsheet composer require phpoffice/phpspreadsheet 封装一个类 :app\lib\Excel.php <?php namespace app\lib; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; use .

zb0109的博客 525

thinkphp6excel导入导出

<?php namespace app\api\business; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; use think\exception\ValidateException; use think\facade\Filesystem; class Excel { /.

zb0109的博客 307

ThinkPHP6 Excel导入导出

composer安装 composer require phpoffice/phpspreadsheet 封装 <?php namespace app\index\lib; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; use think\exception\ValidateExc

呀哈的博客 1265

Thinkphp6之excel导入导出

基于thinkphp6所进行的Excel的导入导出 Excel表格处理

H2912616818的博客 569

thinkPHP6的Excel导入导出

thinkPHP6的Excel导入导出 // 获取表单上传文件 $file[] = request()->file('file'); try { // 验证文件大小,名称等是否正确 validate(['file' => 'filesize:51200|fileExt:xls,xlsx']) ->...

Shanliangxiaobai的博客 734
上一篇: thinkphp6集成JWT
下一篇: ajax无刷新删除
陈卿诺语
博客等级 码龄5年 167粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值