PHP使用好久了,好像今天才想起来要记一篇博客呢。之前一直用的 ci 框架,后来做接口的时候打算换成 tp5, 不料机缘巧合之下又结识了 node,于是乎决然的站到了 js 的大营之下。PHP这块我会翻翻之前的东西,如果找到有价值的东西再记下来,留作备用。今天小记一下PHPExcel这个类库的常用操作。

首先贴上 github 地址,直接去下载最新版好了。 这里下载

下载之后,取出Classes这个文件夹,这里是我们用到的类库文件。

  • 引入类库

假如我把 Classes 这个文件夹放到根目录下,那么现在需要引入两个类:

require ‘Classes/PHPExcel.php’              //核心类
require ‘Classes/PHPExcel/IOFactory.php'    //用于保存文件的类
  • 实例化核心类

实例化核心类,相当于新建一个excel文档:

$objPHPExcel = new PHPExcel();
  • 获取 sheet

写入数据之前需要说明一点,数据不是直接写在$objPHPExcel对象上面的,数据是写在sheet上的,那什么是 sheet 呢? 如图:

clipboard.png

大家看到,$objPHPExcel下会包含多个 sheet,默认是第一个 sheet, 所以我们首先要获取当前 sheet, 在当前 sheet 下写入数据

$objSheet = $objPHPExcel->getActiveSheet();    //获取当前shhet
$objSheet->setTitle('我的sheet名称');           //设置sheet名称
  • 写入数据

写入数据的方法不止一个,我介绍一个我常用的方法:

$objSheet->setCellValueByColumnAndRow($col,$row,$field);

注:$col代表列,$row 代表行,$field 是要写入一个单元格的内容。这里要说明一下,列和行都是用阿拉伯数字表示,列不是用 ABCD 而是用 1234,比如说要在第3列第4行插入‘name'这个字符串,应该这么写:

$objSheet->setCellValueByColumnAndRow(3,4,'name');
  • 保存excel

$objWriter = IOFactory::createWriter($objPHPExcel,'Excel5');

IOFactory 是上文引入的文件 IOFactory.php 的类名,默认是类名是 PHPExcel_IOFactory,因为 CI 框架的缘故我把类名修改为 IOFactory,和文件名一致,这里做下说明。

传递参数Excel5生成 .xls 文件,你也可以替换成Excel2007,生成 .xlsx 文件。

  • 输出到浏览器下载

这一步是设置头文件和下载路径,默认就可以,你只需修改你下载文件的文件名即可:

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="下载的文件名"');
header('Cache-Control: max-age=0');

$objWriter->save('php://output');

这样就好了,直接在浏览器输入你的地址,就可以下载生成的excel文件了!

本文由 杨成功 原创,更多原创文章点击 这里



杨成功
3.9k 声望12k 粉丝

分享小厂可落地的前端工程与架构