当前位置:首页>Excel>【Python实战】一键提取Excel排班表夜班排休|自动合并连续日期成区间,人事/行政直接复制复用

【Python实战】一键提取Excel排班表夜班排休|自动合并连续日期成区间,人事/行政直接复制复用

  • 2026-03-31 08:41:50
【Python实战】一键提取Excel排班表夜班排休|自动合并连续日期成区间,人事/行政直接复制复用

做学校行政、单位人事、后勤排班的小伙伴,每月是不是都被「排班表统计排休」这件事耗掉大把时间?

✅ 手里一份标准Excel排班表,要挨个核对每位老师/员工的「夜班」日期,手动摘抄到新表格;

✅ 还要把零散的夜班日期,比如「4、8、9、10」,手动整理成「4日、8-10日」的区间格式,眼睛盯久了酸涩不说,还容易漏数、错合并连续日期;

✅ 几十人的排班表,手动统计一遍至少半小时,但凡排班表微调,又要重新返工,机械重复还没技术含量,纯纯浪费时间!

今天分享的这套Python代码,完美贴合你的工作流程:先精准匹配你的Excel排班表样式 → 再读取表格数据 → 自动统计夜班日期 → 智能格式化 → 生成汇总表,一站式解决所有问题!全程10秒搞定几十人的排休统计,准确率100%,代码注释拉满、逐段精讲,零基础也能复制即用,改个文件名就能运行,从此彻底告别手动统计排班表的苦差事!


一、 需求:你的Excel排班表 假如是下面的样子:

排班表.xlsx:

 我们想要实现的最终效果:


二、 本次实战核心说明

✔ 核心功能

「读取标准排班表Excel」→「遍历每一行每一列」→「筛选标记为「夜」的日期」→「智能合并连续日期为区间」→「生成排休汇总Excel」

✔ 用到的Python库

仅1个核心刚需库:pandas — Python处理Excel表格的天花板,办公自动化必备,无任何冷门库,pip一键安装即可。

✔ 零基础友好度

全程只需修改2个文件名,其余代码无需改动,复制粘贴就能运行,无任何编程基础也能上手。


三、 逐段完整代码 + 逐行详细精讲(严格按「匹配样式→读取数据→统计筛选→格式化→保存结果」)

整体逻辑顺序:匹配表格样式 → 导入库 → 定义日期格式化函数 → 读取Excel数据 → 逐行统计夜班日期 → 格式化日期 → 生成结果保存Excel,全程逻辑连贯,和咱们手动统计的思路完全一致!

▶▶ 第一段:导入核心依赖库

import pandas as pd

✅ 代码讲解

pandas这一个库,它能一站式完成「Excel读取、数据遍历、数据筛选、结果保存」所有操作,是Python办公自动化处理Excel的万能工具,没有之一。


▶▶ 第二段:定义【核心工具函数】format_rest_days — 零散日期转连续区间(统计排休的核心)

defformat_rest_days(days_list):
"""
    专用格式化函数:将提取的零散夜班日期列表,转为规范的区间字符串
    示例:传入 [4,8,9,10] → 返回 "4日、8-10日"
    """

# 如果没有夜班日期,返回空字符串
ifnot days_list:
return""

# 对日期排序,防止日期乱序导致连续区间合并失败(比如[10,8,9])
    days_list.sort()
    result_strs = []  # 存储拆分好的区间字符串,如["4日", "8-10日"]
    start = days_list[0]  # 初始化连续区间的起始日期
    end = days_list[0]    # 初始化连续区间的结束日期

# 遍历排序后的日期,从第二个开始判断是否连续
for i in range(1, len(days_list)):
        curr_day = days_list[i]
# 判断当前日期是否和上一个日期连续(比如9是8+1,属于连续)
if curr_day == end + 1:
            end = curr_day  # 连续则更新区间结束值
else:
# 不连续则闭合上一个区间,存入结果列表
if start == end:
# 区间只有单个日期的情况,如:4日
                result_strs.append(f"{start}日")
else:
# 区间是连续多个日期的情况,如:8-10日
                result_strs.append(f"{start}-{end}日")
