搜索
系统检测到您的用户名不符合规范:

tp5 实现phpexcel 导出数据

浏览:7943 发布日期:2018年06月23日 分类:求助交流 关键字: tp5 phpexcel 导出数据
今天有一个项目用到了导出数据这个功能网上搜了很多答案最终实现。使用PHPExcel来进行导出数据,Comporse 下载不下来,于是就去github里面手动下载,下载完成后发现里面文件很多,这里我们只用到了Classes这个文件,将Classes重命名为PHPExcel放到vendor目录下就可以。
php中代码(请自觉忽略方法名): public function daochu(){
$xlsData = Db('member')->select();
Vendor('PHPExcel.PHPExcel');//调用类库,路径是基于vendor文件夹的
Vendor('PHPExcel.PHPExcel.Worksheet.Drawing');
Vendor('PHPExcel.PHPExcel.Writer.Excel2007');
$objExcel = new \PHPExcel();
//set document Property
$objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');

$objActSheet = $objExcel->getActiveSheet();
$key = ord("A");
$letter =explode(',',"A,B,C,D,E,F,G,H,I,J");
$arrHeader = array('姓名','公司','公司地址','邮箱','电话','职位','行业应用','会员角色','是否验证');
//填充表头信息
$lenth = count($arrHeader);
for($i = 0;$i < $lenth;$i++) {
$objActSheet->setCellValue("$letter[$i]1","$arrHeader[$i]");
};
//填充表格信息
foreach($xlsData as $k=>$v){
$k +=2;
$objActSheet->setCellValue('A'.$k,$v['real_name']);
$objActSheet->setCellValue('B'.$k, $v['cor_name']);
$objActSheet->setCellValue('C'.$k, $v['com_add']);
$objActSheet->setCellValue('D'.$k, $v['email']);
$objActSheet->setCellValue('E'.$k, $v['tel']);
$objActSheet->setCellValue('F'.$k, $v['position']);
$objActSheet->setCellValue('G'.$k, $v['apphang']);
$objActSheet->setCellValue('H'.$k, $v['role_id'] == 2?'正式会员':'普通会员');
$objActSheet->setCellValue('I'.$k, $v['active'] == 1?'是':'否');
// 表格高度
$objActSheet->getRowDimension($k)->setRowHeight(20);
}

$width = array(10,15,20,25,30);
//设置表格的宽度
$objActSheet->getColumnDimension('A')->setWidth($width[1]);
$objActSheet->getColumnDimension('B')->setWidth($width[2]);
$objActSheet->getColumnDimension('C')->setWidth($width[3]);
$objActSheet->getColumnDimension('D')->setWidth($width[4]);
$objActSheet->getColumnDimension('E')->setWidth($width[1]);
$objActSheet->getColumnDimension('F')->setWidth($width[1]);
$objActSheet->getColumnDimension('G')->setWidth($width[1]);
$objActSheet->getColumnDimension('H')->setWidth($width[1]);
$objActSheet->getColumnDimension('I')->setWidth($width[1]);


$outfile = "信息列表.xlsx";
ob_end_clean();
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outfile.'"');
header("Content-Transfer-Encoding: binary");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$objWriter->save('php://output');
}
然后在需要的地方调用这个方法即可实现数据导出功能

目前遇到的问题:本地测试正常,放到阿里linux主机上如果不开启debug就会报500错误
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
杜华秋
积分:1396 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /