tp5中使用phpexcel生成表格
来源:互联网 发布:黄金现货交易软件 编辑:程序博客网 时间:2024/05/17 20:10
最近项目中需要使用使用phpexcel生成表格,但是在由网页导出excel时,文件的后缀总是会带上html。
后来调试了半天发现,需要在header头输出之前使用ob_end_clean( )去清除php缓冲区中的内容。因为在herder头输出之前,php是不能有任何输出的,哪怕是一个空格,一旦有了输出,你设置的php header头就无效了,因为此时的header头信息早已经固定。
输出excle时出现乱码的情况也是用这种方式解决。
/** * 下载excel表格 */ public function down_excel() { $params = $_GET; $filename = $params['cname'] . '收银明细列表' . date('Y-m-d'); $objPHPExcel = new \PHPExcel(); //设置表头信息 $letter = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'); $excel_column = array( 'id' => "订单号", 'dt' => "交易时间", 'money' => "金额", 'status' => "交易状态", 'pay_type' => "支付渠道", 'device' => "终端号", 'operator' => "收银员", 'pay_id' => "渠道流水号", 'client_name' => "商户名称", 'pay_scense' => "支付场景", 'operate_fee' => "手续费", 'no' => "小票单号", ); $new_letter = []; $new_excel_column = []; foreach ($params['act_name'] as $k => $d) { $new_letter[$d] = $letter[$k]; $new_excel_column[$d] = $excel_column[$d]; } foreach ($new_excel_column as $k => $d) { //设置行宽自动调整 $objPHPExcel->getActiveSheet()->getColumnDimension($new_letter[$k])->setWidth(12); $objPHPExcel->getActiveSheet()->setCellValue($new_letter[$k] . '1', $d); } //填充表格信息 $data['rows'] = []; foreach ($params['down_class'] as $item) { switch ($item) { case 'pay_success': $params['dm_status'] = 2; break; case 'refund_success': $params['dm_status'] = 4; break; case 'pay_fail': $params['dm_status'] = 3; break; case 'pay_undefined': $params['dm_status'] = 5; break; } $ret = $this->getData($params); $data['rows'] = array_merge($data['rows'], $ret['rows']); } $total = 0; if (!empty($data['rows'])) { foreach ($data['rows'] as $k => $d) { $i = $k + 2; foreach ($new_letter as $key => $item) { //填充数据 $objPHPExcel->getActiveSheet()->setCellValue($item . $i, strip_tags($d[$key])); } $total += strip_tags($d['money']); } } $index = count($data['rows']) + 2; $objPHPExcel->getActiveSheet()->mergeCells("A{$index}:B{$index}"); $objPHPExcel->getActiveSheet()->setCellValue('A' . $index, '合计'); $objPHPExcel->getActiveSheet()->setCellValue('C' . $index, $total); //保存表格版本格式 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,"Excel2007"); //下载表格 ob_end_clean(); //关闭缓冲区之后再输出header头,在header设置之前,可能某个地方有了输出,导致Content-Type的类型为text/html,所以输出的表格后缀才会是html header('Content-Type: application/octet-stream'); header("Content-Disposition: attachment; filename=\"{$filename}.xlsx\""); $objWriter->save("php://output"); }
阅读全文
0 0
- tp5中使用phpexcel生成表格
- tp5 phpexcel导入excel表格
- tp5 phpexcel导出excel表格
- PHPExcel表格生成
- phpexcel 生成表格
- php/thinkphp使用PHPExcel解析表格数据,生成表格案例
- tp框架中使用phpexcel导出excel表格
- 【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)
- thinkphp5 , tp5 导入 Excel ,phpExcel 插件使用,文件上传
- tp5 Composer安装与加载phpexcel插件与使用
- thinkphp中使用PHPExcel生成文件的一个通用方法!
- yii中使用phpexcel
- Thinkphp使用PHPExcel导出Excel表格
- thinkphp使用PHPExcel导出excel表格
- 使用PHPExcel生成和读取Excel文件
- 使用PHPExcel生成和读取Excel文件
- 使用PHPExcel生成和读取Excel文件
- 使用PHPExcel生成和读取Excel文件
- BIOS-SMI Introduction
- Bootstrap模态框相关的问题
- Java之HashMap源码解读
- spark python wordcount
- 数据结构-图的基础代码
- tp5中使用phpexcel生成表格
- ROS YOLOv2
- K、KB、M、MB、G、GB 、TB
- 进制转换
- C语言mooc小程序(1)
- 在github创建项目,以及pull到本地
- [HNOI2012]永无乡 SBT+启发式合并
- 7-21 求前缀表达式的值(25 分)
- 刷新当前的tabs页