PHP 导出Excel示例分享


Posted in PHP onAugust 18, 2014

下载PHPExcel_1.8.0_doc.zip http://phpexcel.codeplex.com/,将解压后的文件夹里的Classes上传到网站的根目录下,Classes目录内的内容如下:

导出文件Excel.php

require_once dirname(__FILE__).'/Classes/PHPExcel.php';//引入PHPExcel
.....此处略去从数据库获取数据的过程,$a为需要导出的数组......
$numArr = 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');
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

$arr = array('订单号','下单时间','城市','地区', '客户名称', '收货人', '联系电话', '收货地址', 'ERP客户名称', '物流系统客户名称', '活动项目',
 '品牌', '型号', '颜色', '物流系统型号', '订货量', '单价', '代收货款', '红包', '价保返利', '运费', '实收金额', '付款方式', '订单来源',
 '上游厂商', '是否在仓', '快递面单号', '订单状态', '确认时间', '末次状态确认时间', '描述', '对应业务', '对应客服', '商家留言', '下单摘要',
 '业务员', '联系方式');
// 输出标题
echo date('H:i:s') , " Add some data" , EOL;
//设置换行
$objPHPExcel->getActiveSheet()->getStyle('H')->getAlignment()->setWrapText(true);
$objPHPExcel->getActiveSheet()->getStyle('Y')->getAlignment()->setWrapText(true);
//设置相应列的宽度
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(15);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(15);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('H')->setWidth(40);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('I')->setWidth(15);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('J')->setWidth(15);
//输出第一行
$objPHPExcel->setActiveSheetIndex(0)
   ->setCellValue('A1', $arr[0])
 ->setCellValue('B1', $arr[1])
 ->setCellValue('C1', $arr[2])
 ->setCellValue('D1', $arr[3])
 ->setCellValue('E1', $arr[4])
 ->setCellValue('F1', $arr[5])
 ->setCellValue('G1', $arr[6])
 ->setCellValue('H1', $arr[7])
 ->setCellValue('I1', $arr[8])
 ->setCellValue('J1', $arr[9])
   ->setCellValue('K1', $arr[10])
   ->setCellValue('L1', $arr[11]);


//输出内容
for($i=0;$i<count($a);$i++){
 $objPHPExcel->setActiveSheetIndex(0)
  ->setCellValue($numArr[0].($i+2), $a[$i]['order_sn'])
  ->setCellValue($numArr[1].($i+2), $a[$i]['add_time'])
  ->setCellValue($numArr[2].($i+2), $a[$i]['city'])
  ->setCellValue($numArr[3].($i+2), $a[$i]['region_name'])
  ->setCellValue($numArr[4].($i+2), $a[$i]['company'])
  ->setCellValue($numArr[5].($i+2), $a[$i]['consignee'])
  ->setCellValue($numArr[6].($i+2), $a[$i]['mobile'])
  ->setCellValue($numArr[7].($i+2), $a[$i]['address'])
  ->setCellValue($numArr[8].($i+2), '')
  ->setCellValue($numArr[9].($i+2), '')
  ->setCellValue($numArr[10].($i+2), '')
  ->setCellValue($numArr[11].($i+2), $a[$i]['brand_name']);
}

// Rename worksheet
echo date('H:i:s') , " Rename worksheet" , EOL;
$dirName = date("Ymd");//目录名
$fileName = date("YmdHis");//文件名
$objPHPExcel->getActiveSheet()->setTitle($fileName);


// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);


// Save Excel 2007 file
echo date('H:i:s') , " Write to Excel2007 format" , EOL;
$callStartTime = microtime(true);
if(!opendir('../excel/'.$dirName)){
 mkdir('../excel/'.$dirName);
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('../excel/'.$dirName.'/'.$fileName.'.xlsx');

$end = getCurrentTime();
$spend = $end-$begin;
if ($spend > 30){
 echo '<script>if(confirm("执行超时!")){ window.history.back(-1);}</script>';
 exit;
}
header('Location:http://'.$_SERVER['HTTP_HOST'].'/excel/'.$dirName.'/'.$fileName.'.xlsx');
PHP 相关文章推荐
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
php 向访客和爬虫显示不同的内容
Nov 09 PHP
基于PHP5魔术常量与魔术方法的详解
Jun 13 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
php动态生成版权所有信息的方法
Mar 24 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
注意!PHP 7中不要做的10件事
Sep 18 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
Aug 17 PHP
详解PHP的抽象类和抽象方法以及接口总结
Mar 15 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 PHP
PHPer 需要了解的 5 个 Composer 小技巧
Aug 18 #PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 #PHP
PHP实现取得HTTP请求的原文
Aug 18 #PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
Aug 18 #PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 #PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
Aug 18 #PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 #PHP
You might like
在PHP中使用与Perl兼容的正则表达式
2006/11/26 PHP
php下使用iconv需要注意的问题
2010/11/20 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
php实现将Session写入数据库
2015/07/26 PHP
可输入的下拉框
2006/06/19 Javascript
摘自百度的图片轮换效果代码
2007/11/19 Javascript
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
2017/05/24 jQuery
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
[01:06:18]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第二场 1月26日
2021/03/11 DOTA
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
详解Python中使用base64模块来处理base64编码的方法
2016/07/01 Python
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
python lambda表达式(匿名函数)写法解析
2019/09/16 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
python中setuptools的作用是什么
2020/06/19 Python
解决python运行效率不高的问题
2020/07/20 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
新媒传信软件测试面试题
2013/02/24 面试题
高中军训感言1000字
2014/03/01 职场文书
大学毕业感言200字
2014/03/09 职场文书
防火标语大全
2014/10/06 职场文书
三潭印月的导游词
2015/02/12 职场文书
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android