<?php
require_once(ROOTPATH . "inc/PHPExcel/PHPExcel.class.php");//PHPExcel//获取数据

$objPHPExcel = new PHPExcel();//实例化PHPExcel类
$objSheet = $objPHPExcel->getActiveSheet();//获得当前活动sheet的活动对象
$objSheet->setTitle("****表");//设置当前活动Sheet名称
$objSheet->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//设置excel文件默认水平垂直方向居中 $cellKey = 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'
); //手动填充表头信息
$i = 0;
$condition[]='缴费类型';
$condition[]='缴费人姓名';
$condition[]='缴费金额';
$condition[]='缴费有效期开始日期';
$condition[]='缴费有效期结束日期';
$condition[]='提醒';
foreach ($condition as $key => $val) {
$width = strlen($val) < 15 ? 15 : (strlen($val) + 5);
$objPHPExcel->getActiveSheet()->getColumnDimension($cellKey[$i])->setWidth($width);
$objSheet->setCellValue($cellKey[$i++] . '1', $val);
}
//填充数据
#行数
$js=1;
for ($i = 1; $i < count($data) + 1; $i++) {
$x = 0;
#是否有缴费记录
$cz=0;
foreach ($data[$i - 1] as $key => $value) {
//当有物业费记录时 换到下一行填充数据
if($key=='wyf'){
$cz=1;
$js++;
$sum1=0;
foreach ($value as $k =>$v){
$width = strlen($v) < 15 ? 15 : (strlen($v) + 5);
$objPHPExcel->getActiveSheet()->getColumnDimension($cellKey[$i])->setWidth($width);
$objSheet->setCellValue($cellKey[$sum1++] . $js, $v);
}
//当有停车费记录时 换到下一行填充数据
}else if($key=='tcf'){
$cz=1;
$js++;
$sum1=0;
foreach ($value as $k =>$v){
$width = strlen($v) < 15 ? 15 : (strlen($v) + 5);
$objPHPExcel->getActiveSheet()->getColumnDimension($cellKey[$i])->setWidth($width);
$objSheet->setCellValue($cellKey[$sum1++] . $js, $v);
}
} else{
if($_POST['chooice']==1){
if($data[$i - 1]['wyf'] || $data[$i - 1]['tcf']){
$js++;
$width = strlen($value) < 15 ? 15 : (strlen($value) + 5);
$objPHPExcel->getActiveSheet()->getColumnDimension($cellKey[$i])->setWidth($width);
$objSheet->setCellValue($cellKey[$x++] . $js, $value);
$objSheet->mergeCells($cellKey[0] . $js.":".$cellKey[5] . $js);//合并A1-E1之间的单元格
}
}else{
$js++;
$width = strlen($value) < 15 ? 15 : (strlen($value) + 5);
$objSheet->setCellValue($cellKey[$x++] . $js, $value);
$objSheet->mergeCells($cellKey[0] . $js.":".$cellKey[5] . $js);//合并A1-E1之间的单元格
}
} }
}
$objPHPExcel->createSheet(); //创建一个WorkSheet $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');//生成excel文件 如:Excel2007
browser_export('Excel2007', '物业管理缴费表.xlsx');//输出到浏览器 设置游览器保存文件名
$objWriter->save("php://output"); function browser_export($type, $filename)
{
if ($type == "Excel5") {
header('Content-Type: application/vnd.ms-excel');//告诉浏览器将要输出excel03文件
} else {
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//告诉浏览器数据excel07文件
}
header('Content-Disposition: attachment;filename="' . $filename . '"');//告诉浏览器将输出文件的名称
header('Cache-Control: max-age=0');//禁止缓存
}
/***
* @param $fromTime
* @param $toTime
* @return string
* 计算相差时间
*/
function calcTime($fromTime, $toTime){ //转时间戳
$fromTime = strtotime($fromTime);
$toTime = strtotime($toTime);
//计算时间差
$newTime = $toTime - $fromTime;
return round($newTime / 86400);
} ?>

