PHP怎么导出报表
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章主要介绍"PHP怎么导出报表",在日常操作中,相信很多人在PHP怎么导出报表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"PHP怎么导出报表"的疑惑有所帮助!接
千家信息网最后更新 2024年11月28日PHP怎么导出报表
这篇文章主要介绍"PHP怎么导出报表",在日常操作中,相信很多人在PHP怎么导出报表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"PHP怎么导出报表"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
效果
需求
为了实现报表效果,自己杜撰的需求。
主要是思路,思路通了实现其他效果也OK。
统计每个人在一年中每一天迟到早退的情况。
思路
用 PHP
语言进行实现。
首先将报表样式用 HTML
实现,
然后利用PHP header
函数生成 xls 下载。
知识点
表格中的列合并与行合并
PHP 获取一年中的每一天进行展示
PHP header 函数
Smarty 模板函数
Smarty 自定义函数
...
PHP 代码
public function export(){ //获取2016年日期 $time_start = strtotime('2016-01-01'); $time_end = strtotime('2016-12-31'); $month_arr = []; $month_arr['month'][] = '2016-01'; $month_arr['numbers'][] = date('t',$time_start); //获取天数 while (($time_start = strtotime('+1 month', $time_start)) <= $time_end) { $month_arr['month'][] = date('Y-m',$time_start); //取得递增月 $month_arr['numbers'][] = date('t',$time_start); //获取天数 } function check_week($time = []) { if (empty($time['day'])) { return ''; } $w = intval(date('w' , strtotime($time['day']))); if( $w === 0 || $w === 6){ return ''
.date('d', strtotime($time['day']))
.' '; } return ''.date('d', strtotime($time['day'])).' '; } //向模板中注册一个函数 $this->smarty->registerPlugin('function','check_week','check_week'); //模拟数据如下: $list[0]['name'] = 'Tom'; $list[1]['name'] = 'Joan'; $list[0]['sex'] = '男'; $list[1]['sex'] = '女'; $list[0]['age'] = '30'; $list[1]['age'] = '31'; //设置迟到 $list[0]['late'] = [ '2016-01-08', '2016-01-09', '2016-02-09', '2016-03-09', '2016-04-09', '2016-05-09' ]; $list[1]['late'] = [ '2016-02-12', '2016-03-15', '2016-04-13', '2016-05-19', '2016-05-19' ]; //设置早退 $list[0]['leave'] = [ '2016-03-09', '2016-04-11', '2016-05-15', '2016-06-18', '2016-07-21', '2016-08-23', '2016-09-22', '2016-10-20', '2016-11-17', '2016-12-14', ]; $list[1]['leave'] = [ '2016-05-09', '2016-06-11', '2016-07-13', '2016-08-15', '2016-09-17', '2016-10-19', '2016-11-20', '2016-12-23', '2016-03-18', '2016-02-19', '2016-01-23', ]; $file_name = "报表-".date("YmdHis",time()); $file_suffix = "xls"; header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=$file_name.$file_suffix"); $this->_assign('list', $list); $this->_assign('month', $month_arr); $this->_display();}
HTML 代码
姓名
性别
年龄
{if $month} {foreach $month.month as $k=>$m}
{$m}
{/foreach} {/if} {if $month} {foreach $month.month as $k=>$m} {section name=count loop=$month.numbers.$k+1 start=1} {check_week day=$m|cat:"-"|cat:$smarty.section.count.index} {/section} {/foreach} {/if} {if $list} {foreach $list as $s} {$s.name|default:'--'} {$s.sex|default:'--'} {$s.age|default:'--'} {if $month} {foreach $month.month as $k=>$m} {section name=count loop=$month.numbers.$k+1 start=1} {if $smarty.section.count.index <10 } {$str = ""} {$smarty.section.count.index = $str|cat:"0"|cat:$smarty.section.count.index} {/if} {if $s['late']} {if ($m|cat:"-"|cat:$smarty.section.count.index)|in_array:$s['late']} 1 {/if} {/if} {if $s['leave']} {if ($m|cat:"-"|cat:$smarty.section.count.index)|in_array:$s['leave']} 1 {/if} {/if} {/section} {/foreach} {/if} {/foreach} *周末 *正常 *迟到 *早退 {/if}
到此,关于"PHP怎么导出报表"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
报表
函数
学习
思路
效果
代码
天数
更多
模板
知识
需求
帮助
实用
接下来
姓名
年龄
性别
情况
数据
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
安卓手机网络安全管理
数据库查询性别打什么引号
防火墙里没有ftp服务器
数据库技术与应用实验题
服务器电源都有哪些
无法与服务器建立起安全链接
网络安全阀门构建
吉林新一代网络技术标准
网吧游戏服务器搭建
公安三所网络安全培训
软件开发的项目范围说明书
怎么创建数据库的新链接
网络安全龙头有哪些
数据库中nvl是什么方法
南方科技大学数据库
网络安全南阳理工
商贸企业数据库设计
自己做云服务器
数据库怎样做异地备份
如何导出医学文献数据库
计算机网络技术创业论文
在下述关于数据库的叙述中
江苏中高端服务器生产商
江苏讯合互联网科技有限公司
软件开发女研究生
信息网络安全管理课程
国家网络安全的手抄报图片
rpm数据库恢复
机关网络安全宣传教育活动方案
毕业后很少人做软件开发