<?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. JMeter测试dubbo接口总结

    Jmeter 测试dubbo 接口 1. 安装JMeter 安装到/usr/local下 2. github上下载 jmeter-plugins-dubbo-x.x.x-jar-with-depend ...

  2. vue项目中使用百度富文本编辑器ueditor

    第一步,安装依赖,并且把ueditor整个文件夹放入public里边 第二步,在你需要编辑的地方引入,或者main.js中全局引入 XX.vue文件中写入下面代码,创建编辑器. <vue-ued ...

  3. ConfigMap使用说明

    ConfigMap概述 ConfigMap供容器使用的典型用法如下. (1)生成为容器内的环境变量. (2)设置容器启动命令的启动参数(需设置为环境变量). (3)以Volume的形式挂载为容器内部的 ...

  4. 【前端必会】eslint搞起

    介绍 eslint进行代码审查,统一代码风格,预防潜在BUG 官网 https://eslint.bootcss.com/docs/user-guide/getting-started 安装 init ...

  5. switch分支

    说明: 当表达式的值等于case中的常量,则会执行其中包含的语句块 break用于跳出循环,如果不写,则直接执行下一个常量的语句块,不再去判断表达式的值是否等于下一个case的常量(case穿透) 最 ...

  6. [笔记] CSP 初赛 部分知识整理

    几年前整理的东西,要不就发到网上吧 不过现在这些东西里面也有很多考得比以前少了 卡特兰数 \(f(i)=\sum_\limits{i=0}^{n-1}{f(i)f(n-i-1)}\) 其中\(f(0) ...

  7. C#-8 数组

    一 关于数组 数组是由一个变量名称表示的一组同类型的数据元素.数组中的元素通过变量名和方括号索引来访问. int[] intArray = new int[] { 1, 2, 3 }; //声明了一个 ...

  8. 支付宝沙箱服务 (结合springboot实现,这里对接的是easy版本,工具用的是IDEA,WebStrom)

    一:打开支付宝开发平台,登录,然后点击控制台 https://open.alipay.com/ 二:滚动到底部,选着沙箱服务 三:获取到对接要用的appId和公钥私钥 四:打开IDEA导入所需的xml ...

  9. P1706 全排列问题 方法记录

    原题链接 全排列问题 题目描述 按照字典序输出自然数 \(1\) 到 \(n\) 所有不重复的排列,即 \(n\) 的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入格式 一个整数 \( ...

  10. GMOJ3284 [GDOI2013] 重构 题解

    Description 给你一个有向图,要求重新建出一张点数相同有向图,使得点的联通关系和原图一致且边数最小. Solution 显然对于图上的一个强连通分量跑个缩点然后把每个强连通分量都变成一个环即 ...