vali 6 tahun lalu
induk
melakukan
b0666c2190
1 mengubah file dengan 97 tambahan dan 8 penghapusan
  1. 97 8
      application/common.php

+ 97 - 8
application/common.php

@@ -54,20 +54,109 @@ function kftoKey($uidArray, $type = 0)
     foreach ($uidArray as $val) {
         if ($type == 0) {
             $return[$val] = 0;
-        } elseif ($type==1) {
+        } elseif ($type == 1) {
             $return[$val] = [];
-        }else{
+        } else {
             $return[$val] = $val;
         }
     }
-    return $return ;
+    return $return;
 }
 
 
 //保留小数位数
-function  floatPointDigit($data,$long=2){
-    $long = intval($long) ;
-    $for1 = "%.".$long."f" ;
-    $for2 = "%.".($long+1)."f" ;
-    return  sprintf($for1,substr(sprintf($for2, $data), 0, -1));
+function floatPointDigit($data, $long = 2)
+{
+    $long = intval($long);
+    $for1 = "%." . $long . "f";
+    $for2 = "%." . ($long + 1) . "f";
+    return sprintf($for1, substr(sprintf($for2, $data), 0, -1));
+}
+
+//秒格式化为 小时分秒
+function secendToHourMinit($sec)
+{
+    $array = ['h' => 0, 'm' => 0, 's' => 0];
+    $sec = intval($sec);
+    $array['h'] = floor($sec / 3600);
+    $array['m'] = floor(($sec - 3600 * $array['h']) / 60);
+    $array['s'] = $sec - 3600 * $array['h'] - 60 * $array['m'];
+
+    $return = '';
+    if ($array['h']) {
+        $return .= $array['h'] . '小时';
+    }
+
+    if ($array['m']) {
+        $return .= $array['m'] . '分';
+    }
+
+    if ($array['s']) {
+        $return .= $array['s'] . '秒';
+    }
+
+    return $return;
+
+}
+
+//小数转百分比显示
+function perDisplay($dit, $xiaos = 2)
+{
+    return floatPointDigit(floor(100 * $dit), $xiaos) . '%';
 }
+
+/**
+ * 导出excel表格
+ *
+ * @param   array $columName 第一行的列名称
+ * @param   array $list 二维数组
+ * @param   string $setTitle sheet名称
+ * @return
+ * @author  Tggui <tggui@vip.qq.com>
+ */
+function exportExcel($columName, $list, $setTitle = 'Sheet1', $fileName = 'demo')
+{
+    if (empty($columName) || empty($list)) {
+        return '列名或者内容不能为空';
+    }
+
+    if (count($list[0]) != count($columName)) {
+        return '列名跟数据的列不一致';
+    }
+
+    //实例化PHPExcel类
+    $PHPExcel = new PHPExcel();
+    //获得当前sheet对象
+    $PHPSheet = $PHPExcel->getActiveSheet();
+    //定义sheet名称
+    $PHPSheet->setTitle($setTitle);
+
+    //excel的列 这么多够用了吧?不够自个加 AA AB AC ……
+    $letter = [
+        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+        'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
+    ];
+    //把列名写入第1行 A1 B1 C1 ...
+    for ($i = 0; $i < count($list[0]); $i++) {
+        $PHPSheet->setCellValue("$letter[$i]1", "$columName[$i]");
+    }
+    //内容第2行开始
+    foreach ($list as $key => $val) {
+        foreach (array_values($val) as $key2 => $val2) {
+            $PHPSheet->setCellValue($letter[$key2] . ($key + 2), $val2);
+        }
+    }
+    //生成2007版本的xlsx
+    $PHPWriter = PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007');
+    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
+    header('Content-Disposition: attachment;filename=' . $fileName . '.xlsx');
+    header('Cache-Control: max-age=0');
+    $PHPWriter->save("php://output");
+}
+
+/*
+ * 使用方法
+$titlname    =    ['订单号','消费用户','订单金额','订单数量','支付状态','订单时间'];
+exportExcel($titlname,'你的二维数组数据','Sheet1','文件名称');
+*/
+