PHPExcel入门(基于laravel 5.2)

PHPExcel:PHP操作Excel的完全指南 本文还有配套的精品资源,点击获取 简介: phpexcel 库让PHP开发者可以轻松读写Excel文件,无需外部软件转换。本文详细介绍了如何安装、创建、读取、写入以及处理复杂Excel数据,包括合并单元格、工作表管理、数据验证和性能优化。该库支持 .xls 和 .xlsx 格式,提供丰富的API以及内存和性能优化技巧,是数据导入导出... 阅读详情

简介

PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格、生成统计图表,非常适合用于做报表。

安装&配置

  1. 该项目的GitHub地址是:https://github.com/Maatwebsite/Laravel-Excel
  2. 使用composer安装 : composer require maatwebsite/excel ~2.0.0(laravel版本不同Excel可能不一样)
安装后的设置
2.1 在config/app.php中注册服务提供者到providers数组:
Maatwebsite\Excel\ExcelServiceProvider::class,
2.2 同样在config/app.php中注册门面到aliases数组:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
  • 这样PHPExcel就可以在项目中使用,简单的使用可以参考:例子

属性

  public function excel()
    {
        // 数据格式
        $cellData = [
            ['学号','姓名','成绩'],
            ['10001','AAAAA','99'],
            ['10002','BBBBB','92'],
            ['10003','CCCCC','95'],
            ['10004','DDDDD','89'],
            ['10005','EEEEE','96'],
        ];


        // 可以使用create文件名作为第一个参数的方法创建一个新的文件
        Excel::create('学生成绩',function($excel) use ($cellData){


            /***********  表的说明  ***************/
            // 表的标题
            $excel->setTitle('student score');
            // 作者
            $excel->setCreator('zhang')
                  ->setCompany('mathphp');
            // 备注
            $excel->setDescription('A demonstration to change the file properties');
            // 调用PHPExcel的本机方法:呼吁所有的本地PHPExcel方法$excel。
            // $excel->getDefaultStyle();


            // 在新创建的excel文件中创建一个新的工作表,请使用type参数的->sheet('表名')回调LaravelExcelWorksheet
            $excel->sheet('表1', function($sheet) use ($cellData){
                // 调用工作表方法
                // $sheet->protectCells('A1', $password);

                // 从数组中创建一个新的文件,使用
                //->fromArray($source, $nullValue, $startCell, $strictNullComparison, $headingGeneration)在sheet中;
                //或者您可以使用->with()。
                // 空比较:默认情况下,0显示为空单元格。如果要更改此行为,可以将第四个参数作为true:
                $sheet->fromArray(array(
                    array('data1', 'data2'),
                    array('data3', 'data4')
                )); 

        //第一个参数是数组,第2个参数设定的值和数组的值相同则会清除掉,
        //    第3个是从哪一格开始, 第4个是显示0,fasle表示不显示0
        例子:    $cellData = [];
                    foreach ($data as $v) {
                        $cell = [];
                        $cell['ID'] = $v->uid;
                        $cell['昵称'] = $v->nickname;
                        $cellData[] = $cell;
                    }
                 $sheet->fromArray($cellData, null, 'A1', true);
        // 这种输出比 $sheet->rows() 灵活。

                /********** 表格样式 ***********/
                // 如果要更改工作表的一般样式(不是单元格或范围特定),则可以使用该->setStyle()方法。
                $sheet->setStyle(array(
                    'font' => array(
                        'name'      =>  'Calibri',
                        'size'      =>  15,
                        'bold'      =>  true
                    )
                ));
                // $sheet->setFont(array(
                //     'family'     => 'Calibri',
                //     'size'       => '15',
                //     'bold'       => true
                // ));
                // 为工作表设置边框
                // $sheet->setBorder('A1:F10', 'thin');
                // 单元格大小
                // $sheet->setWidth(array(
                //     'A'     =>  5,
                //     'B'     =>  10
                // ));
                // 设置行高
                // $sheet->setHeight(array(
                //     1     =>  50,
                //     2     =>  25
                // ));
                // 设置单元格大小
                // $sheet->setSize(array(
                //     'A1' => array(
                //         'width'     => 50,
                //         'height'    => 500
                //     )
                // ));
                // 默认情况下,导出的文件将自动调整大小。要更改此行为,您可以更改配置或使用设置器:
                // $sheet->setAutoSize(false);
                // $sheet->setAutoSize(array(
                //     'A', 'C'
                // ));
                // 列合并
                // $sheet->mergeCells('A1:E1');
                // 合并列和行
                // $sheet->setMergeColumn(array(
                //     'columns' => array('A','B','C','D'),
                //     'rows' => array(
                //         array(2,3),
                //         array(5,11),
                //     )
                // ));
                // 列格式化
                // $sheet->setColumnFormat(array(
                //     'C' => '0%'
                // ));
                // $sheet->setColumnFormat(array(
                //     'A2:K2' => '0000'
                // ));
                // $sheet->setColumnFormat(array(
                //     'B' => '0',
                //     'D' => '0.00',
                //     'F' => '@',
                //     'F' => 'yyyy-mm-dd',
                // ));


                // *******操纵某行:更改单元格值***************
                $sheet->row(1, array(
                     'test1', 'test2'
                ));
                // 更改行的单元格背景
                $sheet->row(1, function($row) {
                    $row->setBackground('#000000');
                });
                // 追加行,不加第一个参数默认追加到追后
                $sheet->appendRow(6, array(
                    'appended', 'appended'
                ));
                // 前置行
                $sheet->prependRow(1, array(
                    'prepended', 'prepended'
                ));
                // 附加多行
                $sheet->rows(array(
                    array('test1', 'test2'),
                    array('test3', 'test4')
                ));
                // 冻结行
                // $sheet->freezeFirstRow();
                // $sheet->freezeFirstColumn();
                // $sheet->freezeFirstRowAndColumn();
                // $sheet->setFreeze('A2');



                /*********** 单元格操作 ***************/
                $sheet->cell('A1', function($cell) {
                    $cell->setValue('cell1');
                });
                $sheet->cells('A1:A5', function($cells) {
                    $cells->setFontColor('#ffffff');
                    $cells->setBackground('#444');
                    $cells->setFontFamily('Calibri');
                    $cells->setFontSize(16);
                    // 字体统一操作
                    // $cells->setFont(array(
                    //     'family'     => 'Calibri',
                    //     'size'       => '16',
                    //     'bold'       =>  true
                    // ));
                    // 单元格边框
                    $cells->setBorder(array(
                        'top'   => array(
                            'style' => 'solid'
                        ),
                    ));
                    // 水平对齐
                    $cells->setAlignment('center');
                    // 垂直对齐
                    $cells->setValignment('center');
                });
                // 自动过滤
                // $sheet->setAutoFilter();
                // $sheet->setAutoFilter('A1:E10');

                // 默认页边距:可以在配置文件中设置默认的页边距excel::export.sheets。
                //它接受布尔值,单值或数组。要手动设置页边距,可以使用:->setPageMargin()
                $sheet->setPageMargin(array(
                    0.25, 0.30, 0.25, 1
                ));

                $sheet->rows($cellData);

            });

            // 创建多张表:可以在文件中设置任意数量的表格:
            $excel->sheet('表2', function($sheet) use ($cellData){
            // 密码保护工作表(只能读,不能写):一张表可以受密码保护$sheet->protect('密码'):
             $sheet->protect('123', function(\PHPExcel_Worksheet_Protection $protection) {
                    $protection->setSort(true);
                });

                $sheet->rows($cellData);
            });
        // 导出表 ->download('csv') or
        })->export('xls');
}
【PLC】三菱PLC控件安装疑难解析:Error Number:-119的全面解决方案 本文针对三菱PLC控件安装过程中常见的Error Number:-119错误,提供了深度解析与实战解决方案。该错误通常源于Windows系统权限限制或文件冲突。文章从理解错误本质入手,逐步介绍了以管理员身份运行、手动注册DLL文件、采用新版环境搭配旧版控件的黄金组合以及系统环境修复等四大招法,帮助用户彻底解决这一安装难题,确保工控软件稳定运行。 阅读详情

