使用PhpSpreadsheet插件导出Excel文件

最近,在做公司的项目的时候,需要导出Excel文件以方便跟其他系统进行数据对接。我理所当然的想到了PHPExcel,然后我就去找插件包,结果发现 phpexcel.png emmmmmm,好吧,那我们来研究下这个PhpSpreadsheet

ps:研究之前我先把一些有关链接发出来

Github地址:https://github.com/PHPOffice/PhpSpreadsheet 官方文档:https://phpspreadsheet.readthedocs.io/en/latest/
官方API文档:https://phpoffice.github.io/PhpSpreadsheet/master/ Gitter社区:https://gitter.im/PHPOffice/PhpSpreadsheet Stackoverflow社区:https://stackoverflow.com/questions/tagged/phpspreadsheet

首先,composer下载插件包,至于如何安装并使用composer,麻烦移步baidu,google;

composer require phpoffice/phpspreadsheet

首先我引入文件

因为我是读一张原表并且填入数据生成新表,所以我这边没有什么太多的结构层改变,仅仅引用三个文件就行 ```php namespace common;

use \PhpOffice\PhpSpreadsheet\Reader\IReader; use \PhpOffice\PhpSpreadsheet\Writer\IWriter; use \PhpOffice\PhpSpreadsheet\IOFactory;


然后我先导入默认的表

```php //因为生成excel文件会消耗大量的内存资源,为了防止超时未完成,特意把运行时间的限制关掉 set_time_limit(0); //默认表文件路径 $readFileName = dirname(dirname(__FILE__)).'/commonFile/main.xls'; //读取表 $spreadsheet = IOFactory::load($readFileName); //选择Excel文件中的活动表 $worksheet = $spreadsheet->getActiveSheet(); //当然如果多sheet的Excel文件也可以用getShee($key) 来获取活动表 比如这样:这个$key就是sheet的索引 //$worksheet = $spreadsheet->getSheet(2);

写入数据并保存文件

```php //在这里介绍两种写入方式,第一种简单的getCell获取坐标,setValue设置参数 $worksheet->getCell('A1')->setValue('hello,'); $worksheet->getCell('A2')->setValue('world!');
//第二种是一个函数多参数setCellValueExplicit($Coordinate,$value,$dataType)
//第一个Coordinate是单元格坐标,第二个$value是值,第三个是显示的数据类型
$worksheet->setCellValueExplicit('A3','13732174321',\PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING);

保存文件

```php //把文件参数给到createWriter函数的第一个参数,第二个参数是代表保存的文件格式 $writer = IOFactory::createWriter($spreadsheet,'Xls'); $writer->save(dirname(dirname(dirname(dirname(__FILE__)))).'/public/orderxls/test.xls');

ok,当走完最后一步,你就会发现在你的服务器中生成了一张名为test的Excel表,就是这么简单!

本文为ctexthuang原创文章,转载请注明来自ctexthuang_blog

tag(s): none
show comments · back · home
Edit with Markdown

已有 6 条评论

  1. sakura

    逛逛

    sakura July 30th, 2019 at 08:18 pm回复
    1. 桃夭

      so?

      桃夭 July 30th, 2019 at 08:24 pm回复
      1. sakura

        这居然还有邮件通知 emm 还不错喔 更新鸭

        sakura July 30th, 2019 at 08:26 pm回复
        1. 桃夭

          必须的,不是么。还有微信通知呢。不过是通知我的

          桃夭 July 30th, 2019 at 08:27 pm回复
          1. sakura

            6 皮 流弊坏 了

            sakura July 30th, 2019 at 08:29 pm
        2. 桃夭

          哈哈哈哈

          桃夭 July 30th, 2019 at 08:32 pm回复
召唤看板娘