当前位置:首页>python>第336讲:用 Python + VBA 双视角实现多维度报表自动生成(同一数据源出N张报表)

第336讲:用 Python + VBA 双视角实现多维度报表自动生成(同一数据源出N张报表)

  • 2026-08-18 23:11:31
第336讲:用 Python + VBA 双视角实现多维度报表自动生成(同一数据源出N张报表)

一份销售数据,老板要按产品线看利润,区域总要看各省市销量,运营要盯不同渠道的转化率。

你是不是还在复制粘贴、反复拖透视表?

今天我们用 Python + VBA 双视角,拆解「同一数据源 → N张报表」的标准解法,顺便把底层逻辑讲透。


一、场景还原:为什么多维度报表这么烦?

假设你拿到一份原始销售数据 sales_raw.xlsx,字段如下:

订单ID

日期

产品线

地区

省份

城市

渠道

销售额

成本

数量

需求是:

  1. 报表A:按「产品线」统计销售额、利润、销量

  2. 报表B:按「地区+省份」汇总销量、销售额

  3. 报表C:按「渠道」统计销售额占比、利润率

很多同学的第一反应是:

  • 复制三份数据

  • 分别建三个透视表

  • 手动改字段、调格式

  • 最后合并到一个Excel文件里

问题在哪?

  • 重复劳动

  • 容易漏数据

  • 源数据一变,全部重来

  • 文件体积越来越大

本质原因只有一个:没有区分“计算逻辑”和“输出结果”


二、先讲底层逻辑:一次计算,多次输出

无论你用 Python 还是 VBA,高效的多维度报表都遵循同一个思想

✅ 数据源只读一次 → 计算逻辑集中处理 → 按维度多次输出

这也就是我们常说的:

Python:一次计算,多次输出

VBA:多次计算,逐步输出

这个差异,直接决定了代码的可维护性和运行效率。

下面我们分别拆解。

三、Python方案:pandas 多次透视 + 多Sheet写入

1. 思路拆解

Python 的优势在于:

  • pandas 一次性把数据读入内存

  • 用 pivot_table在不同维度上“切蛋糕”

  • 所有结果都是 DataFrame

  • 最后一次性写入 Excel 的不同 Sheet

流程如下:

读取 Excel
   ↓
统一清洗(类型转换、缺失值处理)
   ↓
计算利润字段
   ↓
按不同维度 pivot
   ↓
写入同一个 Excel 文件多个 Sheet

2. 示例数据准备

import pandas as pddf = pd.read_excel("sales_raw.xlsx")# 统一字段类型df["日期"] = pd.to_datetime(df["日期"])df["产品线"] = df["产品线"].astype(str)df["地区"] = df["地区"].astype(str)df["渠道"] = df["渠道"].astype(str)# 计算利润df["利润"] = df["销售额"] - df["成本"]

👉 干货提醒

真实业务中,先算衍生字段,再做透视,可以避免每个透视都重复计算。


3. 多维度透视

报表A:按产品线

product_report = pd.pivot_table(    df,    index="产品线",    values=["销售额""利润""数量"],    aggfunc={        "销售额""sum",        "利润""sum",        "数量""sum"    }).reset_index()

报表B:按地区 + 省份

region_report = pd.pivot_table(    df,    index=["地区""省份"],    values=["销售额""数量"],    aggfunc={"销售额""sum""数量""sum"}).reset_index()

报表C:按渠道(含占比)

channel_report = pd.pivot_table(    df,    index="渠道",    values=["销售额""利润"],    aggfunc="sum").reset_index()total_sales = channel_report["销售额"].sum()channel_report["销售额占比"] = channel_report["销售额"] / total_saleschannel_report["利润率"] = channel_report["利润"] / channel_report["销售额"]

👉 工程经验

百分比字段建议在透视后再算,避免在 aggfunc中写复杂逻辑,代码更清晰,性能也更稳。


4. 多Sheet一次性写入