# 重新初始化新的区间起始和结束值
            start = curr_day
            end = curr_day

# 处理循环结束后,最后一个未闭合的区间(必做,否则漏最后一段)
if start == end:
        result_strs.append(f"{start}日")
else:
        result_strs.append(f"{start}-{end}日")

# 用顿号拼接所有区间,生成最终的排休字符串
return"、".join(result_strs)

✅ 核心细节讲解

  1. 这个函数是本次统计的「灵魂」,专门解决办公场景中「零散数字合并连续区间」的需求,除了排班表,考勤统计、值班汇总都能复用;
  2. 必须执行days_list.sort():因为提取的日期可能是乱序的(比如先提取到10号,再提取到8号),排序后才能正确识别连续日期;
  3. 循环结束后一定要处理最后一个区间:循环中只有「遇到不连续日期才闭合区间」,最后一段连续日期不会被处理,这是避免漏数据的关键。

▶▶ 第三段:定义【核心业务函数】process_excel — 完整实现「读取Excel→统计夜班→生成结果」全流程(重中之重)

本段代码严格按照「读取Excel数据 → 遍历每行数据 → 逐列筛选夜班日期 → 统计整理 → 保存结果」的顺序编写,和我们手动统计的步骤完全一致,逻辑清晰,易懂易改!

defprocess_excel(input_file, output_file):
# ========== 第一步:读取Excel排班表数据(严格匹配前面的表格样式) ==========
# header=0 :指定Excel的【第一行】作为列名,对应我们的「姓名、1、2...30」
# skiprows=[1] :强制跳过Excel的【第二行】,因为第二行是星期几的备注,无数据
    df = pd.read_excel(input_file, header=0, skiprows=[1])

# ========== 致命避坑!统一列名格式,保证日期列能被正确匹配 ==========
# 原因:Excel里的1、2、3会被pandas默认读取为【整数】,我们遍历的是字符串格式的日期
# 处理后:所有列名统一转为字符串,比如 1 → '1',完美匹配后续遍历的列名
    df.columns = df.columns.astype(str)

# 初始化空列表,存储最终的排休结果,每个元素是一个字典:{'姓名':'XXX', '排休':'XXX'}
    final_results = []

# ========== 第二步:开始逐行遍历Excel数据 → 统计每位人员的夜班日期 ==========
# df.iterrows() :遍历Excel的每一行,index是行号,row是当前行的所有数据
for index, row in df.iterrows():
# 提取当前行的姓名,列名固定为「姓名」,兜底处理防止无姓名的情况
        staff_name = row.get('姓名'f"未知人员{index+1}")
# 初始化空列表,存储当前人员的所有夜班日期(数字格式)
        night_rest_days = []

# ========== 第三步:逐列遍历1-30号日期 → 筛选标记为「夜班」的日期 ==========
# 遍历1到30号,对应Excel里的30个日期列
for day_num in range(131):
            day_col_name = str(day_num)  # 列名转为字符串,和前面统一的列名格式匹配
# 提取当前日期的值班状态(白班/夜班)
            work_status = row.get(day_col_name)

# 核心筛选条件:如果当前日期的状态是「夜班」,就把这个日期存入列表
if work_status == '夜班':
                night_rest_days.append(day_num)

# ========== 第四步:格式化夜班日期 → 存入最终结果 ==========
# 如果当前人员有夜班日期,就格式化后存入结果列表
if night_rest_days:
            final_results.append({
'姓名': staff_name,
'排休': format_rest_days(night_rest_days)
            })

# ========== 第五步:生成结果Excel并保存 ==========
# 将结果列表转为pandas的表格格式
    result_excel = pd.DataFrame(final_results)
# to_excel保存文件,index=False :不生成多余的行号,表格干净整洁,直接能用
    result_excel.to_excel(output_file, index=False)

# 控制台打印结果,方便即时核对,不用打开Excel
    print(f" 排班表处理完成!结果已保存至:{output_file}")
    print("-" * 40)
    print("本次排休统计结果预览:")
    print(result_excel)

