当前位置:首页>Excel>【Excel篇】Openpyxl库-篇3-行列操作与工作表管理

【Excel篇】Openpyxl库-篇3-行列操作与工作表管理

  • 2026-05-29 13:09:22
【Excel篇】Openpyxl库-篇3-行列操作与工作表管理

👉 点关注,不迷路 👈⭐️ 第一时间获取更新 ⭐️


一、行和列的基本操作

1. 获取行数和列数

from openpyxl import load_workbookwb = load_workbook("学生成绩表.xlsx")ws = wb.active# 获取最大行数和列数print(f"最大行数:{ws.max_row}")print(f"最大列数:{ws.max_column}")# 获取当前使用的区域范围print(f"使用区域:{ws.dimensions}")  # 例如:A1:F6

2. 调整行高和列宽

from openpyxl import Workbookwb = Workbook()ws = wb.active# 设置列宽(单位:字符宽度)ws.column_dimensions['A'].width = 15ws.column_dimensions['B'].width = 20ws.column_dimensions['C'].width = 10# 设置行高(单位:磅)ws.row_dimensions[1].height = 30ws.row_dimensions[2].height = 25# 批量设置多列宽度for col in ['D''E''F']:    ws.column_dimensions[col].width = 12# 批量设置多行高度for row in range(310):    ws.row_dimensions[row].height = 18wb.save("行列格式.xlsx")

3. 插入行和列

from openpyxl import Workbookwb = Workbook()ws = wb.active# 写入示例数据for i in range(16):    ws.append([f"数据{i}1"f"数据{i}2"f"数据{i}3"])print("原始数据:")for row in ws.iter_rows(values_only=True):    print(row)# 在第2行之前插入1行ws.insert_rows(2)  # 原来的第2行变成第3行# 在第2行之前插入3行ws.insert_rows(2, amount=3)# 在第2列之前插入1列ws.insert_cols(2)# 在第2列之前插入2列ws.insert_cols(2, amount=2)print("\n插入后:")for row in ws.iter_rows(values_only=True):    print(row)wb.save("插入行列.xlsx")

insert_rows / insert_cols 参数说明:

参数
说明
默认值
idx
插入位置的索引(从1开始)
必填
amount
插入的行/列数量
1

4. 删除行和列

from openpyxl import Workbookwb = Workbook()ws = wb.active# 写入示例数据for i in range(16):    ws.append([f"第{i}行"f"数据{i}2"f"数据{i}3"])print("原始数据:")for row in ws.iter_rows(values_only=True):    print(row)# 删除第3行ws.delete_rows(3)# 从第2行开始删除2行ws.delete_rows(2, amount=2)# 删除第2列ws.delete_cols(2)# 从第1列开始删除2列ws.delete_cols(1, amount=2)print("\n删除后:")for row in ws.iter_rows(values_only=True):    print(row)wb.save("删除行列.xlsx")

注意: 删除行列后,后面的数据会自动前移,公式中的引用也会自动更新。

5. 移动单元格区域

from openpyxl import Workbookwb = Workbook()ws = wb.active# 写入测试数据for row in range(15):    for col in range(14):        ws.cell(row=rowcolumn=col, value=f"R{row}C{col}")print("移动前:")for row in ws.iter_rows(values_only=True):    print(row)# 移动区域 A1:C4 向下移动2行,向右移动1ws.move_range("A1:C4", rows=2, cols=1)print("\n移动后:")for row in ws.iter_rows(values_only=True):    print(row)# 移动时可以指定是否平移公式(translate=Truews.move_range("D1:F4", rows=1, cols=0, translate=True)wb.save("移动区域.xlsx")

move_range 参数说明:

参数
说明
cell_range
要移动的区域,如 "A1:C4"
rows
向下移动的行数(负数向上)
cols
向右移动的列数(负数向左)
translate
是否平移公式中的引用(默认 False)

二、工作表管理

1. 工作表的创建与命名

