您现在的位置是:网站首页 > 脚本编程>
thinkphp+phpexcel实现导出excel文件到本地
简介
上周五写了thinkphp+phpexcel实现导入excel文件到数据库今天闲着无聊研究一下导出excel的方式,有了phpexcel什么都变的很简单了没有那么繁琐的步骤了。记得在以前写了个导出excel结果实现了导出excel但是导出来的excel的格式非常的难看没有办法进行美化的。最原始的导出excel的办法就是利用header()函数进行文件。其实phpexcel也是利用header...
上周五写了thinkphp+phpexcel实现导入excel文件到数据库今天闲着无聊研究一下导出excel的方式,有了phpexcel什么都变的很简单了没有那么繁琐的步骤了。记得在以前写了个导出excel结果实现了导出excel但是导出来的excel的格式非常的难看没有办法进行美化的。最原始的导出excel的办法就是利用header()函数进行文件。其实phpexcel也是利用header()函数进行导出的。只不过是多了美化的过程而以。不罗嗦了贴出代码。
html部分
<div><a href="/download/"/>导出Excel</a></div>
执行代码部分
public function download() { import("Org.Excel.PHPExcel"); import("Org.Excel.PHPExcel.Writer.Excel5"); import("Org.Excel.PHPExcel.IOFactory.php"); //创建处理对象实例 $objPhpExcel=new PHPExcel(); $objPhpExcel->getActiveSheet()->getDefaultColumnDimension()->setAutoSize(true);//设置单元格宽度 //设置表格的宽度 手动 $objPhpExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20); $objPhpExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15); $objPhpExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15); $objPhpExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20); $objPhpExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20); $objPhpExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20); $objPhpExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20); $objPhpExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20); $objPhpExcel->getActiveSheet()->getColumnDimension('I')->setWidth(20); $objPhpExcel->getActiveSheet()->getColumnDimension('J')->setWidth(20); $objPhpExcel->getActiveSheet()->getColumnDimension('K')->setWidth(20); $objPhpExcel->getActiveSheet()->getColumnDimension('L')->setWidth(20); $objPhpExcel->getActiveSheet()->getColumnDimension('M')->setWidth(20); //设置标题 $rowVal = array(0=>'姓名',1=>'性别', 2=>'年龄', 3=>'身份证号码', 4=>'电话', 5=>'邮箱', 6=>'服装尺寸', 7=>'详细地址', 8=>'紧急联系人', 9=>'紧急联系电话',10=>'领取地点',11=>'领取时间',12=>'付款状态'); foreach ($rowVal as $k=>$r){ $objPhpExcel->getActiveSheet()->getStyleByColumnAndRow($k,1) ->getFont()->setBold(true);//字体加粗 $objPhpExcel->getActiveSheet()->getStyleByColumnAndRow($k,1)-> getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//文字居中 $objPhpExcel->getActiveSheet()->setCellValueByColumnAndRow($k,1,$r); } //设置当前的sheet索引 用于后续内容操作 $objPhpExcel->setActiveSheetIndex(0); $objActSheet=$objPhpExcel->getActiveSheet(); //要导出的内容 $map['sid']=$_GET['sid']; $ss=M("Match"); $ssmc=$ss->where(array("id"=>$map['sid']))->find(); $list=M("Match_bm"); $rs=$list->where($map)->select(); //设置当前活动的sheet的名称 $title=$ssmc['title']; $objActSheet->setTitle($title); //设置 $sex=array("女","男"); $fk=array("未付款","付款"); //设置单元格内容 foreach($rs as $k => $v) { $num=$k+2; $objPhpExcel->setActiveSheetIndex(0) //Excel的第A列,uid是你查出数组的键值,下面以此类推 ->setCellValue('A'.$num, $v['uname']) ->setCellValue('B'.$num, $sex[$v['sex']]) ->setCellValue('C'.$num, $v['yearold']) ->setCellValue('D'.$num, $v['sfid']) ->setCellValue('E'.$num, $v['tel']) ->setCellValue('F'.$num, $v['email']) ->setCellValue('G'.$num, $v['fsize']) ->setCellValue('H'.$num, $v['address']) ->setCellValue('I'.$num, $v['urgentname']) ->setCellValue('J'.$num, $v['urgenttel']) ->setCellValue('K'.$num, $v['areaid']) ->setCellValue('L'.$num, $v['lqtime']) ->setCellValue('M'.$num, $fk[$v['fk']]); } $name=date('Y-m-d');//设置文件名 header("Content-Type:application/force-download"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download"); header("Content-Transfer-Encoding:utf-8"); header("Pragma:no-cache"); header("Content-Type:application/vnd.ms-excel"); header('Content-Disposition: attachment;filename="'.$title.'_'.urlencode($name).'.xls"'); header("Cache-Control:max-age=0"); $objWriter = PHPExcel_IOFactory::createWriter($objPhpExcel, 'Excel5'); $objWriter->save('php://output'); exit; }
效果图
打赏本站,你说多少就多少

本文地址:https://www.qi522.com/view/57.html
来 源:千奇博客