乐于分享
好东西不私藏

Excel 全能工具箱——20个常用操作一键完成(附完整代码+打包教程)

Excel 全能工具箱——20个常用操作一键完成(附完整代码+打包教程)

一、这个工具能帮你做什么?

打开程序后,你会看到一个下拉菜单,里面躺着 20 个功能,分成了五大类,覆盖了文员几乎所有的表格麻烦事:

📂 合并与拆分

序号功能适用场景
1合并多个 Excel 文件把同一文件夹内所有 .xlsx 竖着拼成一个总表
2合并所有工作表把一个工作簿里的多个 sheet 合成一个
3按列拆分成多个文件如按“区域”拆成《华东区.xlsx》《华南区.xlsx》
4按列拆分到同一工作簿的不同 sheet拆开后还在一个文件里,方便查看
5按行数拆分大文件按每 500 行拆成多个小文件

📊 汇总与分析

序号功能适用场景
6单列分类汇总按部门汇总工资总和、按地区统计销售额
7多列分组汇总类似透视表,按“年份+区域”汇总金额
8按条件筛选汇总只统计“2025年”或“金额>1000”的记录
9计算同比增长/环比财务月报自动算增长率

🧹 数据清洗

序号功能适用场景
10删除完全重复的行快速去重
11删除空行/空列清理没有内容的行列
12统一日期格式把“2024.01.01”变成“2024-01-01”
13清除文本前后空格姓名、地址多余空格一键去除
14文本型数字转数值把带绿三角的“数字”变成真正数字

🔗 匹配与查找

序号功能适用场景
15VLOOKUP 匹配根据员工编号匹配姓名、根据商品编号匹配单价
16找出两表差异对比两个表格,标出哪些增加了、删除了、修改了
17提取唯一值从一列里拿出不重复的客户名单

🔄 格式转换

序号功能适用场景
18批量 .xls 转 .xlsx旧版文件一键转新格式
19Excel ↔ CSV 互转表格转 CSV,CSV 转回表格
20提取工作表名称把一个工作簿里所有 sheet 的名字列出来

二、完整代码(复制粘贴就能跑)

请确保你的电脑已安装 Python 和 pandas、openpyxl 库。如果没装,先打开命令行执行:

pip install pandas openpyxl

然后把下面的代码完整复制到一个新建的 .py 文件里,例如 Excel工具箱.py,双击就能看到图形界面(或者用命令行 python Excel工具箱.py 运行)。

import pandas as pdimport osimport tkinter as tkfrom tkinter import ttk, messageboxfrom datetime import datetime# ============================================# 以下为 20 个功能的具体实现# 注意:所有功能均假设要处理的文件在“当前文件夹”下,# 文件名可以在每个函数中直接修改成你自己的。# ============================================def merge_files():    """1.合并当前文件夹下所有 .xlsx 文件(纵向拼接)"""    folder = "."  # 当前目录,可以把 "." 改成你的文件夹路径,如 "门店报表"    files = [f for f in os.listdir(folder) if f.endswith('.xlsx'and not f.startswith('~')]    if not files:        return "没有找到任何 .xlsx 文件"    all_data = []    for f in files:        df = pd.read_excel(f)        all_data.append(df)    result = pd.concat(all_data, ignore_index=True)    result.to_excel("合并总表.xlsx", index=False)    return f"合并完成,共处理 {len(files)} 个文件,结果保存为 合并总表.xlsx"def merge_sheets():    """2.合并一个工作簿的所有工作表到一个 sheet"""    src_file = "待合并工作表.xlsx"  # 改成你的源文件名    if not os.path.exists(src_file):        return f"找不到文件 {src_file}"    xls = pd.ExcelFile(src_file)    sheets = xls.sheet_names    all_data = []    for sheet in sheets:        df = pd.read_excel(src_file, sheet_name=sheet)        df['来源工作表'] = sheet  # 添加一列标记来源        all_data.append(df)    result = pd.concat(all_data, ignore_index=True)    result.to_excel("合并所有工作表.xlsx", index=False)    return f"已合并 {len(sheets)} 个工作表,结果保存为 合并所有工作表.xlsx"def split_by_col_to_files():    """3.按某列拆分,每个类保存为单独的 Excel 文件"""    src_file = "源数据.xlsx"        # 改成你的源文件    split_col = "区域"              # 改成你用于拆分的列名    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    if split_col not in df.columns:        return f"列 '{split_col}' 不存在,请检查"    os.makedirs("拆分结果_文件", exist_ok=True)    for value, group in df.groupby(split_col):        safe_name = str(value).replace('/''_').replace('\\''_')        group.to_excel(f"拆分结果_文件/{safe_name}.xlsx", index=False)    return f"按 '{split_col}' 拆分完成,文件已存入 拆分结果_文件 文件夹"def split_by_col_to_sheets():    """4.按某列拆分,放到同一个工作簿的不同工作表里"""    src_file = "源数据.xlsx"    split_col = "区域"    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    if split_col not in df.columns:        return f"列 '{split_col}' 不存在"    with pd.ExcelWriter("拆分结果_工作表.xlsx"as writer:        for value, group in df.groupby(split_col):            safe_name = str(value)[:31]  # sheet名最长31字符            group.to_excel(writer, sheet_name=safe_name, index=False)    return "拆分完成,结果保存为 拆分结果_工作表.xlsx"def split_by_rows():    """5.按行数拆分,每 N 行存一个新文件"""    src_file = "源数据.xlsx"    rows_per_file = 1000  # 可自己修改    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    os.makedirs("按行拆分结果", exist_ok=True)    total = len(df)    count = 0    for i in range(0, total, rows_per_file):        chunk = df.iloc[i:i+rows_per_file]        chunk.to_excel(f"按行拆分结果/part_{i//rows_per_file + 1}.xlsx", index=False)        count += 1    return f"共拆分成 {count} 个文件,保存在 按行拆分结果 文件夹"def single_col_summary():    """6.单列分类汇总(求和/计数/平均)"""    src_file = "源数据.xlsx"    group_col = "部门"      # 分组列    value_col = "工资"      # 汇总列    agg_func = "sum"        # 可选: sum, count, mean    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    if group_col not in df.columns or value_col not in df.columns:        return "指定的分组列或汇总列不存在"    if agg_func == "sum":        result = df.groupby(group_col, as_index=False)[value_col].sum()    elif agg_func == "mean":        result = df.groupby(group_col, as_index=False)[value_col].mean()    else:        result = df.groupby(group_col, as_index=False)[value_col].count()    result.to_excel("单列汇总.xlsx", index=False)    return f"按 '{group_col}' 对 '{value_col}' 进行 {agg_func} 完成,结果保存为 单列汇总.xlsx"def multi_col_summary():    """7.多列分组汇总(类似透视表)"""    src_file = "源数据.xlsx"    group_cols = ["区域""产品"]   # 可以改为你需要的分组列    value_col = "销售额"    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    for col in group_cols:        if col not in df.columns:            return f"列 '{col}' 不存在"    result = df.groupby(group_cols, as_index=False)[value_col].sum()    result.to_excel("多列分组汇总.xlsx", index=False)    return "多列分组汇总完成,结果保存为 多列分组汇总.xlsx"def filter_summary():    """8.按条件筛选汇总"""    src_file = "源数据.xlsx"    filter_col = "年份"    filter_value = 2025       # 修改为你的筛选条件    value_col = "销售额"    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    if filter_col not in df.columns:        return f"列 '{filter_col}' 不存在"    filtered = df[df[filter_col] == filter_value]    if filtered.empty:        return "没有满足条件的记录"    total = filtered[value_col].sum()    filtered.to_excel(f"筛选结果_{filter_value}.xlsx", index=False)    return f"筛选出 {len(filtered)} 行,{value_col} 总和为 {total},结果已保存"def growth_rate():    """9.同比增长/环比计算(假设数据按时间排序,有'销售额'列)"""    src_file = "月度数据.xlsx"  # 必须包含“月份”和“销售额”列    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    if "销售额" not in df.columns:        return "缺少 '销售额' 列"    df = df.sort_values("月份")  # 假设有月份列,字符串格式可排序    df["环比增长率"] = df["销售额"].pct_change()    # 同比:如果按月,shift(12);按年,shift(1) 但要根据实际    df["同比增长率"] = df["销售额"].pct_change(periods=12)  # 假设每月数据    df.to_excel("增长率计算.xlsx", index=False)    return "增长率计算完成,结果保存为 增长率计算.xlsx"def remove_duplicates():    """10.删除完全重复的行"""    src_file = "源数据.xlsx"    subset_cols = None  # None表示所有列完全重复才删除,可以改为 ["姓名","日期"] 指定列    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    before = len(df)    if subset_cols:        df.drop_duplicates(subset=subset_cols, inplace=True)    else:        df.drop_duplicates(inplace=True)    after = len(df)    df.to_excel("去重结果.xlsx", index=False)    return f"去重完成,从 {before} 行减少到 {after} 行,结果保存为 去重结果.xlsx"def remove_empty():    """11.删除空行和空列"""    src_file = "源数据.xlsx"    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    # 删除全为空的行    df.dropna(how='all', inplace=True)    # 删除全为空的列    df.dropna(axis=1, how='all', inplace=True)    df.to_excel("删除空行列结果.xlsx", index=False)    return "空行和空列已删除,结果保存为 删除空行列结果.xlsx"def unify_date_format():    """12.统一日期格式为 YYYY-MM-DD"""    src_file = "源数据.xlsx"    date_col = "日期"    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    if date_col not in df.columns:        return f"列 '{date_col}' 不存在"    # 尝试转换,忽略无法转换的    df[date_col] = pd.to_datetime(df[date_col], errors='coerce').dt.strftime('%Y-%m-%d')    df.to_excel("日期格式统一.xlsx", index=False)    return "日期格式已统一为 YYYY-MM-DD,结果保存为 日期格式统一.xlsx"def strip_spaces():    """13.清除所有文本列的前后空格"""    src_file = "源数据.xlsx"    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    str_cols = df.select_dtypes(include='object').columns    for col in str_cols:        df[col] = df[col].astype(str).str.strip()    df.to_excel("清除空格后.xlsx", index=False)    return "文本空格已清除,结果保存为 清除空格后.xlsx"def text_to_number():    """14.将文本型数字转为数值"""    src_file = "源数据.xlsx"    col_name = "金额"   # 改成你需要转换的列名    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    if col_name not in df.columns:        return f"列 '{col_name}' 不存在"    # 先转字符串去掉千分位逗号,再转数字    df[col_name] = df[col_name].astype(str).str.replace(',''').str.replace(',''')    df[col_name] = pd.to_numeric(df[col_name], errors='coerce')    df.to_excel("文本转数字.xlsx", index=False)    return f"列 '{col_name}' 已转为数值,结果保存为 文本转数字.xlsx"def vlookup_match():    """15.VLOOKUP 匹配"""    main_file = "主表.xlsx"       # 需要查找的表    lookup_file = "对照表.xlsx"   # 被匹配的表    on_col = "编号"               # 两张表共有的列名    return_cols = ["名称"]        # 要从对照表拿过来的列    if not os.path.exists(main_file) or not os.path.exists(lookup_file):        return "主表或对照表文件不存在"    main_df = pd.read_excel(main_file)    lookup_df = pd.read_excel(lookup_file)    if on_col not in main_df.columns or on_col not in lookup_df.columns:        return f"列 '{on_col}' 在某张表中不存在"    # 只取对照表中需要的列,去重保留第一个    lookup_sub = lookup_df[[on_col] + return_cols].drop_duplicates(subset=on_col)    result = main_df.merge(lookup_sub, on=on_col, how='left')    result.to_excel("VLOOKUP结果.xlsx", index=False)    return "VLOOKUP 匹配完成,结果保存为 VLOOKUP结果.xlsx"def compare_two_sheets():    """16.找出两表差异"""    old_file = "旧表.xlsx"    new_file = "新表.xlsx"    key_col = "编号"  # 用于比较的主键列    if not os.path.exists(old_file) or not os.path.exists(new_file):        return "旧表或新表文件不存在"    old_df = pd.read_excel(old_file)    new_df = pd.read_excel(new_file)    if key_col not in old_df.columns or key_col not in new_df.columns:        return f"列 '{key_col}' 在某表中不存在"    old_ids = set(old_df[key_col])    new_ids = set(new_df[key_col])    added = new_df[new_df[key_col].isin(new_ids - old_ids)]    deleted = old_df[old_df[key_col].isin(old_ids - new_ids)]    # 修改的:主键相同但其他列不同    common_ids = old_ids & new_ids    old_common = old_df[old_df[key_col].isin(common_ids)].set_index(key_col)    new_common = new_df[new_df[key_col].isin(common_ids)].set_index(key_col)    # 简单比较,找出不相等的行(需要列名完全一致)    diff_mask = (old_common != new_common).any(axis=1)    modified_old = old_common[diff_mask].reset_index()    modified_new = new_common[diff_mask].reset_index()    with pd.ExcelWriter("两表差异.xlsx"as writer:        added.to_excel(writer, sheet_name="新增行", index=False)        deleted.to_excel(writer, sheet_name="删除行", index=False)        modified_old.to_excel(writer, sheet_name="修改前", index=False)        modified_new.to_excel(writer, sheet_name="修改后", index=False)    return "差异分析完成,结果保存为 两表差异.xlsx"def unique_values():    """17.提取指定列的唯一值"""    src_file = "源数据.xlsx"    col = "客户名称"    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    if col not in df.columns:        return f"列 '{col}' 不存在"    unique_list = df[col].drop_duplicates().reset_index(drop=True)    unique_list.to_excel("唯一值列表.xlsx", index=False)    return f"已提取 '{col}' 列的唯一值,共 {len(unique_list)} 个,保存为 唯一值列表.xlsx"def batch_xls_to_xlsx():    """18.批量将当前目录下所有 .xls 转为 .xlsx"""    import glob    files = glob.glob("*.xls")    if not files:        return "当前文件夹没有 .xls 文件"    count = 0    for f in files:        if f.startswith('~'):  # 忽略临时文件            continue        # 使用 xlrd 读取 .xls,需要安装 pip install xlrd        try:            df = pd.read_excel(f)            df.to_excel(f + "x", index=False)  # 新文件名在原文件名后加 x            count += 1        except Exception as e:            print(f"转换 {f} 失败:{e}")    return f"转换完成,共处理 {count} 个文件,新文件为 .xlsx 后缀"def excel_csv_conversion():    """19.Excel 与 CSV 互转(当前示例:Excel 转 CSV)"""    src_file = "源数据.xlsx"    if not os.path.exists(src_file):        return f"找不到 {src_file}"    df = pd.read_excel(src_file)    csv_file = "转换结果.csv"    df.to_csv(csv_file, index=False, encoding='utf-8-sig')  # 防止中文乱码    return f"已转换为 CSV,保存为 {csv_file}"    # 若需 CSV 转 Excel,可类似:df = pd.read_csv('xxx.csv'); df.to_excel('xxx.xlsx', index=False)def list_sheet_names():    """20.提取工作簿的所有工作表名称"""    src_file = "待查看.xlsx"    if not os.path.exists(src_file):        return f"找不到 {src_file}"    xls = pd.ExcelFile(src_file)    sheets = xls.sheet_names    df = pd.DataFrame({"工作表名": sheets})    df.to_excel("工作表名称列表.xlsx", index=False)    return f"该文件共有 {len(sheets)} 个工作表,名称已保存至 工作表名称列表.xlsx"# ============================================# 图形界面部分# ============================================func_map = {    "1-合并多个Excel文件": merge_files,    "2-合并所有工作表": merge_sheets,    "3-按列拆分成多个文件": split_by_col_to_files,    "4-按列拆分到同一工作簿的不同sheet": split_by_col_to_sheets,    "5-按行数拆分": split_by_rows,    "6-单列分类汇总": single_col_summary,    "7-多列分组汇总": multi_col_summary,    "8-按条件筛选汇总": filter_summary,    "9-同比增长/环比计算": growth_rate,    "10-删除完全重复的行": remove_duplicates,    "11-删除空行/空列": remove_empty,    "12-统一日期格式": unify_date_format,    "13-清除文本前后空格": strip_spaces,    "14-文本型数字转数值": text_to_number,    "15-VLOOKUP匹配": vlookup_match,    "16-找出两表差异": compare_two_sheets,    "17-提取唯一值": unique_values,    "18-批量xls转xlsx": batch_xls_to_xlsx,    "19-Excel与CSV互转(示例:转CSV)": excel_csv_conversion,    "20-提取工作表名称": list_sheet_names,}def execute():    selected = combo.get()    if selected in func_map:        try:            msg = func_map[selected]()            messagebox.showinfo("完成", msg)        except Exception as e:            messagebox.showerror("出错了"f"执行失败:{str(e)}")    else:        messagebox.showwarning("提示""请先选择一个功能")# 创建窗口root = tk.Tk()root.title("Excel 全能工具箱 (20合1)")root.geometry("520x220")root.resizable(FalseFalse)ttk.Label(root, text="请选择要执行的功能:", font=("微软雅黑"12)).pack(pady=15)combo = ttk.Combobox(root, values=list(func_map.keys()), width=50, state="readonly")combo.pack(pady=10)combo.current(0)ttk.Button(root, text="▶ 开始处理", command=execute).pack(pady=20)ttk.Label(root, text="提示:请根据实际表格修改代码中的文件名和列名", foreground="gray").pack()root.mainloop()‍

三、如何让代码变成你自己的专属工具?

上面的代码直接复制就可以跑,但里面的文件名和列名都是我假设的。要让它真正为你工作,只需要简单改几个地方:

  1. 修改文件名:每个函数开头的 src_file = "源数据.xlsx" 改成你电脑上实际的文件名。

  2. 修改列名:例如 split_col = "区域" 改成你表格里的“销售地区”;value_col = "销售额" 改成“金额”等。

  3. 调整参数:比如拆分行数 rows_per_file = 1000 可以改成 500;筛选条件 filter_value = 2025 改成你需要的年份。

改完后保存,重新运行即可。

四、打包成 exe,发给没有 Python 的同事

这一步只需要做一次,你(或请 IT 同事)打包后,其他人就能双击使用。

1、在存放 Excel工具箱.py 的文件夹地址栏输入 cmd 回车,打开命令行。

2、输入以下命令打包(-F 生成单个文件,-w 不显示黑窗口):

pyinstaller -F -w Excel工具箱.py

3、等待一分钟左右,在自动生成的 dist 文件夹里找到 Excel工具箱.exe,这就是最终程序。

把这个 exe 复制到任何 Windows 电脑上,不需要安装 Python,不需要配置环境,直接双击就能看到那个下拉菜单,选功能、点按钮,几秒钟结果就出来了。

⚠️ 重要说明:exe 运行时会读取它所在文件夹里的 Excel 文件,所以需要把要处理的表格和 exe 放在同一个文件夹下(或者在代码里写明完整路径)。

五、写在最后

这 20 个功能几乎覆盖了日常办公中 90% 的 Excel 重复劳动,更重要的是,你拥有的是一个完全自定义、可以无限扩展的框架。以后有了新需求,只需仿照格式加一个新函数,在 func_map 里注册一下,重新打包就行。

 每一次互动,皆是鼓励, 每一份支持,共促成长。

商务合作:RYXtest

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-26 21:30:22 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/803569.html
  2. 运行时间 : 0.105957s [ 吞吐率:9.44req/s ] 内存消耗:4,778.67kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=48338f1c9ff00ba5e57e52b898348470
  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.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000673s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000988s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000337s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000304s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000637s ]
  6. SELECT * FROM `set` [ RunTime:0.000215s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000635s ]
  8. SELECT * FROM `article` WHERE `id` = 803569 LIMIT 1 [ RunTime:0.000549s ]
  9. UPDATE `article` SET `lasttime` = 1782480622 WHERE `id` = 803569 [ RunTime:0.008115s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000408s ]
  11. SELECT * FROM `article` WHERE `id` < 803569 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000629s ]
  12. SELECT * FROM `article` WHERE `id` > 803569 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000498s ]
  13. SELECT * FROM `article` WHERE `id` < 803569 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000773s ]
  14. SELECT * FROM `article` WHERE `id` < 803569 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000721s ]
  15. SELECT * FROM `article` WHERE `id` < 803569 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000883s ]
0.107713s