相关推荐

STC8单片机高精度EV1527解码实战:定时器捕获+状态机抗干扰方案

EV1527是一种广泛应用于433MHz无线遥控的曼彻斯特编码协议,其核心在于对脉宽时序(如同步头、逻辑0/1)的微秒级精确识别。传统外部中断+延时判别方式受MCU中断延迟、编译优化及环境噪声影响,极易导致误码;而基于硬件定时器输入捕获的解码方案,将时间测量交由硬件完成,显著提升时序鲁棒性与温度/电压适应性。该技术适用于STC8等无专用无线解码外设的8位单片机,在智能开关、晾衣架、车库门控等IoT终端中实现低至0.003%的稳定误码率。本文聚焦STC8H系列利用T1定时器下降沿捕获与有限状态机协同解码EV1

weixin_29188997的博客 181

Tp5.1phpexcel使用(详解)

耗费两天时间,各种百度谷歌,终于把phpexcel这块攻克下来!!! 1.phpexcel的下载与安装 其实一开始我是被这里绊住了,不知道为什么composer一直下载不下来。翻墙也没有用。 其实我手头是有phpexcel类库的,但是引入不到tp51.框架内: tp5.1废弃了import和vendor!!! 于是只剩下最后一种办法: PHP的引入基础:require_once 通过这个方法引入类...

weixin_43202364的博客 7096

