phpExcel 官方停止更新,不支持php7.4以上版本,改用 phpspreadsheet

hykeda3年前ThinkPHP3504
composer require phpoffice/phpspreadsheet

安装后:

按需要引入文件

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use \PhpOffice\PhpSpreadsheet\IOFactory;

		//读取模板
 		$spreadsheet  = IOFactory::load(public_path('excel/exportOrder.xlsx'));
 		// 读取第一个工作表
        $excelSheet = $spreadsheet->getSheet(0);
        $activerow = 2;
        //插入所有需要的行数
        $excelSheet-> insertNewRowBefore(3, sizeof($customer));
          //移除行数
        $excelSheet->removeRow(2, 1);
        foreach ($customer as $k => $v) {
           $excelSheet->setCellValue('A'.$activerow, $v->email);
         
           $activerow++;
      	}
        $filename = '客户订单汇总'.$time.".xlsx";
        //直接输出到浏览器
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="'.$filename.'"');
        header('Cache-Control: max-age=0');
        $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet , 'Xlsx');
        $writer->save('php://output');


标签: excel

相关文章

thinkphp5 报错级别设置,屏蔽警告

本着严谨的原则,5.0版本默认情况下会对任何错误(包括警告错误)抛出异常,如果不希望如此严谨的抛出异常,可以在应用公共函数文件中(common.php)或者配置文件中使用error_report...

在thinkphp6中使用依赖注入或容器来创建对象

很多时候,在自己的控制器中需要调用另一个控制器中的方法,但是没有直接的继承关系,比如两个控制器同时继承了一个common类。如果我们直接new一个控制器中的类,就会提示Too few&nbs...

关于thinkphp6 where以数组形式查询,其中有or,and的处理

最近在写tp6的查询语句时,如果查询条件以数组形式传入,比如:$where[] = ['id','=',$id]; $where[] =...

thinkphp 行为Hook 使用说明

关于tp的钩子功能,梳理下: 添加行为标签位: tp默认在tags.php文件中已经添加了: return [ // 应用初始化...

thinkphp6 前置和后置中间件的区别以及特殊情况

首先官方文档是这么描述的:中间件是在请求具体的操作之前还是之后执行,完全取决于中间件的定义本身。下面是一个前置行为的中间件 (Before命名是随意的):<?php namespace&n...

thinkphp6 中间件使用笔记

最近开发三频道打通程序时用到了中间件,现总结一下:第一步:首先用命令行生成中间件php think make:middleware Check这个指令会 app...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。