from openpyxl import Workbookwb = Workbook()# 获取默认工作表default_sheet = wb.activeprint(f"默认工作表名称:{default_sheet.title}")# 修改工作表名称default_sheet.title = "首页"# 创建新工作表(默认添加到末尾)sheet1 = wb.create_sheet("数据表")sheet2 = wb.create_sheet("统计表")# 在指定位置创建工作表(0表示最前面)sheet3 = wb.create_sheet("汇总表"0)print(f"所有工作表:{wb.sheetnames}")  # ['汇总表', '首页', '数据表', '统计表']wb.save("创建工作表.xlsx")

2. 选择与切换工作表

from openpyxl import load_workbookwb = load_workbook("创建工作表.xlsx")# 方法1:通过名称获取sheet = wb["数据表"]print(f"当前工作表:{sheet.title}")# 方法2:通过索引获取first_sheet = wb.worksheets[0]  # 第一个工作表last_sheet = wb.worksheets[-1]   # 最后一个工作表print(f"第一个:{first_sheet.title}")print(f"最后一个:{last_sheet.title}")# 遍历所有工作表for sheet in wb:    print(f"正在处理:{sheet.title}")

3. 复制工作表

from openpyxl import Workbookwb = Workbook()ws = wb.activews.title = "原始数据"# 写入一些数据ws["A1"] = "原始内容"ws["A2"] = 100# 复制工作表copied_sheet = wb.copy_worksheet(ws)copied_sheet.title = "副本"# 复制后修改内容copied_sheet["A1"] = "修改后的内容"copied_sheet["B1"] = "新增列"print(f"原始工作表:{ws.title} - A1: {ws['A1'].value}")print(f"复制工作表:{copied_sheet.title} - A1: {copied_sheet['A1'].value}")wb.save("复制工作表.xlsx")

注意:copy_worksheet() 会复制数据、样式、公式,但不会复制图表和图片。

4. 移动工作表顺序

from openpyxl import Workbookwb = Workbook()wb.create_sheet("表A")wb.create_sheet("表B")wb.create_sheet("表C")print(f"移动前:{wb.sheetnames}")  # ['Sheet', '表A', '表B', '表C']# 方法1:移动到指定位置sheet = wb["表B"]sheet.move_sheet(offset=-2)  # 向前移动2位print(f"移动后:{wb.sheetnames}")# 方法2:重新排序(直接修改 sheetnames 顺序不推荐)# 更可靠的方式:手动调整sheets = wb.worksheetswb._sheets = [sheets[2], sheets[0], sheets[1]]  # 重新排序print(f"重排后:{wb.sheetnames}")wb.save("移动工作表.xlsx")

5. 删除工作表

from openpyxl import load_workbookwb = load_workbook("创建工作表.xlsx")print(f"删除前:{wb.sheetnames}")# 方法1:通过名称删除sheet_to_remove = wb["统计表"]wb.remove(sheet_to_remove)# 方法2:直接删除(推荐)del wb["数据表"]# 方法3:通过索引删除wb.remove(wb.worksheets[0])print(f"删除后:{wb.sheetnames}")wb.save("删除工作表.xlsx")

6. 工作表标签颜色

from openpyxl import Workbookfrom openpyxl.styles import PatternFillwb = Workbook()ws1 = wb.activews1.title = "已完成"# 设置工作表标签颜色ws1.sheet_properties.tabColor = "00FF00"  # 绿色ws2 = wb.create_sheet("进行中")ws2.sheet_properties.tabColor = "FF9900"  # 橙色ws3 = wb.create_sheet("未开始")ws3.sheet_properties.tabColor = "FF0000"  # 红色# 颜色可以使用 RGB 十六进制值# 常见颜色:"FF0000"(红), "00FF00"(绿), "0000FF"(蓝), "FFFF00"(黄)wb.save("工作表标签颜色.xlsx")


三、实战案例:合并多个月份的销售报表

