common.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkPHP [ WE CAN DO IT JUST THINK ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8. // +----------------------------------------------------------------------
  9. // | Author: 流年 <liu21st@gmail.com>
  10. // +----------------------------------------------------------------------
  11. // 应用公共文件
  12. function outExcel($data){
  13. $objExcel = new PHPExcel();
  14. $objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');
  15. $objActSheet = $objExcel->getActiveSheet(0);
  16. $objActSheet->setTitle('领取报表');//设置excel的标题
  17. $objActSheet->setCellValue('A1','用户id');
  18. $objActSheet->setCellValue('B1','红包金额(元)');
  19. $objActSheet->setCellValue('C1','时间');
  20. $objActSheet->setCellValue('D1','发放状态');
  21. $baseRow = 2; //数据从N-1行开始往下输出 这里是避免头信息被覆盖
  22. foreach ( $data as $r => $d ) {
  23. $i = $baseRow + $r;
  24. // $objExcel->getActiveSheet()->setCellValue('A'.$i,$d['user_id']);
  25. // $objExcel->getActiveSheet()->setCellValue('B'.$i,$d['price']);
  26. // $objExcel->getActiveSheet()->setCellValue('C'.$i,$d['create_time']);
  27. // $objExcel->getActiveSheet()->setCellValue('D'.$i,$d['status'] == 1 ? '成功' : '失败');
  28. }
  29. $objExcel->setActiveSheetIndex(0);
  30. //4、输出
  31. $objExcel->setActiveSheetIndex();
  32. header('Content-Type: applicationnd.ms-excel');
  33. $time=date('Y-m-d');
  34. header("Content-Disposition: attachment;filename=领取报表$time.xls");
  35. header('Cache-Control: max-age=0');
  36. $objWriter->save('php://output');
  37. }
  38. /**
  39. * excel表格导出
  40. * @param string $fileName 文件名称
  41. * @param array $headArr 表头名称
  42. * @param array $data 要导出的数据
  43. */
  44. if (!function_exists('excel_export')) {
  45. function excel_export($fileName = '', $headArr = [], $data = []) {
  46. $fileName .= "_" . date("Ymd", \think\facade\Request::instance()->time()) . ".xls";
  47. $objPHPExcel = new \PHPExcel();
  48. $objPHPExcel->getProperties();
  49. $key = ord("A"); // 设置表头
  50. foreach ($headArr as $v) {
  51. $colum = chr($key);
  52. //设置表头值
  53. $objPHPExcel->getActiveSheet()->setCellValue($colum.'1',$v);
  54. //设置表头字体样式
  55. $objPHPExcel->getActiveSheet()->getStyle($colum.'1')->getFont()->setName('微软雅黑');
  56. //设置表头字体大小
  57. $objPHPExcel->getActiveSheet()->getStyle($colum.'1')->getFont()->setSize(13);
  58. //设置表头字体是否加粗
  59. $objPHPExcel->getActiveSheet()->getStyle($colum.'1')->getFont()->setBold(true);
  60. //设置表头文字水平居中
  61. $objPHPExcel->getActiveSheet()->getStyle($colum.'1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  62. //设置文字上下居中
  63. $objPHPExcel->getActiveSheet()->getStyle($colum)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  64. //设置单元格背景色
  65. $objPHPExcel->getActiveSheet()->getStyle($colum.'1')->getFill()->getStartColor()->setARGB('FFFFFFFF');
  66. $objPHPExcel->getActiveSheet()->getStyle($colum.'1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  67. $objPHPExcel->getActiveSheet()->getStyle($colum.'1')->getFill()->getStartColor()->setARGB('FF6DBA43');
  68. //设置字体颜色
  69. $objPHPExcel->getActiveSheet()->getStyle($colum.'1')->getFont()->getColor()->setARGB('FFFFFFFF');
  70. //设置列宽度
  71. $objPHPExcel->getActiveSheet()->getColumnDimension($colum)->setWidth(strlen($v)*3);
  72. $key += 1;
  73. }
  74. $column = 2;
  75. $objActSheet = $objPHPExcel->getActiveSheet();
  76. foreach ($data as $key => $rows) { // 行写入
  77. $span = ord("A");
  78. foreach ($rows as $keyName => $value) { // 列写入
  79. if (is_numeric($value)) $value = ' '.$value;
  80. $objActSheet->setCellValue(chr($span) . $column, $value);
  81. $span++;
  82. }
  83. $column++;
  84. }
  85. $fileName = iconv("utf-8", "gb2312", $fileName); // 重命名表
  86. $objPHPExcel->setActiveSheetIndex(0); // 设置活动单指数到第一个表,所以Excel打开这是第一个表
  87. header('Content-Type: application/vnd.ms-excel');
  88. header("Content-Disposition: attachment;filename='$fileName'");
  89. header('Cache-Control: max-age=0');
  90. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  91. $objWriter->save('php://output'); // 文件通过浏览器下载
  92. exit();
  93. }
  94. }