thinkphp5引入PHPEXCEL基础使用方法详解

诸位大佬,可否扫下右下方参与下“支付宝”红包活动!小弟万分感谢!

在管理后台中导出excel文件是非常常见的一个效果,那么thinkPHP5开发中如果我们需要导出excel文件要如何实现该效果呢?

在实现之前我们先来了解下PHPEXCEL!

定义:PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格。

从定义中我们知道了PHPExcel 是用来操作Office Excel的一个PHP类库,那么我们这里就直接切入正题。在thinkPHP5我们如何使用该类库来实现excel的基础使用。

个人网盘分享:https://pan.baidu.com/s/10JNEuohWCfVdBQjupA5cVA      (84vj

下载后直接将命名为PHPExcel的文件夹复制到extend文件夹中。如图:


controller中使用步骤如下(附完整代码):

public function formExcel(){
$Form = new FormModel();
$selectResult = $Form->getFormExcel();
$field = array(
'A' => array('id', 'ID'),
'B' => array('name', '姓名'),
'C' => array('phone', '联系方式'),
'D' => array('time', '填写时间'),
);
$this->phpExcelList($field, $selectResult, '出入管理_' . date('Y-m-d'));
}

formExcel方法为前台调用导出文件的方法!

流程解析:通过getFormExcel方法获取你将要导出excel的数据,field数组格式创建表头及对应的列的数据表示,通过定义的 phpExcelList方法来实现excel文件导出。

phpExcelList 代码如下:

// 通用方法
public function phpExcelList($field, $list, $title='文件')
{
import('PHPExcel.PHPExcel');
$objPHPExcel = new \PHPExcel();
$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel); //设置保存版本格式
foreach ($list as $key => $value) {
foreach ($field as $k => $v) {
if ($key == 0) {
$objPHPExcel->getActiveSheet()->setCellValue($k . '1', ' '.$v[1]);
}
$i = $key + 2; //表格是从2开始的
$objPHPExcel->getActiveSheet()->setCellValue($k . $i, ' '.$value[$v[0]]);
}
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");;
header('Content-Disposition:attachment;filename='.$title.'.xls');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
}

完成效果如图: