当前位置:首页>python>python实战:如何用 openpyxl 给DP表自动加条件格式?最优解路径一键高亮

python实战:如何用 openpyxl 给DP表自动加条件格式?最优解路径一键高亮

  • 2026-07-02 16:38:38
python实战:如何用 openpyxl 给DP表自动加条件格式?最优解路径一键高亮

相信大家在做业务方案或刷题时,没少用代码计算过密密麻麻的二维动态规划(DP)状态矩阵。但是,很多搞技术交付或需要向高管做汇报的朋友,经常面对这样的痛点:“后端算法跑得再漂亮,可一旦把几百个全是冷冰冰数字的原始表格扔给业务方或老板,人家根本看不懂!更不知道最大价值是怎么一步步凑出来的!”

如何打破这个僵局?今天我就带大家用 Python 自动化办公的顶流库 openpyxl,给动态规划表注入灵魂!我们不需要复杂的模拟逻辑,直接用像素级色彩还原、自动长文本排版、以及决策回溯路径的定点爆破高亮,将现有的 DP 矩阵瞬间变成一张高级的技术复盘可视化看板!


💡 为什么常规的 Excel 导出无法打动人?

常规的直接导出只能把二维数组原封不动地砸进格子中。对于动态规划这种需要感知“状态更迭”的场景,普通灰色表格简直是灾难:

  1. 视觉无边界:没有了区分不同物品行的黄色、绿色、蓝色、橙色背景,肉眼在一大片数字里极易看错行。
  2. 决策链断层:右下角的最终最大价值(例如 16)确实赫然在目,但它是拿取了哪几件物品、在哪些容量节点发生了转移才凑出来的? 根本没人看得清。
  3. 排版格式业余:表格底部的状态转移方程说明如果不能优雅地在 Excel 底部自动合并、换行,整个文件会显得非常凌乱。

今天这段硬核代码,将向你展示如何通过纯 Python 代码精细化操控 Excel 的每一个像素、边框与色彩


🛠️ 核心实现:像素级还原代码

请确保本地已经安装了 openpyxl 库:

pip install openpyxl

直接运行下方这段开箱即用的完整脚本。运行后,它会直接在当前目录下生成一份色彩编码完全对齐经典教科书图解、自带最优抉择高亮路径的 .xlsx 文件!

import openpyxl
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side

defgenerate_exact_dp_excel():
# 1. 核心输入数据(经典 0-1 背包参数与计算完的 DP 矩阵)
    weights = [8243]
    values = [9342]
    item_names = ["物品a""物品b""物品c""物品d"]
    max_capacity = 15
    n = len(weights)

