common.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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. /**
  13. * 删除目录以及其下的文件
  14. * @param $directory
  15. * @return bool
  16. */
  17. function removeDir($directory)
  18. {
  19. if (false == is_dir($directory)) {
  20. return false;
  21. }
  22. $handle = opendir($directory);
  23. while (false !== ($file = readdir($handle))) {
  24. if ('.' != $file && '..' != $file) {
  25. is_dir("$directory/$file") ? removeDir("$directory/$file") : @unlink("$directory/$file");
  26. }
  27. }
  28. if (readdir($handle) == false) {
  29. closedir($handle);
  30. rmdir($directory);
  31. }
  32. return true;
  33. }
  34. function Kfid($uid)
  35. {
  36. return trim($uid, 'KF');
  37. }
  38. function kfUid($id)
  39. {
  40. return 'KF' . $id;
  41. }
  42. //数组转为健的数组
  43. function kftoKey($uidArray, $type = 0)
  44. {
  45. $return = [];
  46. foreach ($uidArray as $val) {
  47. if ($type == 0) {
  48. $return[$val] = 0;
  49. } elseif ($type == 1) {
  50. $return[$val] = [];
  51. } else {
  52. $return[$val] = $val;
  53. }
  54. }
  55. return $return;
  56. }
  57. //保留小数位数
  58. function floatPointDigit($data, $long = 2)
  59. {
  60. $long = intval($long);
  61. $for1 = "%." . $long . "f";
  62. $for2 = "%." . ($long + 1) . "f";
  63. return sprintf($for1, substr(sprintf($for2, $data), 0, -1));
  64. }
  65. //秒格式化为 小时分秒
  66. function secendToHourMinit($sec)
  67. {
  68. $array = ['h' => 0, 'm' => 0, 's' => 0];
  69. $sec = intval($sec);
  70. $array['h'] = floor($sec / 3600);
  71. $array['m'] = floor(($sec - 3600 * $array['h']) / 60);
  72. $array['s'] = $sec - 3600 * $array['h'] - 60 * $array['m'];
  73. $return = '';
  74. if ($array['h']) {
  75. $return .= $array['h'] . '小时';
  76. }
  77. if ($array['m']) {
  78. $return .= $array['m'] . '分';
  79. }
  80. if ($array['s']) {
  81. $return .= $array['s'] . '秒';
  82. }
  83. return $return;
  84. }
  85. //小数转百分比显示
  86. function perDisplay($dit, $xiaos = 2)
  87. {
  88. return floatPointDigit(floor(100 * $dit), $xiaos) . '%';
  89. }
  90. /**
  91. * 导出excel表格
  92. *
  93. * @param array $columName 第一行的列名称
  94. * @param array $list 二维数组
  95. * @param string $setTitle sheet名称
  96. * @return
  97. * @author Tggui <tggui@vip.qq.com>
  98. */
  99. function exportExcel($columName, $list, $setTitle = 'Sheet1', $fileName = 'demo')
  100. {
  101. if (empty($columName) || empty($list)) {
  102. return '列名或者内容不能为空';
  103. }
  104. if (count($list[0]) != count($columName)) {
  105. return '列名跟数据的列不一致';
  106. }
  107. //实例化PHPExcel类
  108. $PHPExcel = new PHPExcel();
  109. //获得当前sheet对象
  110. $PHPSheet = $PHPExcel->getActiveSheet();
  111. //定义sheet名称
  112. $PHPSheet->setTitle($setTitle);
  113. //excel的列 这么多够用了吧?不够自个加 AA AB AC ……
  114. $letter = [
  115. 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
  116. 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
  117. ];
  118. //把列名写入第1行 A1 B1 C1 ...
  119. for ($i = 0; $i < count($list[0]); $i++) {
  120. $PHPSheet->setCellValue("$letter[$i]1", "$columName[$i]");
  121. }
  122. //内容第2行开始
  123. foreach ($list as $key => $val) {
  124. foreach (array_values($val) as $key2 => $val2) {
  125. $PHPSheet->setCellValue($letter[$key2] . ($key + 2), $val2);
  126. }
  127. }
  128. //生成2007版本的xlsx
  129. $PHPWriter = PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007');
  130. header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  131. header('Content-Disposition: attachment;filename=' . $fileName . '.xlsx');
  132. header('Cache-Control: max-age=0');
  133. $PHPWriter->save("php://output");
  134. }
  135. /*
  136. * 使用方法
  137. $titlname = ['订单号','消费用户','订单金额','订单数量','支付状态','订单时间'];
  138. exportExcel($titlname,'你的二维数组数据','Sheet1','文件名称');
  139. */