第一步现将PHPExcel插件类库下载下来并放在项目的目录里(下面的实例是放在了根目录下的vendor下)
第二步实现方法如下
function exportExam($itemids){
//引用
require_once DT_ROOT.'/vendor/PHPExcel/PHPExcel.php';
$PHPExcel = new PHPExcel(); //实例化PHPExcel类,类似于在桌面上新建一个Excel表格
$PHPSheet = $PHPExcel->getActiveSheet(); //获得当前活动sheet的操作对象
$PHPSheet->setTitle('报名表'); //给当前活动sheet设置名称
//表头
//给当前活动sheet填充数据,数据填充是按顺序一行一行填充的,假如想给A1留空,可以直接setCellValue(‘A1’,’’);
$PHPSheet->setCellValue('A1', ''列名称1')
->setCellValue('B1', ''列名称2')
->setCellValue('C1', ''列名称3')
->setCellValue('D1', ''列名称4')
->setCellValue('E1', '列名称5')
;
$members = 这是从数据库查询到的数据;
foreach ($members as $k => $v) {
$cell = $k + 2;
$PHPSheet->setCellValue('A' . $cell, $v['id'])
->setCellValue('B' . $cell, $v['id'])
->setCellValue('C' . $cell, $v['id'])
->setCellValue('D' . $cell, $v['id'])
->setCellValue('E' . $cell, $v['id'])
;
}
//这是设置列D的宽度
$PHPSheet->getColumnDimension('D')->setWidth(20);
// 生成2007excel格式的xlsx文件
$PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel5');
$outFileName = 'excel表名称-'.date('YmdHis');
$outFileName = iconv('UTF-8','GBK',$outFileName);
header('Content-Type: text/html;charset=utf-8');
header('Content-Type: xlsx');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$outFileName.'.xls"');
header('Cache-Control: max-age=0');
$PHPWriter->save("php://output");
break;
}