以前使用 phpExecl 读取一个execl,但是我刚刚去了github上面看到说 PHPExecl 不会再维护了
这里我们使用 PHPSpreadsheet 来操作 execl。
通过 composer 来安装 PhpSpreadsheet
composer require phpoffice/phpspreadsheet
安装之后的目录结构如下
其中 vender 是存放包的地方
看一下 composer.json 文件里面的内容。如果是我这种方式,找一个空白文件夹,直接composer require的方式进行安装包的话,就是下面这个光秃秃的样子。不过问题不大。
其实打开 composer.json 主要是看看有没有 autoload 的定义,比如下面这种
这个图片中代码的意思就是会自动加载 src 下面的目录。如果没有的话就没所谓了。如果有的话我们就乖乖的在项目目录下建一个 src 作为执行代码的目录吧。
我们还是先创建一个文件夹 src1 ,用来存放我们需要执行的代码文件。目录结构如下
根文件夹的名字和第一张图不一致的原因是以为我重新建立了一个文件夹
下面有1个示例
生成一个execl,并往 A1 这个格子里面写入 hello word
先在 src1 下建立一个 php 文件:demo.php
写入如下代码
<?php require __DIR__.'/../vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; // 实例化一个 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); // 获取一个“活动的表”,并返回一个worksheet。我理解为创建了一个sheet的实例 $sheet = $spreadsheet->getActiveSheet(); // 给指定的格子设置值 $sheet->setCellValue('A1','hello word!'); // 将sheet实例写入实例化读取器对象 https://phpspreadsheet.readthedocs.io/en/latest/topics/reading-files/ $writer = new Xlsx($spreadsheet); // 保存到当前项目根文件路径下 $writer->save('hello word.xlsx'); // 这里是我写的提示符 无须理会,输出代表成功 echo 'hello word ';
代码讲解:
第3行是将引入 autoload.php ,这里引入的时候有个小窍门啊,直接使用绝对路径,避免出错
__DIR__
或获取当前文件的路径,不包括当前文件的文件名
第5-6行是引入指定的类,这个引入和 autoload.php 直接关联。如果出现 xxx 路径没有找到,那么大概率就是这个 autoload.php 的绝对路径引入错误了
第8-13行就是 PhpSpreadsheet 的基本用法了,见注释就好