乐于分享
好东西不私藏

我用 Python 把 Excel 检测自动化后,终于不用再做重复劳动了

我用 Python 把 Excel 检测自动化后,终于不用再做重复劳动了

一、为什么我决定做这件事

只要你平时工作里经常接触 Excel,应该都经历过这种场景:

一个表几百行、几千行,字段特别多;
要检查内容有没有填空;
要检查 ID 对不对;
要检查路径是不是有效;
还要检查多语言、数值范围、关联配置、时间格式……

最开始,我也是老老实实一条一条看。

看久了以后,真的会有一种很强的无力感:

不是这件事做不了,而是它太重复了
重复到你明明知道它没有技术含量,却又不得不花大量时间去做。
更麻烦的是,这种检查非常容易漏。

你今天看了一遍,以为没问题。
明天换个版本,又得再查一遍。
如果表再多一点,整个人就会进入一种“机械劳动模式”。

后来我慢慢意识到:

这种工作,本质上就不应该靠人肉反复检查。

既然规则是固定的,逻辑是可描述的,结果是可验证的,那它就应该交给程序。

于是,我开始用 Python 做 Excel 自动化检测。

二、手动检查 Excel,到底痛苦在哪

很多人没真正做过这类工作,可能会觉得:

“不就是看表吗,有那么麻烦吗?”

其实真正麻烦的地方,不在“看”,而在“反复看、批量看、按规则看”。

比如一个常见的检查场景,可能同时包括这些内容:

1. 空值检查

某些字段必须填写,不能空。
但并不是所有空值都算错误,有些列允许空,有些列不允许空。

2. 资源路径检查

比如图片、图标、Prefab、音效路径。
表里配了路径,不代表文件就真的存在。
这类问题最适合自动化,因为程序查文件系统比人快太多。

3. 多语言配置检查

有些字段填的是语言 ID,不是直接文字。
那就需要检查这个 ID 是否存在于语言表中。
如果不存在,客户端大概率就会显示异常。

4. 数值和格式检查

比如概率字段不能小于 0 或大于 100;
时间字段要符合指定格式;
某些字段必须是整数;
某些配置还要满足前后逻辑关系。

5. 关联关系检查

表 A 中填了一个 ID,这个 ID 必须能在表 B 里找到。
如果找不到,就是典型的配置错误。

这些检查,最痛苦的不是做一遍,
而是每次版本更新后都要重做一遍

这时候你就会发现,自动化不是“锦上添花”,而是“必需品”。

三、为什么我选 Python

说实话,做这种工具,Python 太合适了。

原因很简单:

第一,写得快

Python 语法简单,适合快速实现工具逻辑。
很多检查规则写出来非常直观。

第二,生态成熟

处理 Excel,有 pandasopenpyxl
处理文件,有 ospathlib
做批量任务,有 concurrent.futures
做 GUI 也能接 tkinter 或其他库。

第三,维护成本低

自动化脚本最怕只有作者自己看得懂。
Python 在可读性这块还是很友好的,后续自己改、同事接手都方便。

所以如果你的目标是:

快速做一个实用、能落地、能持续迭代的 Excel 检测工具,Python 是非常合适的选择。

四、这个自动化工具,我是怎么设计的

我一开始并没有上来就做得特别复杂,而是先拆成几个核心模块。

1. 文件扫描

先遍历指定目录下的所有 Excel 文件,或者只处理某些指定文件。

例如:

importos

