PHP 导出Excel示例分享
发布:smiling 来源: PHP粉丝网 添加日期:2021-04-03 13:02:03 浏览: 评论:0
在开发一个商城网站的时候,客户需要一个导出报表的功能,我使用PHPExcel来实现这个功能。
下载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');
Tags: PHP导出Excel
相关文章
- ·php导出生成excel表格几种方法介绍(2014-08-01)
- ·php导出excel格式数据问题(2020-10-26)
- ·PHP导出Excel实例讲解(2021-07-07)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)