/**
*
* execl数据导出
*/
function exportOrderExcel2($title, $cellName, $data) {
//引入核心文件
vendor("PHPExcel.PHPExcel");
$objPHPExcel = new \PHPExcel();
//定义配置
$topNumber = 2;//表头有几行占用
$xlsTitle = iconv('utf-8', 'gb2312', $title);//文件名称
$fileName = $title.date('_YmdHis');//文件名称
$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'
); $objPHPExcel->getActiveSheet()->getDefaultColumnDimension()->setWidth(20);//所有单元格(列)默认宽度 //垂直居中
$objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //处理表头标题
$objPHPExcel->getActiveSheet()->mergeCells('A1:'.$cellKey[count($cellName)-1].'1');//合并单元格(如果要拆分单元格是需要先合并再拆分的,否则程序会报错)
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',$title);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(18);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //处理表头
foreach ($cellName as $k=>$v)
{
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellKey[$k].$topNumber, $v);//设置表头数据
// $objPHPExcel->getActiveSheet()->freezePane($cellKey[$k].($topNumber+1));//冻结窗口
// $objPHPExcel->getActiveSheet()->getStyle($cellKey[$k].$topNumber)->getFont()->setBold(true);//设置是否加粗
// $objPHPExcel->getActiveSheet()->getStyle($cellKey[$k].$topNumber)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//垂直居中
// if($v[3] > 0)//大于0表示需要设置宽度
// {
// $objPHPExcel->getActiveSheet()->getColumnDimension($cellKey[$k])->setWidth($v[3]);//设置列宽度
// }
} //处理数据
$start = $topNumber+1;
$j = $topNumber+1;
foreach ($data as $k=>$v)
{
// $j = $start;
foreach ($v['sku'] as $k1=>$v1)
{
if($k1==0){
//计算初步当前单元格标识,以及 需要合并的单元格标识 A B C D E F G M
$end = $start+count($v['sku'])-1;
$objPHPExcel->getActiveSheet()->mergeCells("A".$start.':'."A".$end);
$objPHPExcel->getActiveSheet()->mergeCells("B".$start.':'."B".$end);
$objPHPExcel->getActiveSheet()->mergeCells("C".$start.':'."C".$end);
$objPHPExcel->getActiveSheet()->mergeCells("D".$start.':'."D".$end);
$objPHPExcel->getActiveSheet()->mergeCells("E".$start.':'."E".$end);
$objPHPExcel->getActiveSheet()->mergeCells("F".$start.':'."F".$end);
$objPHPExcel->getActiveSheet()->mergeCells("G".$start.':'."G".$end);
$objPHPExcel->getActiveSheet()->mergeCells("M".$start.':'."M".$end); $objPHPExcel->getActiveSheet()->setCellValue("A".$start, $v['o_addtime']);
$objPHPExcel->getActiveSheet()->setCellValue("B".$start, $v['d_prov'] . $v['d_city']);
$objPHPExcel->getActiveSheet()->setCellValue("C".$start, $v['g_name']);
$objPHPExcel->getActiveSheet()->setCellValue("D".$start, $v['epid']);
$objPHPExcel->getActiveSheet()->setCellValue("E".$start, $v['did']);
$objPHPExcel->getActiveSheet()->setCellValue("F".$start, $v['deviceid']);
$objPHPExcel->getActiveSheet()->setCellValue("G".$start, $v['o_addtime']);
$objPHPExcel->getActiveSheet()->setCellValue("M".$start, $v['o_fromtype']);
} $objPHPExcel->getActiveSheet()->setCellValue("H".$j, $v1['cm_gid']);
$objPHPExcel->getActiveSheet()->setCellValue("I".$j, $v1['sku_title']);
$objPHPExcel->getActiveSheet()->setCellValue("J".$j, $v1['skuid']);
$objPHPExcel->getActiveSheet()->setCellValue("K".$j, $v1['sku_num']);
$objPHPExcel->getActiveSheet()->setCellValue("L".$j, sprintf("%.2f",($v1['sku_activity_price']*$v1['sku_num'])));
$j++;
} $start += count($v['sku']);
} //导出execl
ob_end_clean();//防止乱码
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}

  转载至:https://www.cnblogs.com/phpjinggege/p/9016162.html

