我们已经用一篇文章总结过了,帮妹子把EXCEL的手工录入自动化了,她一高兴难免在心里闪过些念头。比如和你恩爱的安全感会是怎样!这一动念快到她自己都难以查觉,所以你不要问她。
之所以选择用PHP来搞EXCEL,除了客观需求,以及对很多人顺手,更大的理由是因为我们的 EXCEL工作与一切息息相关, 使用PHP我们才可以带它通天入地,无所不及 。(才可能带她通天入地,无所不及……!)
有些自动化要求,比如很正常的情况是某些表些格统计后她要邮件给指定人,甚至特殊数据,要QQ或微信通知某些人,这都是我们PHP可以做到的(具体方法在收到强烈要求后会优先考虑教授)。
今天有这么一位妹子,除了眼睛大鼻子高,喜欢开车以及长的可爱以外,有两个需求非常典型:
她每周要汇总采购们给她的价格报表,第一要录到系统里,第二要 整合成一张表发给爱笑的胖领导 。
录入
少年看你悟性这么高,录入这里简单给你点一下窍就得了。因为详细地说在上一篇文章刚讲过,如果你自付艺高人强,直接在本节让我点化过即罢,不然请大喊:“波若波罗密!”并且同时点入以下链接,回溯到过往好好看看之前的因缘:
用PHP撩妹必会技能:妹子我帮你把EXCEL自动化!上手指南
上边都做到以后,取到数据,接下来不过就是按字段写到库里,这步你不会?私下联系我。。
QQ群:598394989!
整合成一张表导出
我们已经将单元格内的数据按行或列取出,整合嘛,就是通过需要计算放到一个新的数组(你想建个类来放也罢)。
重点在如何导出为新表,新的EXCEL文件!!下面和我做
我们从零开始写点数据,生成一个表
1.第一步别忘了插入PHPExcel.php
require_once ‘Classes/PHPExcel.php’; //不引入下载的插件?
2.先要用new PHPExcel()假装生成一个Excel,用它代表那还未生成的,将要生成的文件:
$excel = new PHPExcel(); //我就是你对象了,身份很厉害,Excel文件哦,只是还没生成
3.然后咱们,要给这个文件$Excel添张表,一个文件里可以有多张表啊不是吗?setActiveSheetIndex(0)是说,设定当前要弄的表是第0张表,如果没有,就添加一张。
$当前表=$excel->setActiveSheetIndex(0); //不但生成了这个婊,我还要保存给变量,方便一会儿操(捂脸)作
4.有表了,直接添加数据到某座标就好
$当前表->setCellValue(‘A1’, ‘姓名’); //在第一行第一列加了一个“姓名”
5.更多添加数据,我们也可以在一行连着写,叫链式操作(原因是,该方法的返回即是那个$当前表)
$当前表->setCellValue(‘C1’, ‘身份’)->setCellValue(‘A3’, ‘ 特朗普 ‘)
->setCellValue(‘C3’, ‘美国总统’); //一个箭头连一个箭头,这好像锁链
6.创建一个专门把$excel对象变成真正文件的转换器,转换器放入刚做好的文件$excel,第二个参数描述我们要生成的文件格式:
$objWriter = PHPExcel_IOFactory::createWriter($excel, ‘ Excel2007 ‘); //因为从2007版的office后缀名及格式开始修改,所以Excel2007就是后缀名 xlsx
注,如果写’Excel5’,是2003及以前的旧格式,xls后缀
7.调用转换器的save命令,给他一个路径和名称,生成成功。以下运行后在php文件同目录生成:
$objWriter->save(‘textBook.xlsx’);//后缀名还得写?是的,格式和后缀名的关系还要麻烦你注意了
本节完整代码
<?php
require_once ‘Classes/PHPExcel.php’; //不引入下载的插件,不插何生 成?!
$excel = new PHPExcel(); //我就是你对象了,身份很厉害,Excel文件哦,只是还没生成
$当前表=$excel->setActiveSheetIndex(0); //不但生成了这个婊,我还要保存给变量,一会儿操(捂脸)作
$当前表->setCellValue(‘A1’, ‘姓名’); //在第一行第一列加了一个“姓名”
$当前表->setCellValue(‘C1’, ‘身份’)->setCellValue(‘A3’, ‘特朗普’)
->setCellValue(‘C3’, ‘美国总统’); //一个箭头连一个箭头,这好像锁链
$objWriter = PHPExcel_IOFactory::createWriter($excel, ‘Excel2007’); //因为从2007版的office后缀名及格式开始修改,所以Excel2007就是后缀名xlsx
$objWriter->save(‘textBook.xlsx’);//后缀名还得写?是的,格式和后缀名的关系还要麻烦你注意了
完没完?
还想要更深入的, 支持我我就写下去。
支持我:点赞,或者转载更好!
或者我就写别的了(掩面),想听啥也可以告诉我,你的哥们儿瑞偶D老师
QQ群:598394989!