phpexcel 上传的更多相关文章

  1. PHPExcel上传sae遇到: -1:fail to get xml content

    在用PHPExcel1.8.0来处理excel时,本地测试时好使的,但是要把代码部署到SAE,在上传代码的时候就会遇到这个问题. 部署代码中遇到问题: -1:fail to get xml conte ...

  2. 使用phpexcel上传下载excel文件

    1. 下载 <?php /** * Created by lonm.shi. * Date: 2012-02-09 * Time: 下午4:54 * To change this templat ...

  3. 关于PHPExcel上传Excel单元格富文本和时间类型读取数据问题

    当用PHPExcel做Excel上传文件读取数据时,print_r出来的数据,竟然发现其中有几个单元格返回的是PHPExcel富文本对象,而且时间类型的单元格返回的是一个不是时间戳的五位数.就像下图那 ...

  4. php上传excle文件,csv文件解析为二维数组

    解析上传的CSV文件不是什么难事,直接读取转成你想要的数组样子就OK了. public function putStoreStockIn ($filePath = '') { $file = fope ...

  5. PHPexcel:多sheet上传和下载

    excel表格上传和下载,断断续续写了很久,赶紧记下来万一以后忘记就亏大了= = 数据库有三张表:

  6. Thinkphp5+PHPExcel实现批量上传表格数据功能

    http://www.jb51.net/article/129262.htm 1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHP ...

  7. Thinkphp5+PHPExcel实现批量上传表格数据

    1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHPExcel文件放在这里 2.前端代码 <!DOCTYPE html> ...

  8. 使用phpExcel批量上传excel表数据到mysql数据库中

    /*批量上传数据*/ if(isset($_POST['submit']) && $_POST['submit']=='上传文件') { //导入类文件 require_once (& ...

  9. jQuery+php+ajax+PHPExcel实现上传excel文件导入数据库

            项目中需要批量导入数据,感觉这个需求以后也会经常用,必须总结分享下: 引入jquery的第三方表单插件: <scripttype="text/javascript&qu ...

  10. PHPExcel实现上传excel文件导入数据库

            项目中需要批量导入数据,感觉这个需求以后也会经常用,必须总结分享下: 引入jquery的第三方表单插件: <scripttype="text/javascript&qu ...

随机推荐

  1. 接口测试神器Apifox,亲测好用!

    自己关注的公众号比较多,之前有收到过有关 Apifox 的文章,自己也是大致看看,还没有用过它! 最近看到比较多有关 Apifox 的文章,所以自己就花了点时间去研究它,使用完后发现确实比Postma ...

  2. C#,启动exe程序并传参(参数间带&符号)方法

    入参格式例如:C:\\Users\\Administrator\\Desktop\\测试\\测试\\bin\\Debug\\测试.exe type=1^&card_no=123 public ...

  3. Elasticsearch:Elasticsearch中的refresh和flush操作指南

    在今天的文章里,我们来主要介绍一下Elasticsearch的refresh及flush两种操作的区别.如果我们从字面的意思上讲,好像都是刷新的意思.但是在Elasticsearch中,这两种操作是有 ...

  4. 4.maven私服nexus2迁移到nexus3

    注意,本文讲解的是针对我们原来所用的nexus2.14.5版本的升级配置流程,如果您的老私服版本并不是这个,那么请先参考这里:升级兼容性 – Repository Manager 2到3.选定对应可升 ...

  5. JSP实现登录功能(页面带样式)

    功能要求 1.完成两个页面 2.第一个登陆页面login. jsp 3.第二个用户管理页面useManage. jsp 4.有登录功能(能进行用户名密码的校验,用户名若为自己的学号密码为班级号,允许登 ...

  6. Asp-Net-Core开发笔记:集成Hangfire实现异步任务队列和定时任务

    前言 最近把Python写的数据采集平台往.Net Core上迁移,原本的采集任务使用多进程+线程池的方式来加快采集速度,使用Celery作为异步任务队列兼具定时任务功能,这套东西用着还行,但反正就折 ...

  7. InetAddress.getLocalHost() 执行很慢?

    背景介绍 某次在 SpringBoot 2.2.0 项目的一个配置类中引入了这么一行代码: InetAddress.getLocalHost().getHostAddress() 导致项目启动明显变慢 ...

  8. python2与python区别汇总

    目录 输入与输出 range使用区别 字符编码区别 输入与输出 python2与python3中两个关键字的区别 python2中 input方法需要用户自己提前指定数据类型 写什么类型就是什么类型 ...

  9. 8.MongoDB系列之创建副本集(一)

    1. 复制简介 在MongoDB中,创建副本集后就可以使用复制功能了,副本集是一组服务器,其中一个是用于处理写操作的主节点,还有多个用于保存主节点的数据副本的从节点,如果主节点崩溃了,则从节点会从中选 ...

  10. 我的Vue之旅 06 超详细、仿 itch.io 主页设计(Mobile)

    第二期 · 使用 Vue 3.1 + TypeScript + Router + Tailwind.css 仿 itch.io 平台主页. 我的主题 HapiGames 是仿 itch.io 的 in ...