以下为本人在是使用Yii框架进行开发时使用PHPexcel的代码,主要解决如何使用Yii框架的PHPEXCEL动态导入数据到Excel表。
/*
* 将当前数据导出为EXCEL*/
public function actionImportOutExcel()
{
//当期查询出的数据
$UID = Yii::app()->user->id;
$condition = 'uid = '.$UID;
$DATA = WbAttention::model()->findAll(array('condition'=>$condition));
spl_autoload_unregister(array('YiiBase','autoload'));
include_once(dirname(dirname(__FILE__)).'\extensions/PHPExcel.php');
include_once(dirname(dirname(__FILE__)).'\extensions/PHPExcel/IOFactory.php');
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1','序号')
->setCellValue('B1','网吧IP')
->setCellValue('C1','网吧名称')
->setCellValue('D1','日期')
->setCellValue('E1','日期')
->setCellValue('F1','日期')
->setCellValue('G1','日期')
->setCellValue('H1','日期')
->setCellValue('I1','日期')
->setCellValue('J1','日期')
->setCellValue('K1','日期')
->setCellValue('L1','日期')
->setCellValue('M1','合计');
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(11);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(11);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(11);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(11);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(11);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(11);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(11);
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(11);
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(11);
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(11);
$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(11);
$i=2;
foreach($DATA as $v)
{
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$i, $v->id)
->setCellValue('B'.$i, $v->id)
->setCellValue('C'.$i, $v->id)
->setCellValue('D'.$i, $v->id)
->setCellValue('E'.$i, $v->id)
->setCellValue('F'.$i, $v->id)
->setCellValue('G'.$i, $v->id)
->setCellValue('H'.$i, $v->id)
->setCellValue('I'.$i, $v->id)
->setCellValue('J'.$i, $v->id)
->setCellValue('K'.$i, $v->id)
->setCellValue('L'.$i, $v->id)
->setCellValue('M'.$i, $v->id);
$i++;
}
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel;charset=utf-8');
header('Content-Disposition: attachment;filename='.urlencode("report.xls").'');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
Yii::app()->end();
spl_autoload_register(array('YiiBase','autoload'));
}