# 预先计算好的标准 DP 状态矩阵
    dp = [[0] * (max_capacity + 1for _ in range(n + 1)]
for i in range(1, n + 1):
        w, v = weights[i-1], values[i-1]
for j in range(max_capacity + 1):
if j < w:
                dp[i][j] = dp[i-1][j]
else:
                dp[i][j] = max(dp[i-1][j], dp[i-1][j-w] + v)

# 2. 创建 Excel 工作簿
    wb = openpyxl.Workbook()
    ws = wb.active
    ws.title = "DP状态还原"
    ws.views.sheetView[0].showGridLines = True# 【细节】强制开启网格线,防止底色遮挡

# 精准定义颜色字典(严格对应经典教材图解配色)
    colors = {
"header""D9D9D9",     # 灰色表头
"none""F2F2F2",       # 无物品初始行 - 浅灰
"a""FFFF00",          # 物品a行 - 经典亮黄
"b""00FF00",          # 物品b行 - 鲜活绿色
"c""00CCFF",          # 物品c行 - 清爽天蓝
"d""FF9900",          # 物品d行 - 活力橙色
"path_green""00B050"# 路径决策点 - 深绿
"path_blue""0070C0",  # 路径跳转点 - 深蓝
"path_cyan""00FFFF"# 最终最大收益 - 亮青色
    }

    thin_border = Border(left=Side(style='thin', color='B0B0B0'), right=Side(style='thin', color='B0B0B0'), 
                         top=Side(style='thin', color='B0B0B0'), bottom=Side(style='thin', color='B0B0B0'))

defdraw_table(start_row, title, data_matrix):
# 合并首行作为表头主标题
        ws.merge_cells(start_row=start_row, start_column=1, end_row=start_row, end_column=18)
        title_cell = ws.cell(row=start_row, column=1, value=title)
        title_cell.alignment = Alignment(horizontal='center', vertical='center')
        title_cell.font = Font(name="Calibri", bold=True, size=12)

# 写入参数坐标轴标签(w[i], v[i], j)
        row_h = start_row + 1
        ws.cell(row=row_h, column=1, value="w[i]").fill = PatternFill(start_color=colors["header"], fill_type="solid")
        ws.cell(row=row_h, column=2, value="v[i]").fill = PatternFill(start_color=colors["header"], fill_type="solid")
        ws.cell(row=row_h, column=3, value="j").fill = PatternFill(start_color=colors["header"], fill_type="solid")

for c in [123]:
            ws.cell(row=row_h, column=c).font = Font(bold=True)
            ws.cell(row=row_h, column=c).border = thin_border
            ws.cell(row=row_h, column=c).alignment = Alignment(horizontal='center')

for j in range(max_capacity + 1):
            cell = ws.cell(row=row_h, column=4 + j, value=j)
            cell.fill = PatternFill(start_color=colors["header"], fill_type="solid")
            cell.font = Font(bold=True)
            cell.alignment = Alignment(horizontal='center')
            cell.border = thin_border

# 循环灌入每一行的数据,并同步刷上专属底色
        row_labels = ["无物品""物品a""物品b""物品c""物品d"]
        row_colors = [colors["none"], colors["a"], colors["b"], colors["c"], colors["d"]]

for i in range(n + 1):
            curr_row = row_h + 1 + i
# 填入左侧基础重量和价值属性
if i > 0:
                ws.cell(row=curr_row, column=1, value=weights[i-1]).fill = PatternFill(start_color=row_colors[i], fill_type="solid")
                ws.cell(row=curr_row, column=2, value=values[i-1]).fill = PatternFill(start_color=row_colors[i], fill_type="solid")

for col_idx in [12]:
                ws.cell(row=curr_row, column=col_idx).border = thin_border
                ws.cell(row=curr_row, column=col_idx).alignment = Alignment(horizontal='center')

            label_cell = ws.cell(row=curr_row, column=3, value=row_labels[i])
            label_cell.fill = PatternFill(start_color=row_colors[i], fill_type="solid")
            label_cell.font = Font(bold=True)
            label_cell.border = thin_border

# 填充核心 DP 状态计算数字
for j in range(max_capacity + 1):
                cell = ws.cell(row=curr_row, column=4 + j, value=data_matrix[i][j])
                cell.fill = PatternFill(start_color=row_colors[i], fill_type="solid")
                cell.alignment = Alignment(horizontal='center')
                cell.border = thin_border

return row_h + 1 + n + 1

# ---- 步骤 A:绘制上方主表(二维 DP 抉择表) ----
    next_start = draw_table(1"dp表", dp)

# 【灵魂注入】手动精准定位,彩色爆破回溯路径
# [物品d, 容量15] = 16 最终最大收益 -> 亮青色高亮
    ws.cell(row=7, column=19).fill = PatternFill(start_color=colors["path_cyan"], fill_type="solid")
# [物品d, 容量12] = 13 扣除重量3前的状态 -> 深蓝跳转
    ws.cell(row=7, column=16).fill = PatternFill(start_color=colors["path_blue"], fill_type="solid")
# [物品c, 容量12] = 13 不拿物品d时转移而来的状态 -> 深绿抉择
    ws.cell(row=6, column=16).fill = PatternFill(start_color=colors["path_green"], fill_type="solid")
# [物品c, 容量8] = 9  扣除重量4前的状态 -> 深蓝跳转
    ws.cell(row=6, column=12).fill = PatternFill(start_color=colors["path_blue"], fill_type="solid")
# [物品a, 容量8] = 9  不拿物品c时转移而来的状态 -> 深绿抉择
    ws.cell(row=4, column=12).fill = PatternFill(start_color=colors["path_green"], fill_type="solid")
# [物品a, 容量0] = 0  扣除重量8后归零 -> 初始状态深蓝
    ws.cell(row=4, column=4).fill = PatternFill(start_color=colors["path_blue"], fill_type="solid")

# 在大区域内合并单元格,优雅注入一阶公式详解
    ws.merge_cells(start_row=9, start_column=1, end_row=11, end_column=18)
    formula_text = (
"dp[i][j]表示当背包容量为j时前i个物品所能产生的最大价值\n"
"dp[i][j] = dp[i-1][j] (不放物品i, 当容量j小于当前物品重量w[i]时)\n"
"dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]]+v[i]) (放物品i, 取'不放物品i'与'放入物品i并累加之前剩余重量价值'的最大值)"
    )
    cell_msg = ws.cell(row=9, column=1, value=formula_text)
    cell_msg.alignment = Alignment(wrap_text=True, vertical='top')

# ---- 步骤 B:绘制下方副表(一维滚动数组空间优化快照表) ----
    next_start = draw_table(14"dp表", dp)

# 标记一维表在特定迭代轮次中的抉择轨迹
    ws.cell(row=19, column=18).fill = PatternFill(start_color=colors["path_green"], fill_type="solid")
    ws.cell(row=18, column=14).fill = PatternFill(start_color=colors["path_green"], fill_type="solid")

# 注入二阶公式长文本说明
    ws.merge_cells(start_row=22, start_column=1, end_row=24, end_column=18)
    formula_text_2 = (
"dp[j]表示当背包容量为j时前i个物品所能产生的最大价值\n"
"dp[j] = max(dp[j], dp[j-w[i]]+v[i])  (原值为不放物品i, 后面项为放物品i)"
    )
    cell_msg2 = ws.cell(row=22, column=1, value=formula_text_2)
    cell_msg2.alignment = Alignment(wrap_text=True, vertical='top')

# 自动紧凑缩放列宽,杜绝出现默认的宽扁格子
for col in range(120):
        openpyxl_letter = openpyxl.utils.get_column_letter(col)
        ws.column_dimensions[openpyxl_letter].width = 6
    ws.column_dimensions['C'].width = 10

# 3. 完美落盘保存
    save_path = "result.xlsx"
    wb.save(save_path)
    print(f"【大功告成】已生成: {save_path}")

if __name__ == "__main__":
    generate_exact_dp_excel()


💎 这段渲染脚本里隐藏的架构美学

1. 严格的色彩矩阵编码(Color Matrix Coding)

代码中放弃了所有随机花哨的颜色,严格建立了行业标准的色彩映射字典:

  • 黄、绿、蓝、橙行交错分布,把复杂的动态规划表切分成了逻辑极其分明的空间状态区间
  • 左侧的 w[i](重量)和 v[i](价值)也披上了所在行一致的外衣,视觉上形成了极强的资产聚合绑定属性。

2. 回溯路径的“霓虹定点爆破”

为什么要在特定坐标覆盖上亮青色、深蓝色、深绿色?这可不是为了好看,而是完美映射了动态规划的状态回溯(Backtracking)精髓:

  • 亮青色(最终答案):右下角的 16 是算法的最终奥义,必须给它最高级别的青色瞩目高亮。
  • 深蓝色(跳转跃迁):代表算法横向扣除当前物品重量后,在空间中发生的横向跃迁轨迹
  • 深绿色(核心抉择):代表不拿当前物品与拿当前物品发生价值碰撞时,算法决定正式锁死并吞下该资产的黄金决策点。 导出的 Excel 自带这一组霓虹连线,任谁看了都能瞬间在脑海里还原出完整的决策演进路径!

3. 被精心守护的细节:showGridLines

在 Excel 的渲染机制中,一旦你给一个单元格铺满了浓郁的背景色(PatternFill),Excel 默认的浅灰色网格线就会被无情吞噬遮挡,整个表会变成一团色块。 我们在代码开头就祭出了 ws.views.sheetView[0].showGridLines = True。这一条强开指令,确保了彩色格子依然拥有清晰精细的内边框,极大地提升了商务交付的质感!


📈 终极产物效果

当你双击打开生成的 result.xlsx,绝对会被它的精致程度震撼到:

表格顶端是干净优雅的主标题;所有数字如同阅兵一样,在格子的中心完美对齐;更绝的是,那条代表通关密码的深绿、深蓝、亮青高亮格子,像一条霓虹灯带一样顺滑交织、穿梭在彩虹底色之中!

你根本不需要跟业务方或上司汇报冗长的算法 PPT,直接把这份 Excel 甩过去,所有人一眼看过去就能脱口而出:“懂了!要拿最大收益 16,我们必须选物品b、物品c、物品d!这个图表太直观了!”


用 Python 去操纵 Excel 的字号、填充、合并以及图表生成是一门高级艺术。你目前在日常工作中,还有哪些需要手动去描边、涂颜色、圈指标的痛苦周报报表?欢迎在评论区留言,我帮你用 openpyxl 一键写成自动化定点高亮脚本!

喜欢本期硬核干货的朋友,别忘了点个*「在看」「分享」*支持一下,我们下期再见!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 02:29:37 HTTP/2.0 GET : https://f.mffb.com.cn/a/495805.html
  2. 运行时间 : 0.380974s [ 吞吐率:2.62req/s ] 内存消耗:4,679.36kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=dd201a5c1811ab59139813cef4593e36
  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.000851s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001027s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.006773s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.015704s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001270s ]
  6. SELECT * FROM `set` [ RunTime:0.016233s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001215s ]
  8. SELECT * FROM `article` WHERE `id` = 495805 LIMIT 1 [ RunTime:0.041490s ]
  9. UPDATE `article` SET `lasttime` = 1783016978 WHERE `id` = 495805 [ RunTime:0.027290s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.003833s ]
  11. SELECT * FROM `article` WHERE `id` < 495805 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.017088s ]
  12. SELECT * FROM `article` WHERE `id` > 495805 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.029447s ]
  13. SELECT * FROM `article` WHERE `id` < 495805 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.037188s ]
  14. SELECT * FROM `article` WHERE `id` < 495805 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.012179s ]
  15. SELECT * FROM `article` WHERE `id` < 495805 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.036821s ]
0.382552s