PHP 导出Excel
在开发一个商城网站的时候,客户需要一个导出报表的功能,我使用PHPExcel来实现这个功能。
下载PHPExcel_1.8.0_doc.zip,将解压后的文件夹里的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');

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

你应该关心DependencyInjection(DI),因为它能让你的代码更清晰、更易维护。1)DI通过解耦类,使其更模块化,2)提高了测试的便捷性和代码的灵活性,3)使用DI容器可以管理复杂的依赖关系,但要注意性能影响和循环依赖问题,4)最佳实践是依赖于抽象接口,实现松散耦合。

是的,优化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)优化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,并避免使用

theKeyStrategiestosiminificallyBoostphpapplicationPermenCeare:1)useOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)优化AtabaseInteractionswithPreparedStateTemtStatementStatementSandProperIndexing,3)配置

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器

WebStorm Mac版
好用的JavaScript开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。