51job简历导出php,PHPWord 导出简历经验小结
释放双眼,带上耳机,听听看~!
最近做的一个招聘的项目含有word导出功能 遇到的一些坑在这里总结一下
首先要引入资源包
composer require phpoffice/phpword
引入之后在自己的要写导出方法的文件头引用
use PhpOffice\PhpWord\TemplateProcessor;
然后准备一个模板word文件
记住是.docx格式的,.doc格式的容易出现读取不了文件的现象
我准备的文件如下
文档中需要替换的变量用${变量名}来表示
循环块要用${tag}开始用${/tag}结束
写出的最后效果如下
然后就是php代码部分了
/**
* 简历导出
*
* @param [type] $ids
* @return void
*/
public function export($ids)
{
//找到模板文件的位置
$path = __DIR__.'/resume.docx';
// 实例化
$templateProcessor = new TemplateProcessor($path);
//数据获取
$data = $this->model->get($ids);
$worklist = Db::name('work_history')->where('user_id',$ids)->select();
$worknum = Db::name('work_history')->where('user_id',$ids)->count();
$edulist = Db::name('edu_history')->where('user_id',$ids)->select();
$edunum = Db::name('edu_history')->where('user_id',$ids)->count();
//基础信息填写替换
$templateProcessor->setValue('name', $data['nickname']);
$templateProcessor->setValue('age', $data['age']);
$templateProcessor->setValue('email', $data['email']);
$templateProcessor->setValue('mobile', $data['mobile']);
$templateProcessor->setValue('gender', $data['gender_text']);
$templateProcessor->setValue('address', $data['address']);
$templateProcessor->setValue('native_place', $data['native_place']);
$templateProcessor->setValue('emc', $data['emc']);
$templateProcessor->setValue('emc_mobile', $data['emc_mobile']);
$templateProcessor->setValue('bio', $data['bio']);
//工作经历
$templateProcessor->cloneBlock('WORKBLOCK',$worknum,true,true);
// $templateProcessor->cloneRow('post_content',$worknum);
foreach ($worklist as $key => $item) {
$key +=1;
$templateProcessor->setValue('times#'.$key, $item['join_time']);
$templateProcessor->setValue('com_name#'.$key, $item['work_units']);
$templateProcessor->setValue('job#'.$key, $item['job']);
$templateProcessor->setValue('post_content#'.$key, $item['post_content']);
}
//教育经历
$templateProcessor->cloneRow('school_name',$edunum);
foreach ($edulist as $key => $item) {
$key +=1;
$templateProcessor->setValue('school_name#'.$key, $item['school_name']);
$templateProcessor->setValue('school_type#'.$key, $item['eductional_systme']);
$templateProcessor->setValue('major#'.$key, $item['major']);
$templateProcessor->setValue('join_time#'.$key, $item['times']);
}
$templateProcessor->saveAs('./uploads/resume/'.$data['nickname'].'.docx');
// halt($_SERVER);
$this->redirect('http://'.$_SERVER['HTTP_HOST'].'/uploads/resume/'.$data['nickname'].'.docx');
}
这里再提一下官方的文档中关于块克隆的案例是非常简单的demo
就是这样的 克隆一个 段落就完事儿了????
没办法 我只能去看源码 看能不能找到一些蛛丝马迹
我开始一直用cloneBlock传的参数和cloneRow一样 就是只传 变量名和重复次数 后来才发现原来才发现有个indexVariables的参数
这个参数的作用就是 设置为true的时候就可以跟cloneRow一样 生成变量的索引
有了这个就能生成最后的成果
51job简历导出php,PHPWord 导出简历经验小结相关推荐
- 大厂程序员教你如何写简历(附简历模板)//简历、秋招、简历模板。经验分享、资源分享
最近朋友圈很多大佬都已经转发公司的招聘信息了,一年一度的秋招又来了. "如果你是应届的同学,请务必参加秋招",这对应届生来说是真的很重要! 而面试不单单是考察你的技术能力,简历也是 ...
- 51JOB:根据HR处理简历的一般流程,简历投递后会有如下几种状态出现
根据HR处理简历的一般流程,简历投递后会有如下几种状态出现: 已到达: 你的简历已经成功投递到了HR那里 已查收: HR已查收了你的简历 已查阅: HR已仔细查看了你的简历详细内容,还需与其他人的简历 ...
- 阿里8年测试老鸟教你软件测试工程师简历,技术栈,项目经验怎么写
[文章末尾给大家留下了大量的福利] 工作久了发现,在互联网这个圈子里,软件测试工程师和产品经理是两个"水分"较大的岗位,在招人的时候如果不擦亮眼睛,稍有不慎就可能会踩雷.前不久面试 ...
- PHPword 导出word设置不同样式
** PHPword 导出word设置不同样式 ** 1.先看需求样子: 2.先用composer下载phpword到你的项目中,如果不会可以到网上搜,教程很多: 3. 引入,然后设置下全局字体字号, ...
- 研究生复试简历模板及考研·面试·范文·经验
研究生复试简历模板及考研·面试·范文·经验 马上要复试了 肯定还是要做简历的,但不用花太多精力放在简历的制作上.对于本科不是很好的学生也不用自卑,毕竟受环境限制.所以复试最重要的是好好准备,提高硬实力 ...
- 面试IT公司的时候,Java程序员的简历应该写多少个项目经验比较合适?
往期精选 ● 架构师高并发高性能分布式教程(4000G) ● 39阶段精品云计算大数据实战视频教程 ● 互联网技术干货视频教程大全[菜单为准] ● 2017年8月最新Intellij IDEA ...
- 面试-简历:爆网上投简历的真正内幕及技巧!你看过绝对有收获!
http://www.mianwww.com/html/2011/12/12526.html这2周,公司大规模招聘,我基本就干一件事情,看简历.一天300-500封封.早中晚各看一次. 找工作很难吗? ...
- php简历github,怎么将个人简历部署在github上?
怎么将个人简历部署在github上? 面试的时候如果没带简历,或者简历刚好投完了,就特别尴尬,并且可能错失一次求职的机会.所以在网络端部署一个网页版的简历就比较重要了. 环境配置 这里所用到的是免费的 ...
- 如何将pdf导出html,如何导出PDF版、导出EXE版、导出HTML离线版?
云瑶电刊平台,支持在线导出PDF.EXE.HTML: 一.点击编辑器右上角发布按钮: 二.点击高级设置,即可看到导出PDF.导出EXE.导出HTML: 三.导出成功后,即可跳转到下载页面,点击下载对应 ...
最新文章
- 斯坦福大学报告称中国AI论文引用率首超美国!但李国杰院士也发文灵魂拷问!...
- 2018年科技公司融资纪录十大排行榜!中国四家公司上榜
- 工作五年,后面四年重复着第一年的活儿?
- Spring Boot 2.4版本前后的分组配置变化及对多环境配置结构的影响
- 实现div里的img图片水平垂直居中
- 机器学习应用量化投资没啥用?那是你方法不对!
- PCL编程笔记——Assertion `px != 0' failed.
- java刷票小程序,小程序投票系统刷票
- 常见的预测模型及算法
- 教你:找回已失效的B站视频+批量下载B站收藏夹视频
- java版本PID放大/eTerm放大软件介绍
- 摄影构图学pdf_简单易懂,摄影小白也能Get的摄影技巧!
- 基于SpringBoot-上传照片保存到本地,且回显照片
- 计算机网络技术主要课程阐述,计算机网络技术专业实训课程体系研究
- win服务器物理内存占用高,win10系统长时间使用物理内存过高的解决方法
- 不知道视频画面大小裁剪怎么操作?1分钟教你学会裁剪大小
- 网络爬虫(网络蜘蛛,网络机器人)与Web安全
- miui系统分身测试软件,【MIUI 8评测】手机分身初上手,黑科技值爆表!
- 传说中的“睡眠算法”的输出分析
- ansys mechanical 仿真步长设置 仿真时间
热门文章
- maya包裹表情变形_MAYA做表情时常用的混全变形器的相关介绍
- 华为设备配置Smart Link主备备份
- JavaScript 有关获取当前/上个月/12个月前/七/7天/一周之前/下周一的日期格式 持续更新...
- Python 练习实例100例—6
- lucene原理及java实现
- macu盘格式化linux系统盘,Mac上制作Linux U盘启动盘
- php-sdk 安装,PHP SDK怎么安装
- 金税 TC718K 驱动
- 使用vtwinfx插件时fcpx意外退出_10个提高 uTools 使用效率的小技巧
- MATLAB中的矩阵乘法与实际矩阵乘法的差异