线性回归做糖尿病分析(diabetes数据集),并分析单个特征值与病情的关系

1.diabetes数据集 共442个样本,每个样本有十个特征,分别是 [‘age’, ‘sex’, ‘bmi’, ‘bp’, ‘s1’, ‘s2’, ‘s3’, ‘s4’, ‘s5’, ‘s6’],对应年龄、性别、体质指数、平均血压、S1~S6一年后疾病级数指标。 Targets为一年后患疾病的定量指标,值在25到346之间。 ...

t18438605018的博客 1万+

PHPExcel 详解

PHPExcel 下载PHPExcel插件 慕课网学习 文件格式 Excel2007

我只是个小学生 能力有限 一直抱着学习的态度 4219

oVirt 4.4.10超详细安装指南:从零搭建企业级虚拟化环境(附常见错误排查)

本文提供了oVirt 4.4.10企业级虚拟化平台的超详细安装指南,涵盖环境规划、系统准备、Engine安装配置、计算节点部署、存储系统集成及高级运维技巧。通过实战操作手册和常见错误排查方法,帮助用户从零搭建稳定高效的虚拟化环境,特别适合企业IT管理员参考实施。

wasm7browser的博客 351

斗鱼直播间弹幕爬虫实战:WebSocket连接与实时数据采集

在数据驱动的时代,直播平台的弹幕数据蕴含着巨大的价值——用户行为分析、舆情监控、弹幕情感分析、直播热度评估等应用场景层出不穷。斗鱼作为国内领先的直播平台,其弹幕系统基于WebSocket协议实现实时双向通信。本文将带您从零开始,使用Python构建一个完整的斗鱼直播间弹幕爬虫系统。

2201_76125261的博客 138

laravel 导出 excel 实现自适应宽高,并自动换行

laravel 导出 excel 实现自适应宽高,并自动换行

qq_40265614的博客 650

【FPGA教程案例55】深度学习案例2——基于FPGA的CNN卷积神经网络之ReLu激活层verilog实现

在本课程中,我们将对CNN的ReLu函数模块的FPGA实现做详细的介绍和学习。从仿真结果可知,通过Rule激活函数之后,小于的输入数据输出为0,否则输出是输入本身。,我们对CNN的基本原理有了初步认识。ReLu函数具备如下优缺点。按照课程1相似的操作方式。

FPGA/MATLAB学习教程/源码/项目合作开发 2694

php phpexcel用法,PHPExcel用法

导入PHPExcel.php或者其他文件require_once 'PHPExcel.php';////require_once'PHPExcel/Writer/Excel5.php'; // 用于其他低版本xls// or////require_once'PHPExcel/Writer/Excel2007.php'; // 用于excel-2007 格式// 创建一个处理对象实例$obj...

weixin_36432875的博客 444

2026年华为od机试真题题库

OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)

面试高手的博客 19万+

【python数据挖掘课程】二十八.基于LDA和pyLDAvis的主题挖掘及可视化分析

这是《Python数据挖掘课程》系列文章,前面很多文章都讲解了数据挖掘、机器学习,这篇文章主要讲解LDA和pyLDAvis算法,同时讲解如何读取CSV文本内容进行主题挖掘及可视化展示。文章比较基础,希望对你有所帮助,提供些思路,也是自己教学的内容。推荐大家购买作者新书《Python网络数据爬取及分析从入门到精通(分析篇)》,如果文章中存在错误或不足之处,还请海涵。 目录: 一.显示结果及安装 二.LDA主题挖掘 三.pyLDAvis可视化分析 四.小结

杨秀璋的专栏 1万+

laravel PHPExcel使用

laravel自带PHPExcel组件,可以直接安装,具体步骤就不说了直接代码: //Excel文件导出功能 By Laravel学院 public function export(Request $request){ //获取ID $id = $request->id ? $request->id :''; //实例化model $order = new ord

weixin_40076986的博客 1130

ue 打包linux程序 在windows系统 2026

ue 打包linux程序 在windows系统 2026

jacke121的专栏 372

laravel使用PHPExcel

1、首先下载 https://github.com/PHPOffice/PHPExcel 2、在app文件夹下,新建一个libs文件夹.把第三方库放进去(就是把刚刚下载的PHPExcel解压放进去) 3、在composer中加载 找到项目根目录下的composer.json文件 找到里面配置项, autoload 在classmap里面加入类的路径 ,如下: ...

qq_41588568的博客 1524

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

廖雪峰Python教程[完整版]

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

laravel phpexcel 导入导出

laravel框架实现phpExcel导入导出,首先必须在laravel引入第三方类 1、在app目录下创建一个新的文件夹,命名libs(可自定义) 2、(可选)考虑到后面可能会引用很多库,so,在libs下再创建一个phpExcel文件夹,把phpExcel类放入此文件夹下。 3、找到根目录下的composer.json文件 4、找到composer.json中定义的(看我备注)   

