|
|
@@ -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','文件名称');
|
|
|
+*/
|
|
|
+
|