php Excel导出功能的更多相关文章

  1. Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

    Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...

  2. 用SpringMvc实现Excel导出功能

    以前只知道用poi导出Excel,最近用了SpringMvc的Excel导出功能,结合jxl和poi实现,的确比只用Poi好,两种实现方式如下: 一.结合jxl实现: 1.引入jxl的所需jar包: ...

  3. 利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能

    我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据, ...

  4. excel导出功能优化

    先说说优化前,怎么做EXCEL导出功能的: 1. 先定义一个VO类,类中的字段按照EXCEL的顺序定义,并且该类只能用于EXCEL导出使用,不能随便修改. 2. 将查询到的结果集循环写入到这个VO类中 ...

  5. excel导出功能原型

    本篇博客是记录自己实现的excel导出功能原型,下面我将简单介绍本原型: 这是我自制的窗体,有一个ListView和一个Button(导出)控件. 这是我在网上找到了使用exel需要引用的库. usi ...

  6. java利用EasyPoi实现Excel导出功能

    easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言( ...

  7. asp.net excel导出功能

    以下是我在项目开发中所做的关于Excel导出功能,不足之处还望大家指正,相互学习 protected void btn_Export_Click(object sender, EventArgs e) ...

  8. 使用NPOI实现简单的Excel导出功能

    [1]NPOI是啥? NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作. POI是一个开源的Java读写Excel. ...

  9. Delphi实现带有格式的Excel导出功能

    功能预览 运行预览 模板样式 存储返参 导出的Excel 2. 代码实现 //执行sql的函数 procedure TForm1.GetReportData(astrsql:string); var ...

  10. java(POI):基于模版的Excel导出功能,局部列写保护总结

    需求描述: 1.导出的Excel中部分列包含有下拉列表,并没有尝试过用代码实现这种功能,个人感觉比较棘手,故采用了模版的形式,直接导出数据到已经创建好的Excel模版中 2.Excel的第一列需要写保 ...

随机推荐

  1. Jenkins企业应用进阶详解(一)

    Jenkins企业应用进阶详解(一) 链接:https://pan.baidu.com/s/1NZZbocZuNwtQS0eGkkglXQ 提取码:z7gj 复制这段内容后打开百度网盘手机App,操作 ...

  2. Codeforces 1148F Foo Fighters 贪心

    题意:给你若干个数对,每个数对有两个属性,一个属性是权值,一个属性是位标志,假设这些数对的的权值和是sum,你可以选择一个二进制数s,与所有的数对的位标志按位与,如果按位与之后的位标志有奇数个1,那么 ...

  3. ida x32 dbg 动态调试

    http://www.xrwcn.com/html/8.html 0x20019u 注册表 RegOpenKeyEx函数 LONG RegOpenKeyEx( HKEY hKey, // handle ...

  4. 在虚拟机中使用maven编译signal server项目记录

    前言 安装好 mvn Ubuntu 16.04 JDK 我是从 oracle jdk 11 lts download 网站,复制jdk-11.0.4_linux-x64_bin.tar.gz的链接 w ...

  5. cdq分治(陈丹琦分治)

    //转自:http://blog.csdn.net/snowy_smile/article/details/49668689 /* 算法介绍之cdq分治: 其实cdq分治的思想与应用都能被很简单地描述 ...

  6. jsp EL运算符

    算术运算符 算术运算符 说明 示例 结果 + 加 ${1 + 1} 2 - 减 ${1 - 1} 0 * 乘 ${1 * 2} 2 /或div 除 ${3 / 2} 1.5 %或mod 取余 ${3 ...

  7. Service7

    在真机上,利用clone-vm7新建一台虚拟机,名字:PXE-Server     1.设置防火墙为trusted   2.当前及永久关闭SELinux   3.配置IP地址:192.168.4.16 ...

  8. 2019 wannafly winter camp day1-4代码库

    目录 day1 F div1 爬爬爬山 (最短路) B div2 吃豆豆 (dp) J div2 夺宝奇兵(暴力) J div1 夺宝奇兵 (权值线段树) C div1 拆拆拆数 E div1 流流流 ...

  9. 穿过代理服务器取远程用户真实IP地址

    public static string GetIP() { string str = ""; //穿过代理服务器取远程用户真实IP地址: if (System.Web.HttpC ...

  10. 4. Python数据类型之数字、字符串、列表

    开发过程中,我们需要处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数据类型.在Python中,能够直接处理的数据类型主要有以下几种:数字.字符串.列表.元组.字典.集合等 ...