qq920811275的博客 988

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

lavarel php5.2,laravel 5.2 使用phpexcel 导出 excel文件出问题

1.出现的问题2.导出代码(首先声明导出使用PHPExcel_IOFactory::createWriter($objExcel, ‘Excel5’)->save(outpath)导出正常)`//导出的文件名$outputFileName =iconv ( 'UTF-8', 'gb2312', date('Y-m-d_H-i-s',time()).'.xls' );//文件直接输出到浏览器o...

weixin_39653733的博客 372

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Laravel下使用PHPExcel生成关联图饼

PHPExcel下载 在app目录下面创建一个新目录libs 把下载好的PHPExcel文件放入libs目录下面 创建控制器 php artisan make:Controller 文件名 创建访问路由 创建方法: public function exportExcel(){ //引入最重要的PHPExcel类库的入口文件 require_once str_replac...

huangfenhu的博客 522

laravel框架集成PHPExcel讲解及demo

首先,由于业务需求,需要把一些数据用excel导出,给硬件人员看。由于我自己用的是laravel 的一键安装包,所以使用laravel自带的Excel就成为了一种奢望。因此,这里使用PHPExcel,这个通用性较强的第三方。一、下载并引入到项目中1、先去PHPExcel官网下载,直接去gitHub上下载即可。地址: https://github.com/PHPOffice/PHPExcel2、将下

铁柱的博客 6008

laravel集成phpExcel导出数据

超简单的方法 下载phpExcel 直接去github下载 https://github.com/PHPOffice/PHPExcel 存放到项目中 在app文件夹下,新建一个libs文件夹.把第三方库放进去 在composer中加载 找到项目根目录下的composer.json文件 找到里面配置项, autoload 在classmap里面加入类的路径 例如app/libs/PHPExcel...

AC即性感 1201

laravel框架实现phpExcel导入导出

laravel框架实现phpExcel导入导出,首先必须在laravel引入第三方类 1、在app目录下创建一个新的文件夹,命名libs(可自定义) 2、(可选)考虑到后面可能会引用很多库,so,在libs下再创建一个phpExcel文件夹,把phpExcel类放入此文件夹下。 3、找到根目录下的composer.json文件 4、找到composer.json中定义的(看我备注)   

Quiet_boy 647

[汇总信息] Laravel 上使用 phpexcel的两种方式

文章采集与网上 方式1。使用原生的phpexcel , http://blog.csdn.net/CSwfe/article/details/52748046?locationNum=1 1、在app目录下创建一个新的文件夹,命名libs(可自定义)  app/libs/phpExcel 2、(可选)考虑到后面可能会引用很多库,so,在libs下再创建一个phpExce

AI 前沿技术实战博客:LLM / Agent / AI 制药 / 生信四大栏目日更,硬核干货 + 可复现代码,看完就能上手 5130

laravel 5.3 php版本,001-laravel 5.3 升级到 laravel 5.5

记录升级时的问题与执行步骤第一步 修改composer.json(项目根目录下)配置:..."require": {..."laravel/framework": "5.5.*",...}..."require-dev": {..."phpunit/phpunit": "^7.0",...}...第二步 执行更新并删除缓存、文件composer update -vvvcomposer update...

weixin_40006763的博客 213

PHPExcel与Laravel集成指南:5个简单步骤实现高效电子表格处理 [特殊字符]

在现代Web开发中,**PHPExcel**与**Laravel**的集成能够为你的应用程序提供强大的电子表格处理能力。无论你是需要导出报表、导入数据还是生成复杂的Excel文档,PHPExcel都能在Laravel框架中发挥重要作用。本文将详细介绍如何在Laravel项目中高效使用PHPExcel进行电子表格操作。 ## 📊 PHPExcel简介与项目现状 **PHPExcel**是一个功

gitblog_00067的博客 1019

Laravel 加载PHPEXCEL

Laravel 4 "maatwebsite/excel": "~1.3" Laravel 5 "maatwebsite/excel": "~2.0" "require-dev": { "fzaninotto/faker": "~1.4", "mockery/mockery": "0.9.*", "phpunit/phpunit"

Able 4181

Laravel5框架中使用PHPExcel详细步骤总结

参考Laravel-excel官网:http://www.maatwebsite.nl/laravel-excel/docs/getting-started第一步:框架要求满足相应基础条件laravel版本5.+第二步:执行如下命令安装依赖及扩展:composer require maatwebsite/excel ~2.1.0执行成功的结果大概是这样,如下图:第二步:在laravel框架根目录找...

丁丁丁梦涛的博客 6432
上一篇: MySQL常用操作
下一篇: laravel手动创建分页
小Z笔记
博客等级 码龄9年 11粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值