您的位置:首页 > 编程语言 > PHP开发

phpexcel导出数据,用数组遍历导出表头

2018-03-09 11:42 507 查看
导出excel,比较常用的是,一列一列的打印到表格上,像这种:
$objPHPExcelActiveSheet->setCellValue('A1', '姓名');
$objPHPExcelActiveSheet->setCellValue('B1', '性别');
$objPHPExcelActiveSheet->setCellValue('C1', '年龄');
$objPHPExcelActiveSheet->setCellValue('D1', '成绩');
$objPHPExcelActiveSheet->setCellValue('E1', '学号');这种比较简单,但是可维护性比较差,假如后期要在中间插一列,改动就比较大,比较麻烦。所以,最好是用数组来循环表头,像这样:
$config = array(
array(10, '姓名'), array(10, '性别'), array(15, '年龄'),
   array(20, '成绩'), array(20, '学号')
);
$objPHPExcel = new PHPExcel ();
//参数依次为excel对象、表头数组、表头起始行、默认行高
$lastColumn = setPHPExcelHeader($objPHPExcel, $config, 5, 15);

function setPHPExcelHeader(&$excelClass, $config, $startRow, $defaultRowHeight = 20)
{
if (gettype($excelClass) == 'object') {
if (is_array($config) && sizeof($config)) {
foreach ($config as $k => $v) {
$letter = '';
$letter = getLetterColumn($k);
if ($letter) {
$excelClass->getActiveSheet()->getColumnDimension($letter)
            ->setWidth($v[0]);
$excelClass->getActiveSheet()->setCellValue($letter . $startRow, $v[1]);
}
}
}
$excelClass->getActiveSheet()->getDefaultRowDimension()
             ->setRowHeight($defaultRowHeight);
}
return $letter;
}
//表格数据部分
$column = 0;
//用getLetterCllumn($column)来表示列,新增列只需$column++即可
//如下,就表示,向A2写入‘张三’,向B2写入‘男’
$objPHPExcel->getActiveSheet()->setCellValue(getLetterColumn($column++) . '2', '张三');
$objPHPExcel->getActiveSheet()->setCellValue(getLetterColumn($column++) . '2', '男');


这样后期要新增列,只需要在数组中间添加元素即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  phpexcel