使用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

首先我引入文件

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

namespace common;

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

然后我先导入默认的表

   //因为生成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);

写入数据并保存文件

    //在这里介绍两种写入方式,第一种简单的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);

保存文件

    //把文件参数给到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回复
召唤看板娘