from openpyxl import Workbook, load_workbookimport random# ========== 1. 创建三个月的销售数据文件 ==========def create_monthly_report(month_name):    """创建单月销售报表"""    wb = Workbook()    ws = wb.active    ws.title = f"{month_name}销售"    # 表头    ws.append(["日期""产品名称""销量""单价""销售额"])    # 模拟数据    products = ["鼠标""键盘""U盘""移动硬盘"]    for day in range(111):  # 每月10天数据        for product in products:            quantity = random.randint(550)            price = {"鼠标"49"键盘"129"U盘"59"移动硬盘"499}[product]            sales = quantity * price            ws.append([f"{month_name}{day}日", product, quantity, price, sales])    wb.save(f"{month_name}月销售.xlsx")    print(f"{month_name}月销售文件已创建")# 创建3个月的数据for month in [123]:    create_monthly_report(month)# ========== 2. 合并三个月的报表 ==========print("\n开始合并报表...")# 创建合并后的工作簿merged_wb = Workbook()# 方法1:每个月份单独一个工作表for month in [123]:    source_wb = load_workbook(f"{month}月销售.xlsx")    source_ws = source_wb.active    # 创建新工作表    target_ws = merged_wb.create_sheet(f"{month}月")    # 复制数据    for row in source_ws.iter_rows(values_only=True):        target_ws.append(row)    print(f"已合并{month}月数据,共{target_ws.max_row - 1}行数据")# 删除默认的空工作表merged_wb.remove(merged_wb["Sheet"])# 方法2:创建汇总工作表(所有数据合并到一起)summary_ws = merged_wb.create_sheet("全年汇总"0)summary_ws.append(["月份""日期""产品名称""销量""单价""销售额"])for month in [123]:    source_wb = load_workbook(f"{month}月销售.xlsx")    source_ws = source_wb.active    # 跳过表头,从第2行开始读取    for row in source_ws.iter_rows(min_row=2, values_only=True):        summary_ws.append([f"{month}月"] + list(row))print(f"\n全年汇总共{summary_ws.max_row - 1}行数据")# ========== 3. 添加统计分析 ==========# 计算总销售额total_sales = 0for row in summary_ws.iter_rows(min_row=2, min_col=6, max_col=6, values_only=True):    if row[0is not None:        total_sales += row[0]summary_ws.append(["""""""""总销售额", total_sales])summary_ws.append(["""""""""数据行数", summary_ws.max_row - 2])# 设置列宽for col in ['A''B''C''D''E''F']:    summary_ws.column_dimensions[col].width = 12merged_wb.save("合并销售报表.xlsx")print("\n报表合并完成!生成文件:合并销售报表.xlsx")# ========== 4. 打印统计信息 ==========print("\n=== 统计信息 ===")for month in [123]:    source_wb = load_workbook(f"{month}月销售.xlsx")    source_ws = source_wb.active    row_count = source_ws.max_row - 1    print(f"{month}月:{row_count}条销售记录")

四、实战练习:员工信息表管理

任务描述:

  1. 创建一个员工信息表,包含以下列:

    • 工号、姓名、部门、职位、入职日期、状态

  2. 完成以下操作:

    • 在第1行之前插入表头行,设置表头行高为30

    • 在第2行之后插入3行(用于添加新员工)

    • 删除所有状态为"离职"的员工行

    • 设置A列宽度15,B列宽度10,C列宽度12

    • 将整个表格移动到从B2开始的位置

    • 创建两个工作表副本:"在职员工"和"离职员工"

参考答案框架:

from openpyxl import Workbookwb = Workbook()ws = wb.activews.title = "员工总表"# 原始数据(包含离职员工)employees = [    ["E001""张三""技术部""工程师""2023-01-01""在职"],    ["E002""李四""市场部""专员""2023-02-01""离职"],    ["E003""王五""技术部""经理""2022-06-01""在职"],    ["E004""赵六""销售部""主管""2023-03-01""离职"],    ["E005""小明""技术部""工程师""2023-04-01""在职"],]# 1. 写入原始数据for emp in employees:    ws.append(emp)# 2. 在开头插入表头行ws.insert_rows(1)ws["A1"] = "工号"ws["B1"] = "姓名"ws["C1"] = "部门"ws["D1"] = "职位"ws["E1"] = "入职日期"ws["F1"] = "状态"# 3. 设置格式ws.row_dimensions[1].height = 30ws.column_dimensions['A'].width = 15ws.column_dimensions['B'].width = 10ws.column_dimensions['C'].width = 12# 4. 删除离职员工(从后往前删,避免索引错乱)for row in range(ws.max_row, 1, -1):    if ws.cell(row=row, column=6).value == "离职":        ws.delete_rows(row)# 5. 移动整个表格区域ws.move_range(f"A1:F{ws.max_row}", rows=0, cols=1)  # 向右移动1列到B2开始# 6. 创建在职员工工作表active_ws = wb.copy_worksheet(ws)active_ws.title = "在职员工"# 7. 创建离职员工工作表(需要重新读取原始数据...)wb.save("员工管理.xlsx")print("员工信息表处理完成")

五、常见错误与解决方法

错误现象
原因
解决方案
ValueError: Row or column values must be at least 1
行列索引从0开始
openpyxl 索引从1开始
AttributeError: 'Worksheet' object has no attribute 'insert_rows'
版本太旧
pip install --upgrade openpyxl
删除行后遍历出错
从上往下删除导致索引变化
从下往上删除
copy_worksheet
 后样式丢失
部分样式属性不支持复制
手动重新设置样式
move_range
 后公式报错
公式未自动平移
设置 translate=True

删除行时的正确做法:

# ❌ 错误:从上往下删for row in range(2, ws.max_row + 1):    if condition:        ws.delete_rows(row)  # 删除后行号变化,会漏删# ✅ 正确:从下往上删for row in range(ws.max_row, 1-1):    if condition:        ws.delete_rows(row)

六、核心知识点速查表

操作
代码
设置列宽
ws.column_dimensions['A'].width = 15
设置行高
ws.row_dimensions[1].height = 30
插入行
ws.insert_rows(2, amount=1)
插入列
ws.insert_cols(2, amount=1)
删除行
ws.delete_rows(2, amount=1)
删除列
ws.delete_cols(2, amount=1)
移动区域
ws.move_range("A1:C4", rows=2, cols=1)
创建工作表
wb.create_sheet("表名")
复制工作表
wb.copy_worksheet(ws)
删除工作表
wb.remove(ws)
 或 del wb["表名"]
获取所有工作表
wb.sheetnames
 或 wb.worksheets
设置标签颜色
ws.sheet_properties.tabColor = "FF0000"

七、实战自我小测验

作业:季度报表合并系统

要求:

  1. 创建4个季度的销售数据文件(Q1、Q2、Q3、Q4)

    • 每个文件包含3个月的数据

    • 数据列:月份、产品、销量、单价、销售额

  2. 创建一个「年度汇总」工作簿,包含:

    • 4个独立的季度工作表

    • 1个「全年汇总」工作表(合并所有数据)

    • 1个「统计报告」工作表(自动统计)

  3. 在统计报告工作表中计算:

    • 全年总销售额

    • 每个季度的总销售额

    • 销量最高的产品

    • 销售额最高的月份

  4. 格式要求:

    • 表头行高25,加粗

    • 数字列右对齐

    • 金额列设置千分位格式(可留待第5课数字格式实现)

扩展挑战:

  • 在统计报告中自动生成各季度销售额的条形图


如果您觉得有用,欢迎点赞👍、转发🔄、收藏⭐和评论💬,也烦请分享给您身边有需要的朋友。

----Python办公自动化的目标----
助您工作更高效,助您工作更激情。

最新文章

随机文章

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