✅ 逐步骤重点讲解(新手零踩坑,必看)

  1. 读取Excel的2个关键参数:完全匹配我们前面的表格样式,缺一不可
    • header=0:刚好对应表格第一行的「姓名+1-30号」表头,pandas会自动把这一行识别为列名;
    • skiprows=[1]:刚好跳过表格第二行的星期备注,避免备注行干扰数据读取,这是匹配表格样式的核心配置。
  2. 列名格式统一df.columns = df.columns.astype(str) 是90%新手会踩的坑!如果不加这行,Excel里的数字列名(1、2)是整数,我们遍历的是字符串,会导致「找不到列」,读取不到值班状态,加了之后完美解决。
  3. 双层遍历逻辑:和手动统计完全一样,外层遍历每个人 → 内层遍历这个人的1-30号值班状态,逻辑简单易懂,就算要修改筛选条件(比如筛选「休」),也能轻松找到位置。
  4. 筛选条件灵活修改:如果你的排班表中,夜班标记不是「夜班」,而是「夜」「晚」「晚班」,只需要修改 if work_status == '夜班' 这一行的内容即可,比如改成 if work_status == '夜'

▶▶ 第四段:程序执行入口 + 异常容错处理(零基础友好,只需改2个文件名)

# --- 程序运行入口,无需修改逻辑,只需改文件名 ---
if __name__ == "__main__":
#  只需修改这两个文件名!!!其他代码一行都不用动
# 你的原始排班表文件名(和代码放在同一个文件夹)
    input_file_name = '排班表.xlsx'
# 生成的排休汇总表文件名(自定义)
    output_file_name = '夜班结果.xlsx'

# 异常处理:防止文件找不到、格式错误等问题,给出清晰的报错提示
try:
# 调用核心处理函数,执行所有操作
        process_excel(input_file_name, output_file_name)
except FileNotFoundError:
        print(f" 错误:未找到文件「{input_file_name}」,请检查文件名是否正确、是否和代码同文件夹!")
except Exception as e:
        print(f" 运行出错,错误原因:{str(e)}")

✅ 代码讲解

  1. if __name__ == "__main__":Python的标准运行入口,意思是「当这个文件被直接运行时,才执行下面的代码」,规范写法,不影响运行;
  2. 零基础友好核心:你只需要修改 input_file_name 和 output_file_name 这两个变量,改成自己的文件名即可,其余代码无需任何改动;
  3. 异常处理:加入了报错提示,如果文件找不到、Excel格式不对,会给出清晰的文字提示,新手也能轻松排查问题,不会出现一堆看不懂的代码报错。

四、 零基础【3步傻瓜式使用教程】(不用懂代码,1分钟上手运行)

✔ 第一步:安装依赖库(仅需一次,永久使用)

打开电脑的「命令提示符(CMD)」或「终端」,复制粘贴下面的代码,回车安装,10秒完成:

pip install pandas openpyxl

补充:安装openpyxl是为了让pandas支持读写新版Excel(.xlsx格式),必装,无它会报错!

✔ 第二步:准备Excel排班表(严格匹配样式,零修改)

  1. 将你的排班表文件命名为 排班表.xlsx,和Python代码放在同一个文件夹里;
  2. 确认表格样式和我们前面说明的一致:第一行是姓名+1-30号,第二行是星期几,单元格值班状态是「白/夜/休」。

✔ 第三步:运行代码,坐等结果

双击运行Python代码,控制台会打印处理完成的提示和排休结果,同时在同一文件夹生成 排休结果.xlsx,打开就是干净的「姓名+排休区间」汇总表,直接复制粘贴到工作报表即可!


五、 全部源代码完整可复制(直接粘贴运行,零修改适配)

import pandas as pd

defformat_rest_days(days_list):
"""
    将数字列表转换为区间字符串,例如 [4, 8, 9, 10] -> "4日、8-10日"
    """

ifnot days_list:
return""

    days_list.sort()
    result_strs = []
    start = days_list[0]
    end = days_list[0]

for i in range(1, len(days_list)):
        curr = days_list[i]
if curr == end + 1:
            end = curr
else:
if start == end:
                result_strs.append(f"{start}日")
else:
                result_strs.append(f"{start}-{end}日")
            start = curr
            end = curr

