在页面显示一下效果, 并写入excel
control层,重要的是控制层这个写入excel方法
function team(){
$matchid = $_SESSION['adminmatch'];
error_reporting(E_ALL);
set_include_path(get_include_path() . PATH_SEPARATOR . 'download/Classes/');
include 'PHPExcel.php';
include 'PHPExcel/Writer/Excel2007.php';
//echo date('H:i:s') . " 创建新的PHPExcel对象<br/>";
$objPHPExcel = new PHPExcel();
// 设置导出excel格式
//echo date('H:i:s') . " Set properties\n";
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
$objPHPExcel->getProperties()->setKeywords("office 2007 openxml php");
$objPHPExcel->getProperties()->setCategory("Test result file");
// 添加数据
//echo date('H:i:s') . " Add some data\n";
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', '序号');
$objPHPExcel->getActiveSheet()->setCellValue('B1', '队伍名称');
$objPHPExcel->getActiveSheet()->setCellValue('C1', '队长名字');
$objPHPExcel->getActiveSheet()->setCellValue('D1', '队长联系电话');
$objPHPExcel->getActiveSheet()->setCellValue('E1', '队伍人数');
$objPHPExcel->getActiveSheet()->setCellValue('F1', '队员');
$objPHPExcel->getActiveSheet()->setCellValue('F2', '男');
$objPHPExcel->getActiveSheet()->setCellValue('G2', '女');
//==============================设置单元格格式=====================================
$objStyleA1 = $objPHPExcel->getActiveSheet()->getStyle('A1:l1');
$objAlignA1 = $objStyleA1->getAlignment();
$objAlignA1->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //左右居中
$objAlignA1->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //上下居中
//字体及颜色
$objFontA1 = $objStyleA1->getFont();
$objFontA1->setName('黑体');
$objFontA1->setSize(12);
//==============================合并单元格=====================================
$objActSheet = $objPHPExcel->getActiveSheet();
$objActSheet->mergeCells('A1:A2');
$objActSheet->mergeCells('B1:B2');
$objActSheet->mergeCells('C1:C2');
$objActSheet->mergeCells('D1:D2');
$objActSheet->mergeCells('E1:E2');
$objActSheet->mergeCells('F1:G1');
//$B = "B3:B6";
//$objActSheet->mergeCells($B);
//$objActSheet->mergeCells('G1:G2');
//--------------------------写入数据到excel--------------开始------------------------------------------
//$arrGroup = $this->Search_model->getGroupEcel();
//var_dump($arrGroup[0]);
//var_dump(count($arrGroup));
//$intCount = count($arrGroup);
//得到所有本赛事的报名分组数据,循环遍历进行重构数组数据
//本赛事队伍分组后的信息group by team.teamid
$teamInfo = $this->Search_model->getteaminfo($matchid);
//本赛事队伍信息,没有group by team.teamid的
$arrAllTeam = $this->Search_model->getClothSize($matchid);
$NewarrTeam = $this->Search_model->constructArrteam($teamInfo,$arrAllTeam);
//var_dump($NewarrCloth);
//die();
//var_dump($arrClothSize[0]);
//var_dump(count($arrClothSize));
//var_dump($NewarrCloth[]["realname"]);
//var_dump($NewarrCloth['1']['headname']);
$intCount = count($NewarrTeam);
if($NewarrTeam){
$intrecord = 2;
$nu = 0;
foreach($NewarrTeam as $key => $value){
//var_dump ($value["realname"]);
$intrecord= $intrecord+1;
$nu = $nu + 1;
$objPHPExcel->getActiveSheet()->setCellValue('A'.$intrecord, $nu);
$objPHPExcel->getActiveSheet()->setCellValue('B'.$intrecord, $value['teamname']);
$objPHPExcel->getActiveSheet()->setCellValue('C'.$intrecord, $value['headname']);
$objPHPExcel->getActiveSheet()->setCellValue('D'.$intrecord, "'".$value['telphone']);
$objPHPExcel->getActiveSheet()->setCellValue('E'.$intrecord, $value['nucount']);
$objPHPExcel->getActiveSheet()->setCellValue('F'.$intrecord, " ".$value['mname']);
$objPHPExcel->getActiveSheet()->setCellValue('G'.$intrecord, " ".$value['fnmae']);
}
$huang = $intrecord;
$intrecord= $intrecord+1;
$objPHPExcel->getActiveSheet()->setCellValue('A'.$intrecord, "汇总求和");
$objPHPExcel->getActiveSheet()->setCellValue('E'.$intrecord, "=SUM(E3:E".$huang.")");
$objPHPExcel->getActiveSheet()->setCellValue('F'.$intrecord, "=SUM(F3:F".$huang.")");
$objPHPExcel->getActiveSheet()->setCellValue('G'.$intrecord, "=SUM(G3:G".$huang.")");
$strTableData="";
for ($i = 1;$i <= 100;$i++){
if(!isset($NewarrTeam[$i])){break;}
$strTableData = $strTableData."<tbody><tr><td>".$i."</td><td>".$NewarrTeam[$i]['teamname']."</td><td>".$NewarrTeam[$i]['headname']."</td><td>".
$NewarrTeam[$i]['telphone']."</td><td>".$NewarrTeam[$i]['nucount']."</td><td>".$NewarrTeam[$i]['mname']."</td><td>".
$NewarrTeam[$i]['fnmae']."</td></tr></tbody>";
}
}else{
$strTableData="";
}
//--------------------------写入数据到excel--------------结束------------------------------------------
// 重命名sheet
//echo "<br/>".date('H:i:s') . " 重命名sheet<br/>";
$objPHPExcel->getActiveSheet()->setTitle('sheet1');
// 第一张工作表组活跃表索引,所以Excel打开这是第一个表
$objPHPExcel->setActiveSheetIndex(0);
// Save Excel 2007 file //保存为 Excel2007格式
//echo date('H:i:s') . " 保存为Excel2007格式<br/>";
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
//var_dump(__FILE__);
//var_dump($_SERVER['DOCUMENT_ROOT']);
$excelname = "team_summary".date('YmdHis');
$path = $_SERVER['DOCUMENT_ROOT']."/download/excel/".$excelname.".xlsx";
$pathgbk = mb_convert_encoding($path, "GBK", "UTF-8");
//echo "<br/>".date('H:i:s') . "保存文件开始>>".$path;
//$objWriter->save(str_replace("/","\\",$pathgbk));
$objWriter->save($path);
//$objWriter->save(str_replace('application\\controllers\\down.php', 'download\\excel\\text1.xlsx', __FILE__));
//echo "<br/>".date('H:i:s') . "保存文件>>".$path;
$strTable = "队伍统计信息生成成功。生成文件时间:".date('Y-m-d H:i:s',time())."。";
//$strTableData="";
$data['strTitle'] = "导出队伍统计信息";
$data['tableheader'] = "<thead><tr>
<th rowspan = \"2\">序号</th>
<th rowspan = \"2\">队伍名称</th>
<th rowspan = \"2\">领队</th>
<th rowspan = \"2\">联系电话</th>
<th rowspan = \"2\">人数</th>
<th colspan=\"2\">队员</th>
<tr><td>男</td><td>女</td></tr>
</tr><thead>
";
$data['strTable'] = $strTable;
$data['excelname'] = $excelname;
$data['strTableData'] = $strTableData;
$data['intCount'] = $intCount;
$this->load->view('header');
$this->load->view('downexcel',$data);
$this->load->view('footer');
}
}
view层
<div tyle=" width:100%; margin-left:auto; margin-right:auto;">
<ul class="breadcrumb">
<li>
<a href="<?=base_url()?>admin">首页</a> <span class="divider">/</span>
</li>
<li>
<a href="#">导出EXCEL</a>
</li>
</ul>
</div>
<div class="row-fluid">
<div class="box span12">
<div class="box-header well">
<h2><i class="icon-th"></i> 导出的数据</h2>
</div>
<div class="box-content">
<p><h4><?=$strTable ?></h4></p>
<a class="btn btn-large btn-primary" href="<?=base_url() ?>../download/excel/<?=$excelname ?>.xlsx">请点击此处下载</a>
</div>
</div>
</div>
<!----------------------------数据预览----------------------------->
<div class="row-fluid sortable">
<div class="box span12">
<div class="box-header well" data-original-title>
<h2><i class="icon-user"></i> 数据预览</h2>
<div class="box-icon">
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
</div>
</div>
<div class="box-content">
<table class="table table-striped table-bordered bootstrap-datatable ">
<thead>
<?=$tableheader ?>
</thead>
<tbody>
<?=$strTableData ?>
</tbody>
</table>
</div>
</div><!--/span-->
</div>