下面是我在yii2.0项目中得一个model写的excel导出方法,仅供大家参考:
先在模型里引入use PHPExcel;
public static function exportData($data ) //$data是从数据库中读出来得所有数据
{
$objectPHPExcel = new PHPExcel();
$objectPHPExcel->setActiveSheetIndex(0);
//表格头的输出
$objectPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25);//设置表头宽度,以及用到了多少列
$objectPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
$objectPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
$objectPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
$objectPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
$objectPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);
$objectPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15);
$objectPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15);
$objectPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(15);
$objectPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(15);
$objectPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(15);
$objectPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(15);
$objectPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(15);
//填入列表
$k = 1;
foreach ($data as $key => $value) { //循环数据,将数据一一写到excel中
$k++;
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', '时间'); //设置表头标题,也就是这对这一列得命名
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('B1', '启动用户');
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('C1', '新增启动');
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('D1', '登录用户');
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('E1', '新增登录');
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('F1', '注册量');
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('G1', '试用量');
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('H1', '包月订单');
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('I1', '包月金额');
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('J1', '包年订单');
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('K1', '包年金额');
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('L1', '总订单数');
$objectPHPExcel->setActiveSheetIndex(0)->setCellValue('M1', '总金额数');
$objectPHPExcel->getActiveSheet()->setCellValue('A' . ($k), $value['pay_day']); //将数据依次存到表中
$objectPHPExcel->getActiveSheet()->setCellValue('B' . ($k), $value['active_device_uv']);
$objectPHPExcel->getActiveSheet()->setCellValue('C' . ($k), $value['new_device_uv']);
$objectPHPExcel->getActiveSheet()->setCellValue('D' . ($k), $value['login_uv']);
$objectPHPExcel->getActiveSheet()->setCellValue('E' . ($k), $value['increment_uv']);
$objectPHPExcel->getActiveSheet()->setCellValue('F' . ($k), $value['user']);
$objectPHPExcel->getActiveSheet()->setCellValue('G' . ($k), $value['trial']);
$objectPHPExcel->getActiveSheet()->setCellValue('H' . ($k), $value['month_order']);
$objectPHPExcel->getActiveSheet()->setCellValue('I' . ($k), $value['month_revenue']);
$objectPHPExcel->getActiveSheet()->setCellValue('J' . ($k), $value['year_order']);
$objectPHPExcel->getActiveSheet()->setCellValue('K' . ($k), $value['year_revenue']);
$objectPHPExcel->getActiveSheet()->setCellValue('L' . ($k), $value['total_order']);
$objectPHPExcel->getActiveSheet()->setCellValue('M' . ($k), $value['total_revenue']);
}
$objWriter = PHPExcel_IOFactory::createWriter($objectPHPExcel, 'Excel2007');
$addr = 'C:';
$objWriter->save($addr . '\基础数据' . '.xlsx'); //保存到C盘下面,在c盘中就可以看到数据信息了
}