如何将后台数据导出成Excel表格

首先生成 Excel 各种格式参照这个网址:

https://blog.csdn.net/u011391184/article/details/70154306

然后是去得到数据,在控制层的方法(获取数据复杂的话就在model层区写,再返回一个数组):

//导出统计

public function actionExcel(){

$Rmodel=new ReduserMoney();

$objectPHPExcel = new \PHPExcel();

 

//设置表格头的输出

$objectPHPExcel->setActiveSheetIndex()->setCellValue('A1', '总金额');

$objectPHPExcel->setActiveSheetIndex()->setCellValue('B1', '总人数');

$objectPHPExcel->setActiveSheetIndex()->setCellValue('C1', '总成功人数');

$objectPHPExcel->setActiveSheetIndex()->setCellValue('D1', '真实成功人数');

$objectPHPExcel->setActiveSheetIndex()->setCellValue('E1', '总失败人数');

$objectPHPExcel->setActiveSheetIndex()->setCellValue('F1', '真实失败人数');

$objectPHPExcel->setActiveSheetIndex()->setCellValue('G1', '时间');

//跳转到recharge这个model文件的statistics方法去处理数据

$data=$Rmodel::find()->asArray()->all();

 

//指定开始输出数据的行数

$n = 2;

foreach ($data as $v){

$objectPHPExcel->getActiveSheet()->setCellValue('A'.($n) ,$v['user_money']);

$objectPHPExcel->getActiveSheet()->setCellValue('B'.($n) ,$v['user_num']);

$objectPHPExcel->getActiveSheet()->setCellValue('C'.($n) ,$v['success']);

$objectPHPExcel->getActiveSheet()->setCellValue('D'.($n) ,$v['Rsuccess']);

$objectPHPExcel->getActiveSheet()->setCellValue('E'.($n) ,$v['error']);

$objectPHPExcel->getActiveSheet()->setCellValue('F'.($n) ,$v['Rerror']);

$objectPHPExcel->getActiveSheet()->setCellValue('G'.($n) ,$v['card_time']);

$n = $n +1;

}

ob_end_clean();

ob_start();

header('Content-Type : application/vnd.ms-excel');

 

//设置填充的样式和背景色

$objectPHPExcel->getActiveSheet()->getStyle( 'A1:B1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);

$objectPHPExcel->getActiveSheet()->getStyle( 'A1:B1')->getFill()->getStartColor()->setARGB('7fff00ff');

//合并

// $objectPHPExcel->getActiveSheet()->mergeCells( 'A20:A21');

//设置输出文件名及格式

header('Content-Disposition:attachment;filename="小司统计'.date("YmdHis").'.xls"');

 

//导出.xls格式的话使用Excel5,若是想导出.xlsx需要使用Excel2007

$objWriter= \PHPExcel_IOFactory::createWriter($objectPHPExcel,'Excel5');

$objWriter->save('php://output');

ob_end_flush();

 

//清空数据缓存

unset($data);

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于后台导出Excel表格,可以使用以下步骤: 1. 准备数据:从后台获取需要导出数据,可以使用ORM框架查询数据库得到数据集合。 2. 创建Excel文件:使用POI库创建一个Excel文件对象,并创建一个工作表对象。 3. 设置表头:创建表头行和列,并设置列名,可以使用POI库提供的CellStyle设置单元格样式。 4. 填充数据:遍历数据集合,逐行添加数据到工作表中。 5. 导出Excel文件:将创建的Excel文件对象写入到输出流中,浏览器会自动弹出下载框。 下面是一个Java代码示例: ```java // 准备数据 List<User> users = userService.findAllUsers(); // 创建Excel文件 Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Users"); // 设置表头 Row headerRow = sheet.createRow(0); headerRow.createCell(0).setCellValue("ID"); headerRow.createCell(1).setCellValue("Name"); headerRow.createCell(2).setCellValue("Age"); // 填充数据 int rowNum = 1; for (User user : users) { Row row = sheet.createRow(rowNum++); row.createCell(0).setCellValue(user.getId()); row.createCell(1).setCellValue(user.getName()); row.createCell(2).setCellValue(user.getAge()); } // 导出Excel文件 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-Disposition", "attachment; filename=users.xlsx"); OutputStream outputStream = response.getOutputStream(); workbook.write(outputStream); outputStream.flush(); outputStream.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值