900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > phpexcel数据导出分多个工作区(sheet)

phpexcel数据导出分多个工作区(sheet)

时间:2023-11-20 14:20:58

相关推荐

phpexcel数据导出分多个工作区(sheet)

1、数据源

$expTableData1 = [[['name' => 'ddd' , 'age' => 12] , ['name' => 'yyy' , 'age' => 13] , ['name' => 'hhh' , 'age' => 14]],[['hobby' => 'aaa' , 'sex' => '女'] , ['hobby' => 'uuu' , 'sex' => '男'] , ['hobby' => 'kkk' , 'sex' => '女']],[['address' => 'ccc' , 'birth' => '12-13'] , ['address' => 'ccc' , 'birth' => '6-4'] , ['address' => 'ccc' , 'birth' => '9-6']]];

2、导出Excel(此方法最好写在common文件夹下,infoExcel.php)

function exportExcel($expTitle,$expCellName,$expTableData,$sheetName,$tableHeader='',$defaultWidth=15){/**文件名称*/$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);$fileName = $expTitle.date('_YmdHis');$cellNum = count($expCellName);/** 实例化 */vendor("PHPExcel.PHPExcel");$objPHPExcel = new PHPExcel();$cellName = 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');/** 缺省情况下,PHPExcel会自动创建第一个SHEET,其索引SheetIndex=0 *//** 设置 当前处于活动状态的SHEET 为PHPExcel自动创建的第一个SHEET */foreach($expTableData as $key => $item) {if($key !== 0) $objPHPExcel->createSheet();$objPHPExcel->setactivesheetindex($key);/** 设置工作表名称 */$objPHPExcel->getActiveSheet($key)->setTitle($sheetName[$key]);for($i = 0; $i < $cellNum; $i++){/** 垂直居中 */$objPHPExcel->setActiveSheetIndex($key)->getStyle($cellName[$i])->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);/** 水平居中 */$objPHPExcel->setActiveSheetIndex($key)->getStyle($cellName[$i])->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);/** 设置默认宽度 */$objPHPExcel->setActiveSheetIndex($key)->getColumnDimension($cellName[$i])->setWidth($defaultWidth);$objPHPExcel->setActiveSheetIndex($key)->setCellValue($cellName[$i].'1', $expCellName[$i][1]);}/** 写入多行数据 */for($i = 0; $i < count($item); $i++){for($j = 0; $j < $cellNum; $j++){$objPHPExcel->getActiveSheet($key)->setCellValue($cellName[$j].($i+2), $item[$i][$expCellName[$j][0]]);}}}/** 设置第一个工作表为活动工作表 */$objPHPExcel->setactivesheetindex(0);@header('pragma:public');@header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');@header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');exit;

3、调用

load("@.infoExcel");exportExcel($xlsName, $xlsCell, $dataArr, $sheetName , $title);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。