with pd.ExcelWriter("sales_reports.xlsx", engine="openpyxl"as writer:    product_report.to_excel(writer, sheet_name="按产品线", index=False)    region_report.to_excel(writer, sheet_name="按地区省份", index=False)    channel_report.to_excel(writer, sheet_name="按渠道", index=False)

✅ 关键点

ExcelWriter是“一个事务”,而不是一次次打开关闭 Excel,速度更快,文件更稳定。

5. Python方案的优点总结

优势

说明

一次读取

内存中操作,速度快

一次计算

利润字段只算一遍

多次输出

不同维度互不影响

易维护

新增维度只需加一个 pivot

可复用

脚本可定时跑、可迁移

这也是为什么数据分析岗位几乎必考 pandas 的原因。


四、VBA方案:循环创建多个透视表或汇总表

1. 思路拆解

VBA 的思路和 Python 不同:

  • Excel 本身已经加载了数据

  • 每次创建透视表,本质上都是 重新扫描数据源

  • 通常做法:

    • 建一个模板 Sheet

    • 循环不同维度

    • 每次新建透视缓存 → 新建透视表

流程如下:

激活数据源
   ↓
循环维度列表
   ↓
创建 PivotCache
   ↓
创建 PivotTable
   ↓
调整字段布局
   ↓
输出到新Sheet

2. 核心代码示例(精简但实用)

Sub GenerateMultiDimReports()    Dim wsData As Worksheet    Dim pc As PivotCache    Dim pt As PivotTable    Dim wb As Workbook    Set wb = ThisWorkbook    Set wsData = wb.Sheets("RawData")    Dim dimensions As Variant    dimensions = Array("产品线", "地区", "渠道")    Dim i As Integer    For i = LBound(dimensions) To UBound(dimensions)        ' 创建缓存(每次都会重新扫描数据源)        Set pc = wb.PivotCaches.Create( _            SourceType:=xlDatabase, _            SourceData:=wsData.Range("A1").CurrentRegion)        ' 新建Sheet        Dim ws As Worksheet        Set ws = wb.Sheets.Add        ws.Name = "按" & dimensions(i)        ' 创建透视表        Set pt = pc.CreatePivotTable( _            TableDestination:=ws.Range("A3"), _            TableName:="Pivot_" & dimensions(i))        ' 设置行字段        With pt            .PivotFields(dimensions(i)).Orientation = xlRowField            .AddDataField .PivotFields("销售额"), "销售额", xlSum            .AddDataField .PivotFields("利润"), "利润", xlSum        End With    Next iEnd Sub

3. VBA方案的痛点

问题

说明

多次扫描

每个透视表都重新读数据源

缓存冗余

每个透视表一个 Cache

速度慢

数据量大时明显卡顿

难扩展

增加维度要改字段布局

易报错

Sheet命名冲突、字段名变化

👉 实战经验

如果你不得不用 VBA,尽量:

  • 用同一个 PivotCache给多个透视表复用

  • 先把数据转成表格(ListObject),减少扫描范围

  • 关闭屏幕刷新 Application.ScreenUpdating = False


五、Python vs VBA:对照要点深度解析

1. 核心差异一句话版

Python:一次计算,内存中分发结果

VBA:多次计算,逐个落地到工作表

2. 对照表

维度

Python

VBA

数据读取

一次

多次

计算逻辑

集中

分散

内存利用

执行速度

代码可读性

学习曲线

平缓

与Excel耦合度

自动化程度

极高

中等

3. 什么时候用哪个?

  • ✅ 用 Python

    • 数据量 > 5万行

    • 维度多、逻辑复杂

    • 需要定时自动化

    • 后续还要做可视化 / 建模

  • ✅ 用 VBA

    • 报表必须留在 Excel 内

    • 使用者完全不懂编程

    • 只是简单多维汇总

    • 企业环境不允许安装 Python

👉 现实建议

能用 Python 就别用 VBA;

必须用 VBA 时,尽量“少算、多引”。


六、进阶技巧:让多维度报表更专业

1. Python:用字典批量管理维度

dimensions_config = {    "按产品线": ["产品线"],    "按地区省份": ["地区""省份"],    "按渠道": ["渠道"]}with pd.ExcelWriter("sales_reports.xlsx", engine="openpyxl") as writer:    for sheet_name, group_cols in dimensions_config.items():        report = pd.pivot_table(            df,            index=group_cols,            values=["销售额""利润""数量"],            aggfunc="sum"        ).reset_index()        report.to_excel(writer, sheet_name=sheet_name, index=False)

✅ 新增报表 = 加一行配置,不改主逻辑。


2. VBA:复用同一个 PivotCache(优化版)

Set pc = wb.PivotCaches.Create( _    SourceType:=xlDatabase, _    SourceData:=wsData.ListObjects("SalesTable").Range)' 多个透视表共用 pc

👉 这是 VBA 里性价比最高的优化手段之一


七、常见坑位提醒(建议收藏)

  1. Python

    • 忘记 reset_index(),导致索引写入 Excel

    • 中文路径未处理好(建议用英文路径)

    • 写入前没关 Excel 文件,报权限错误

  2. VBA

    • 字段名改了,代码没改,直接报错

    • Sheet 名称重复

    • 数据源区域没动态扩展

八、总结一句话

多维度报表的本质,不是“多做几张表”,而是用一套逻辑,服务多种视角

Python 胜在计算效率与扩展性,VBA 胜在Excel生态内的便利性。

理解「一次计算 vs 多次计算」,你就理解了自动化报表的命门。


九、随堂小测(5道选择题)

1. Python 中使用 pandas 做多维度报表时,最符合“一次计算,多次输出”思想的做法是?

A. 每次透视都重新读取 Excel

B. 先计算衍生字段,再基于 DataFrame 做多次 pivot

C. 每个报表用一个单独的脚本

D. 用 openpyxl 逐格写数据

2. 在 VBA 中,以下哪个操作会导致数据源被多次扫描?

A. 多个透视表共用同一个 PivotCache

B. 每次循环都新建 PivotCache

C. 将数据源转为表格(ListObject)

D. 关闭 ScreenUpdating

3. pandas 中,将透视后的索引恢复为普通列,应使用哪个方法?

A. drop_index()

B. reset_index()

C. flatten_index()

D. clear_index()

4. 关于 Python 和 VBA 在多维度报表中的差异,下列说法正确的是?

A. VBA 更适合百万级数据的复杂计算

B. Python 可以一次读取数据后在内存中完成所有计算

C. VBA 天然支持跨文件高性能批量运算

D. Python 无法将结果写入多 Sheet

5. 在实际工作中,提升 VBA 多维度报表性能最有效的手段之一是?

A. 增加 On Error Resume Next

B. 多个透视表复用同一个 PivotCache

C. 每次循环新建工作簿

D. 使用 MsgBox 显示进度


十、参考答案

  1. B

  2. B

  3. B

  4. B

  5. B


最新文章

随机文章

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