首页 > 编程语言 >php导出excel文件

php导出excel文件

时间:2022-12-31 15:33:22浏览次数:39  
标签:filedTitles excel 导出 arrayExportConfig file php

php导出excel文件

  • php版本>=7.4 小于8.2
  • phpQQ交流群159789818

composer安装


composer require death_satan/death_satan/satan-excel -vvv

导出示例


<?php

declare(strict_types=1);
/**
 * This is an extension of Death-Satan
 * Name PHP-Excel
 *
 * @link     https://www.cnblogs.com/death-satan
 */
use DeathSatan\SatanExcel\Export\ArrayExport;
use DeathSatan\SatanExcel\Export\Config\ArrayExportConfig;
use PhpOffice\PhpSpreadsheet\Spreadsheet;

require_once dirname(__DIR__) . '/vendor/autoload.php';

$data = [
    [
        'id' => 0,
        'name' => 1,
        'pass' => '123456',
    ],
    [
        'id' => 1,
        'name' => 2,
        'pass' => '123456',
    ],
];
$dataFields = ['id', 'name', 'pass'];
$filedTitles = [
    '序号', '名称', '密码',
];
$arrayExportConfig = new ArrayExportConfig();
// 设置要导出的数据
$arrayExportConfig->setData($data);
$arrayExportConfig->setFirstFields($filedTitles);

$arrayExportConfig->addEvent(
    ArrayExportConfig::EVENT_SAVING,
    function (Spreadsheet $spreadsheet) {
        // 保存前回调 在这里对要导出的文件 SpreadSheet进行操作
//        dump($spreadsheet);
    }
);
$arrayExportConfig->addEvent(
    ArrayExportConfig::EVENT_CELL_FORMAT,
    function (PhpOffice\PhpSpreadsheet\Cell\Cell $cell, array $raw) use ($dataFields, $filedTitles) {
        // 获取当前单元格值
        $cellValue = $cell->getValue();
        // 获取当前一列所属的下标
        $index = array_search($cellValue, $raw);
        $dataFieldValue = $dataFields[$index];
        $filedValue = $filedTitles[$index];
        echo sprintf('当前设置的值:%s,列名:%s,列标题:%s', $cellValue, $dataFieldValue, $filedValue) . "\n";
    }
);
$export = new ArrayExport($arrayExportConfig);

# 保存为文件
$file = $export->save();
# 获取保存
$file_path = $file->getRealPath();
// 将文件移动到当前目录下并且重命名为 demo.xlsx
copy($file_path, __DIR__ . DIRECTORY_SEPARATOR . 'demo.xlsx');


标签:filedTitles,excel,导出,arrayExportConfig,file,php
From: https://www.cnblogs.com/death-satan/p/php-export-excel.html

相关文章

  • EasyExcel读入数字类型数据时出现小数位增长现象
    背景最近使用easyexcel时碰到一个这样的问题,读取excel时出现了小数点精度问题。例如,0.137这个值,使用easyexcel解析后得到的BigDecimal对象就变成了0.13700000000000001,5.1......
  • 【web 开发基础】php 开发基础快速入门 (2)-PHP的程序开发
    前言PHP ( Hypertext Preprocessor,超文本预处理器)是一种被广泛应用开放源代码、多用途、运行在服务器端的脚本语言。在上一篇文章《​​【web开发基础】php开发基础......
  • 微信联系人一键导出的方法在这里
    6-1对于做微信私域流量、做网络销售的公司,有时候需要对公司的客户或者运营微信做一下备份,防止出现意外丢失的情况,但是在网上找的别的工具要么使用比较不方便,要么速度比较慢,......
  • 如何导出微信好友?通讯录好友保存
    6-4现在微信已经是日常使用最多的一个APP之一,同时也是工作上与客户联系最多的APP,随着时间流逝,在微信中保存的联系人会越来越多,相应地会有很多重要的联系人在微信里,这个时候......
  • spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工
    文章目录前言一、java导出PDF的几个工具1.PDFBox2.JasperReports/jFreeReport导出报表PDF3.itextpdf导出PDF(敲重点)二、springboot整合itextpdf三、两个案例1.写入......
  • 一个PHP7.3的SWOOLE镜像
    公司的swoole镜像是基于centos6.10,php版本是7.3,swoole的版本是4.5,但php没有安装yasd扩展!用这个镜像的容器跑项目,要想进行swoole的debug,还必须安装它!而这个扩展偏偏无法通......
  • easyExcel模板导出,流的形式
    这是一个easyexcel模板导出:https://gitee.com/xiao-hao123/easyexcel-demo.git下面这个使用的时候注意模板要用xls,也可以用xlsx,如果有问题改成xls,仅仅针对模板格式<......
  • python manage.py loaddata dumpdata 用于导出和导入数据库中的数据
    1.数据导出python manage.py dumpdata pythonmanage.pydumpdata[appname]>appname_data.json 指定appnamde导出指定app的数据(比如appname为cmdb)......
  • Docker 安装 PHP
    Docker安装PHPPHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及......
  • 前端使用xlsx file-saver xlsx-style导出
    import FileSaver from 'file-saver'import XLSXStyle from "xlsx-style";import XLSX from 'xlsx' vue2.0版本xlsx-style./cptable'报错:Can'tresolve......