# 处理最后一个区间
if start == end:
        result_strs.append(f"{start}日")
else:
        result_strs.append(f"{start}-{end}日")

return"、".join(result_strs)

defprocess_excel(input_file, output_file):
# 1. 读取 Excel 文件,匹配表格样式:header=0用第一行做列名,skiprows=[1]跳过第二行星期备注
    df = pd.read_excel(input_file, header=0, skiprows=[1])

# 统一列名为字符串,避免整数列名匹配失败
    df.columns = df.columns.astype(str)

    results = []

# 2. 遍历每一行(每位老师/员工),开始统计
for index, row in df.iterrows():
        name = row.get('姓名'f"未知老师{index}")
        rest_days = []

# 3. 遍历1-30号日期列,筛选夜班状态
for day in range(131):
            day_col = str(day)
            status = row.get(day_col)
if status == '夜班':
                rest_days.append(day)

# 4. 格式化日期并存入结果
if rest_days:
            results.append({
'姓名': name,
'夜班': format_rest_days(rest_days)
            })

# 5. 生成结果并保存Excel
    result_df = pd.DataFrame(results)
    result_df.to_excel(output_file, index=False)

    print(f" 处理完成!结果已保存为: {output_file}")
    print("-" * 30)
    print(result_df)

# --- 执行部分 ---
if __name__ == "__main__":
# 只需修改这两个文件名即可
    input_excel_name = '排班表.xlsx'
    output_excel_name = '夜班结果.xlsx'

try:
        process_excel(input_excel_name, output_excel_name)
except FileNotFoundError:
        print(f" 错误:找不到文件 '{input_excel_name}',请确认文件名是否正确。")
except Exception as e:
        print(f" 发生错误:{e}")

人事、行政的工作价值,从来都不是在重复的表格统计里消耗自己,而是在更有意义的统筹、协调、管理上创造价值。

请在微信客户端打开

这份Python代码,看似只是解决了「排班表统计排休」这一个小问题,但本质是帮你把「机械重复的人工劳动」交给代码,把节省下来的时间和精力,留给更重要的工作。而且代码里的「日期区间合并函数」「Excel遍历筛选模板」,都是可以无限复用的办公神器,以后遇到任何类似的表格统计,都能直接套用。

希望这份代码,能让你彻底告别排班表的手动统计,让办公效率翻倍,也能让你感受到Python办公自动化的魅力——它不是程序员的专属技能,而是每一位职场人都能掌握的「减负神器」!


#Python办公自动化 #Excel数据处理 #人事行政必备 #排班表统计 #零基础学Python #办公效率神器

🔮 获取和交流

需要源码和源数据的同学,关注+三连,回复  【排班】,自动获取!

加下面微信!也可以拉你进群交流学习,加群备注:IT小本本学习

为了能随时获取最新动态,大家可以动动小手将公众号添加到“星标⭐”哦,点赞 + 关注,用时不迷路!!!!

关注公众号:IT小本本 👇

用时不迷路!!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-14 03:39:31 HTTP/2.0 GET : https://h.sjds.net/a/461652.html
  2. 运行时间 : 0.105161s [ 吞吐率:9.51req/s ] 内存消耗:4,527.90kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=68e6cd36e235401405ab0abc6f93316f
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000506s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000720s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000316s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000253s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000514s ]
  6. SELECT * FROM `set` [ RunTime:0.000193s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000481s ]
  8. SELECT * FROM `article` WHERE `id` = 461652 LIMIT 1 [ RunTime:0.013080s ]
  9. UPDATE `article` SET `lasttime` = 1776109171 WHERE `id` = 461652 [ RunTime:0.000776s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000221s ]
  11. SELECT * FROM `article` WHERE `id` < 461652 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000520s ]
  12. SELECT * FROM `article` WHERE `id` > 461652 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000343s ]
  13. SELECT * FROM `article` WHERE `id` < 461652 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002477s ]
  14. SELECT * FROM `article` WHERE `id` < 461652 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.013237s ]
  15. SELECT * FROM `article` WHERE `id` < 461652 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005720s ]
0.106711s