phpexcel 上传
<?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 上传的更多相关文章
- PHPExcel上传sae遇到: -1:fail to get xml content
在用PHPExcel1.8.0来处理excel时,本地测试时好使的,但是要把代码部署到SAE,在上传代码的时候就会遇到这个问题. 部署代码中遇到问题: -1:fail to get xml conte ...
- 使用phpexcel上传下载excel文件
1. 下载 <?php /** * Created by lonm.shi. * Date: 2012-02-09 * Time: 下午4:54 * To change this templat ...
- 关于PHPExcel上传Excel单元格富文本和时间类型读取数据问题
当用PHPExcel做Excel上传文件读取数据时,print_r出来的数据,竟然发现其中有几个单元格返回的是PHPExcel富文本对象,而且时间类型的单元格返回的是一个不是时间戳的五位数.就像下图那 ...
- php上传excle文件,csv文件解析为二维数组
解析上传的CSV文件不是什么难事,直接读取转成你想要的数组样子就OK了. public function putStoreStockIn ($filePath = '') { $file = fope ...
- PHPexcel:多sheet上传和下载
excel表格上传和下载,断断续续写了很久,赶紧记下来万一以后忘记就亏大了= = 数据库有三张表:
- Thinkphp5+PHPExcel实现批量上传表格数据功能
http://www.jb51.net/article/129262.htm 1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHP ...
- Thinkphp5+PHPExcel实现批量上传表格数据
1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHPExcel文件放在这里 2.前端代码 <!DOCTYPE html> ...
- 使用phpExcel批量上传excel表数据到mysql数据库中
/*批量上传数据*/ if(isset($_POST['submit']) && $_POST['submit']=='上传文件') { //导入类文件 require_once (& ...
- jQuery+php+ajax+PHPExcel实现上传excel文件导入数据库
项目中需要批量导入数据,感觉这个需求以后也会经常用,必须总结分享下: 引入jquery的第三方表单插件: <scripttype="text/javascript&qu ...
- PHPExcel实现上传excel文件导入数据库
项目中需要批量导入数据,感觉这个需求以后也会经常用,必须总结分享下: 引入jquery的第三方表单插件: <scripttype="text/javascript&qu ...
随机推荐
- centos7换清华源
一 删除其他源 cd /etc/yum.repos.d/ 二 创建源 vim CentOS-Base.repo # CentOS-Base.repo # # The mirror system use ...
- 【学习笔记】 Adaboost算法
前言 之前的学习中也有好几次尝试过学习该算法,但是都无功而返,不仅仅是因为该算法各大博主.大牛的描述都比较晦涩难懂,同时我自己学习过程中也心浮气躁,不能专心. 现如今决定一口气肝到底,这样我明天就可以 ...
- Service中spec.type 字段的值:ClusterIP和NodePort理解
ClusterIP(默认) 在群集中的内部IP上公布服务,这种方式的 Service(服务)只在集群内部可以访问到 [root@master ~]# kubectl get service -n te ...
- Zookeeper QuickStart
环境版本 操作系统:CentOS release 6.6 (Final) java版本: jdk1.8 zookeeper版本: zookeeper-3.4.11 一. 安装jdk 此处省略 二. 安 ...
- Node.js躬行记(23)——Worker threads
Node.js 官方提供了 Cluster 和 Child process 创建子进程,通过 Worker threads 模块创建子线程.但前者无法共享内存,通信必须使用 JSON 格式,有一定的局 ...
- 工厂想采购一套信息化生产执行系统mes,不知道用哪家比较好?
好的信息化生产执行系统MES多的是,但是否适用于贵工厂那就不得而知了,要知道,不同行业.不同产品.不同规模的工厂用同一套系统效果呈现出来都不一样的,所以匹配很重要,个性化差异化.变化性等决定了一个工厂 ...
- [题解] Atcoder Regular Contest ARC 146 A B C D 题解
点我看题 A - Three Cards 先把所有数按位数从多到少排序,答案的位数一定等于位数最多的三个数的位数之和\(tot\).对于每个i,把有i位的数排序,并记录每个i的排序结果.最后枚举答案中 ...
- PHP全栈开发(八):CSS Ⅶ 表格 style
表格默认是没有边框的,因此,我们在设置表格格式的时候,首先要设置的是表格边框的样式,也就是 table{ border-style:solid; } 设置完表格表格的样式之后,可以设置表格边框的粗细程 ...
- P3402 可持久化并查集
P3402 通过主席树维护不同版本的并查集,注意要采用按秩合并的方式,路径压缩可能会爆. 1 #include <bits/stdc++.h> 2 using namespace std; ...
- SpringMvc(五) - 支付宝沙箱和关键字过滤,md5加密,SSM项目重要知识点
1.支付宝沙箱 1.1 jar包 alipay-sdk <!-- alipay-sdk --> <dependency> <groupId>com.alipay.s ...