thinkPHP5框架导出Excel文件简单操作示例


Posted in PHP onAugust 03, 2018

本文实例讲述了thinkPHP5框架导出Excel文件简单操作。分享给大家供大家参考,具体如下:

1. 首先安装PHPExcel 这里用composer安装

composer require phpoffice/phpexcel

2. 在控制类引用

use PHPExcel_IOFactory;
use PHPExcel;

3. 在控制其中书写导出方法

/**
 * 导出迟到数据
 */
public function export_later()
{
  $date = explode("-",input("get.date"));
  $_opt['year'] = $date[0];
  $_opt['month'] = $date[1];
  $laterArray = Db::name('user')->select();//查找user表数据
  $xlsName = $_opt['month']."月迟到早退数据统计";
  $xlsCell = array(
    array('user_name','姓名'),
    array('user_accounts','工号'),
    array('later_times','迟到次数'),
    array('total_later','迟到累计(分钟)'),
    array('early_times','早退次数'),
    array('total_early','早退累计(分钟)'),
  );//查出字段输出对应Excel对应的列名
  //公共方法调用
  export_excel($xlsName,$xlsCell,$laterArray);
}
/**
 * 公共数据导出实现功能
 * @param $expTitle 导出文件名
 * @param $expCellName 导出文件列名称
 * @param $expTableData 导出数据
 */
function export_excel($expTitle,$expCellName,$expTableData)
{
  $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
  $fileName = $expTitle . date('_Ymd');//or $xlsTitle 文件名称可根据自己情况设定
  $cellNum = count($expCellName);
  $dataNum = count($expTableData);
  $objPHPExcel = new PHPExcel();//方法一
  $cellName = array('A','B', 'C','D', 'E', 'F','G','H','I', 'J', 'K','L','M', 'N', 'O', 'P', 'Q','R','S', 'T','U','V', 'W', 'X','Y', 'Z', 'AA',
    'AB', 'AC','AD','AE', 'AF','AG','AH','AI', 'AJ', 'AK', 'AL','AM','AN','AO','AP','AQ','AR', 'AS', 'AT','AU', 'AV','AW', 'AX',
    'AY', 'AZ');
  //设置头部导出时间备注
  $objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');//合并单元格
  $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle . ' 导出时间:' . date('Y-m-d H:i:s'));
  //设置列名称
  for ($i = 0; $i < $cellNum; $i++) {
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i] . '2', $expCellName[$i][1]);
  }
  //赋值
  for ($i = 0; $i < $dataNum; $i++) {
    for ($j = 0; $j < $cellNum; $j++) {
      $objPHPExcel->getActiveSheet(0)->setCellValue(
        $cellName[$j] . ($i + 3), $expTableData[$i][$expCellName[$j][0]]
      );
    }
  }
  ob_end_clean();//这一步非常关键,用来清除缓冲区防止导出的excel乱码
  header('pragma:public');
  header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');
  header("Content-Disposition:attachment;filename=$fileName.xls");//"xls"参考下一条备注
  $objWriter = \PHPExcel_IOFactory::createWriter(
    $objPHPExcel, 'Excel5'
  );//"Excel2007"生成2007版本的xlsx,"Excel5"生成2003版本的xls
  $objWriter->save('php://output');
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 使用MySQL管理Session的回调函数详解
Jun 21 PHP
PHP set_error_handler()函数使用详解(示例)
Nov 12 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
用PHP代替JS玩转DOM的思路及示例代码
Jun 15 PHP
PHP之sprintf函数用法详解
Nov 12 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
Jan 07 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 PHP
Yii框架学习笔记之session与cookie简单操作示例
Apr 30 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
Oct 03 PHP
PHP数组实际占用内存大小原理解析
Dec 11 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 #PHP
PHP后台实现微信小程序登录
Aug 03 #PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 #PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 #PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 #PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 #PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 #PHP
You might like
农民C键的运用技巧
2020/03/04 星际争霸
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
python多进程实现文件下载传输功能
2018/07/28 Python
对Python 内建函数和保留字详解
2018/10/15 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
python pygame模块编写飞机大战
2018/11/20 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
学校七一活动方案
2014/01/19 职场文书
财务部经理岗位职责
2014/02/03 职场文书
党的群众路线教育实践活动心得体会
2014/03/03 职场文书
幼儿园庆六一活动方案
2014/03/06 职场文书
小学生环保标语
2014/06/13 职场文书
户籍证明模板
2014/09/28 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
复兴之路观后感
2015/06/02 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
MySQL数据库完全卸载的方法
2022/03/03 MySQL
python中 .npy文件的读写操作实例
2022/04/14 Python
Windows server 2012 NTP时间同步的实现
2022/06/25 Servers