defget_excel_files(folder):
excel_files= []
forroot_filesinos.walk(folder):
forfileinfiles:
iffile.endswith(".xlsx"andnotfile.startswith("~$"):
excel_files.append(os.path.join(rootfile))
returnexcel_files

这一层的目标很简单:
先把“有哪些表要检查”收集起来。

2. 读取 Excel 内容

这里一般会结合 pandas 和 openpyxl 来做。

  • pandas
     适合处理数据、遍历行列、做筛选和比对
  • openpyxl
     适合最后导出错误结果、设置样式、写多 Sheet

比如最简单的读取:

importpandasaspd

defread_excel(file_pathsheet_name=0):
returnpd.read_excel(file_pathsheet_name=sheet_name)

如果你的表结构比较固定,还可以指定从哪一行开始读、用哪一行做表头。

3. 规则检测

这一步是整个工具的核心。

本质上就是把“人工检查经验”翻译成代码规则。

举个简单例子,检查空值和资源路径:

importos
importpandasaspd

defcheck_sheet(df):
errors= []

forindexrowindf.iterrows():
row_num=index+2# 假设第1行是表头

# 名称不能为空
ifpd.isna(row.get("名称")) orstr(row.get("名称")).strip() =="":
errors.append({
"行号"row_num,
"字段""名称",
"错误""名称为空"
            })

# icon路径检查
icon_path=str(row.get("icon""")).strip()
ificon_pathandnotos.path.exists(icon_path):
errors.append({
"行号"row_num,
"字段""icon",
"错误"f"文件不存在: {icon_path}"
            })

returnerrors

虽然这段代码很基础,但已经体现出自动化的核心价值了:

  • 不会漏
  • 能重复跑
  • 结果统一
  • 可继续扩展

五、真正有价值的,不是“能跑”,而是“能扩展”

一个自动化工具,如果只能检查一个固定表,其实价值有限。

真正实用的工具,必须具备扩展能力。

所以后来我做工具时,会特别注意这几件事。

1. 规则配置化

不是把所有规则都写死在代码里,而是尽量做成可配置。

例如:

CHECK_CONFIG= {
"检查空值"True,
"检查路径"True,
"检查多语言"True,
"检查ID关联"True
}

或者进一步放到 yaml/json 配置文件里。

这样后面想加规则、关规则,就不用频繁改代码。

2. 按文件、按 Sheet 定制规则

不同表的含义不同,检查规则肯定也不同。

比如:

  • 语言表重点检查翻译内容和 ID
  • 资源表重点检查路径
  • 活动表重点检查时间格式和时间范围
  • 关联表重点检查跨表引用

所以一个更实用的设计是:

RULES= {
"Language.xlsx": ["empty_check""language_id_check"],
"Shop.xlsx": ["empty_check""item_id_check""icon_check"],
"Activity.xlsx": ["time_check""range_check"]
}

这样就能让工具适配更多业务场景。

3. 输出可读的错误报告

工具不是给程序自己看的,是给人看的。

所以检测结果不能只在控制台里打一堆日志,而应该导出成结构清晰的 Excel 或文本报告。

例如:

  • 文件名
  • Sheet 名
  • 行号
  • 列名
  • 错误类型
  • 错误详情

这样策划、测试、程序都能直接看懂

六、输出错误报告,是自动化体验的关键一步

我后面基本都会把错误结果导出成一个 Excel。

因为 Excel 对团队协作太友好了,大家都能直接打开看。

一个简单的导出示例:

importpandasaspd

defsave_errors(errorsoutput_file):
ifnoterrors:
print("没有发现错误")
return

df=pd.DataFrame(errors)
df.to_excel(output_fileindex=False)
print(f"错误报告已生成: {output_file}")

如果再配合 openpyxl 做一些样式优化,比如:

  • 表头加粗
  • 自动列宽
  • 按错误类型标色
  • 每个文件单独 Sheet

那么最终的可读性会非常高。

这会让自动化工具真正融入团队流程,而不是只停留在“开发者自用脚本”阶段。

七、当文件多起来后,多线程真的很重要

如果只是检查一个小表,其实速度差异不大。
但当你需要同时扫描几十个 Excel、几百个 Sheet 的时候,性能问题就出来了。

所以我后来会加上多线程处理多个文件。

例如:

fromconcurrent.futuresimportThreadPoolExecutoras_completed

defprocess_file(file_path):
df=pd.read_excel(file_path)
returncheck_sheet(df)

defbatch_check(files):
all_errors= []

withThreadPoolExecutor(max_workers=8asexecutor:
futures= [executor.submit(process_filefforfinfiles]

forfutureinas_completed(futures):
result=future.result()
all_errors.extend(result)

returnall_errors

当然,多线程不是万能的,但在“多个文件独立检查”这种场景下,效果通常会很明显。

很多时候,手动检查要几个小时,
自动化脚本可能几分钟,
加上并发之后,体验会更顺。

八、这类工具做出来后,最大的变化是什么

很多人以为,自动化的价值只是“省时间”。

其实不止。

我自己感受最明显的是这几件事:

1. 从体力活变成脑力活

以前是反复查表,机械劳动。
后来是思考规则、优化逻辑、设计输出。
工作的性质完全不一样。

2. 检查结果更稳定

人会疲劳、会漏看、会看串行。
程序不会。
规则一旦写对,每次输出都稳定一致。

3. 团队协作更顺畅

以前别人问你“这个表有问题吗”,你要自己去看。
现在直接跑工具,把报告丢过去就行。

4. 经验可以沉淀

以前“怎么检查”只存在于脑子里。
现在这些经验都变成了代码。
代码能复用,规则能传承,这才是长期价值。

九、自动化不是为了炫技,而是为了减少低价值重复劳动

我后来越来越认同一句话:

自动化最重要的意义,不是显得你会写代码,而是把你从重复劳动里解放出来。

很多时候,我们并不是没有时间学习、优化、做更重要的事情。
而是大量时间都被低价值、重复性的事务吃掉了。

Excel 检测就是一个特别典型的例子。

它重要,但重复。
它必要,但不该反复手工做。
它适合标准化,也适合程序化。

所以只要你的工作里有大量固定规则、重复步骤、可验证结果,
基本都可以问自己一句:

这件事,能不能让 Python 来做?

十、给想开始做自动化的人几个建议

如果你也想做自己的 Excel 自动化工具,我建议从最小版本开始。

1. 先别想着一步做到最全

先解决一个最痛的问题。
比如先做空值检查,或者先做路径检查。

2. 规则一定要明确

自动化的前提,是规则清楚。
如果人工自己都说不清怎么判断,程序也很难写对。

3. 先能跑,再优化

先做出结果,再考虑性能、样式、GUI、打包。

4. 输出要友好

让别人能看懂你的结果,工具才有推广价值。

5. 持续积累规则库

每次遇到新问题,就把它沉淀成新规则。
时间久了,你的工具会越来越强。

十一、最后

我一直觉得,学 Python 最爽的一点,不是语法有多优雅,而是它真的能帮你解决现实问题。

尤其是 Excel 自动化这类事情,
一旦你把第一版工具做出来,后面就会越来越顺。

从手动检查,到自动扫描;
从零散经验,到规则沉淀;
从机械重复,到真正提效。

这个过程本身就很有成就感。

如果要用一句话总结,那就是:

能让程序做的事,就别再让人重复做。

而 Excel 自动化,恰好就是最值得开始的一步。

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