当前位置:首页>python>Python openpyxl模块详细介绍

Python openpyxl模块详细介绍

  • 2026-02-08 18:54:29
Python openpyxl模块详细介绍

1. 创始时间与作者

  • 创始时间openpyxl 首次发布于 2010年(首个版本 1.0)

  • 核心开发者

    • Eric Gazoni:初始创建者Charlie Clark:当前主要维护者  

    • 开源社区贡献:超过100位开发者参与贡献  

  • 项目定位:用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库

2. 官方资源

  • GitHub 地址https://github.com/soxhub/openpyxl

  • PyPI 地址https://pypi.org/project/openpyxl/

  • 文档地址https://openpyxl.readthedocs.io/

  • 官网地址https://openpyxl.org/

3. 核心功能

4. 应用场景

1. 数据报表生成
from openpyxl import Workbookfrom openpyxl.styles import FontAlignment# 创建工作簿wb = Workbook()ws = wb.activews.title = "销售报表"# 添加标题ws['A1'] = "2023年销售数据"ws['A1'].font = Font(bold=Truesize=16)ws.merge_cells('A1:E1')# 添加表头headers = ["产品""季度1""季度2""季度3""季度4"]for colheader in enumerate(headers1):cell = ws.cell(row=2column=colvalue=header)cell.font = Font(bold=True)cell.alignment = Alignment(horizontal='center')# 添加数据data = [    ["手机"12500142001680019500],    ["笔记本"850092001050012800],    ["平板"68007200890010200]]for row_idxrow_data in enumerate(data3):for col_idxvalue in enumerate(row_data1):ws.cell(row=row_idxcolumn=col_idxvalue=value)# 添加汇总公式for row_idx in range(36):ws.cell(row=row_idxcolumn=6value=f"=SUM(B{row_idx}:E{row_idx})")# 保存文件wb.save("sales_report.xlsx")
2. 大数据集处理
from openpyxl import load_workbookfrom openpyxl.utils import get_column_letterdef process_large_excel(file_pathoutput_path):# 打开工作簿(只读模式优化内存)wb = load_workbook(filename=file_pathread_only=True)ws = wb.active# 创建新工作簿new_wb = Workbook()new_ws = new_wb.activenew_ws.title = "处理结果"# 复制表头for row in ws.iter_rows(min_row=1max_row=1):for cell in row:new_ws[cell.coordinate].value = cell.value# 处理数据(10万行示例)row_count = 0for row in ws.iter_rows(min_row=2values_only=True):if row_count%1000 == 0:print(f"处理进度: {row_count}行")# 数据处理逻辑processed_row = [row[0], row[1*1.1 if row[1else 0,  # 增加10%f"={get_column_letter(2)}{row_count+2}*0.9"# 公式计算        ]new_ws.append(processed_row)row_count += 1# 每1000行保存一次(防止内存溢出)if row_count%1000 == 0:new_wb.save(output_path)# 调整列宽for col in new_ws.columns:max_length = 0column = col[0].column_letterfor cell in col:try:if len(str(cell.value)) >max_length:max_length = len(str(cell.value))except:passadjusted_width = (max_length+2)new_ws.column_dimensions[column].width = adjusted_widthnew_wb.save(output_path)process_large_excel("big_data.xlsx""processed_data.xlsx")
3. 财务报表自动化
from openpyxl import load_workbookfrom openpyxl.chart import BarChartReferencedef generate_financial_report(template_pathoutput_pathdata):# 加载模板wb = load_workbook(template_path)ws = wb["财务报表"]# 填充数据ws['C5'] = data['revenue']ws['C6'] = data['cost']ws['C7'] = f"=C5-C6"# 毛利ws['C8'] = data['expenses']ws['C9'] = f"=C7-C8"# 净利# 添加月度数据months = ["Jan""Feb""Mar""Apr""May""Jun"]for imonth in enumerate(monthsstart=3):ws.cell(row=15column=ivalue=month)ws.cell(row=16column=ivalue=data['monthly_revenue'][i-3])ws.cell(row=17column=ivalue=data['monthly_cost'][i-3])# 创建图表chart = BarChart()chart.type = "col"chart.style = 10chart.title = "月度收入与成本"chart.y_axis.title = "金额 (万元)"chart.x_axis.title = "月份"data_ref = Reference(wsmin_col=3min_row=16max_col=8max_row=17)cats = Reference(wsmin_col=3min_row=15max_col=8)chart.add_data(data_reftitles_from_data=True)chart.set_categories(cats)# 添加图表到工作表ws.add_chart(chart"B20")# 保护工作表ws.protection.sheet = Truews.protection.password = 'finance2023'# 保存报告wb.save(output_path)# 使用示例financial_data = {'revenue'12500000,'cost'7800000,'expenses'3200000,'monthly_revenue': [98010201100115012501300],'monthly_cost': [620650680700750780]}generate_financial_report("report_template.xlsx""Q2_financial_report.xlsx"financial_data)
4. 数据清洗与转换
from openpyxl import load_workbookimport redef clean_excel_data(input_pathoutput_path):wb = load_workbook(input_path)ws = wb.active# 清理电话号码格式phone_pattern = re.compile(r'(\d{3})\D*(\d{4})\D*(\d{4})')for row in ws.iter_rows(min_row=2min_col=3max_col=3):for cell in row:if cell.value and isinstance(cell.valuestr):match = phone_pattern.search(cell.value)if match:cell.value = f"{match.group(1)}-{match.group(2)}-{match.group(3)}"# 标准化日期格式for row in ws.iter_rows(min_row=2min_col=4max_col=4):for cell inrow:if isinstance(cell.valuestr):# 尝试转换各种日期格式try:cell.value = cell.value.replace('/''-').replace('年''-').replace('月''-').replace('日''')except:pass# 删除空行rows_to_delete = []for idxrow in enumerate(ws.iter_rows(min_row=2), start=2):if all(cell.value is None or cell.value == "" for cell in row):rows_to_delete.append(idx)for idx in sorted(rows_to_deletereverse=True):ws.delete_rows(idx)# 数据验证email_pattern = re.compile(r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$')for row in ws.iter_rows(min_row=2min_col=2max_col=2):for cell in row:if cell.value and not email_pattern.match(cell.value):# 标记无效邮箱cell.font = Font(color="FF0000")cell.comment = "无效邮箱格式"wb.save(output_path)clean_excel_data("raw_data.xlsx""cleaned_data.xlsx")

5. 底层逻辑与技术原理

模块架构
关键技术实现
  1. XML 处理

    • 使用 Python 标准库的 xml.etree.ElementTree

    • 通过 SAX 解析器处理大文件(只读模式)

    • 使用 lxml 加速处理(可选)

  2. 文件结构

    • Excel 文件作为 ZIP 存档处理

    • 包含多个 XML 文件(工作表、样式、共享字符串等)

    • 目录结构解析:_rels, docProps, xl

  3. 内存优化

    • 只读模式:逐行读取不加载整个文件

    • 写优化模式:延迟写入直到保存

    • 共享字符串表:减少重复字符串内存占用

  4. 公式处理

    • 支持读取计算公式结果

    • 支持写入公式(不计算)

    • 使用 data_only=True 读取计算结果

6. 安装与配置

基础安装
pip install openpyxl
可选依赖
# 安装lxml加速XML处理pip install lxml# 安装Pillow支持图像处理pip install pillow
环境要求
组件最低要求推荐配置
Python3.6+3.8+
内存128MB1GB+(大文件处理)
磁盘空间无特殊要求足够存储Excel文件
兼容性说明
# 检查文件格式兼容性from openpyxl import Workbookwb = Workbook()# 支持的文件格式print("支持保存格式:"wb.supported_formats)# 输出: ['xlsx', 'xlsm', 'xltx', 'xltm']# 检查功能支持print("是否支持图表:"hasattr(wb'create_chart'))print("是否支持图像:"hasattr(wb'add_image'))

7. 核心API详解

工作簿操作
方法描述示例
Workbook()创建新工作簿wb = Workbook()
load_workbook()加载现有文件wb = load_workbook('data.xlsx')
save()保存工作簿wb.save('output.xlsx')
active获取活动工作表ws = wb.active
create_sheet()创建工作表ws = wb.create_sheet('新表')
remove()删除工作表wb.remove(ws)
工作表操作
方法描述示例
cell()获取单元格cell = ws.cell(row=1, column=1)
iter_rows()行迭代器for row in ws.iter_rows(min_row=2):
append()添加行数据ws.append(['A', 'B', 'C'])
merge_cells()合并单元格ws.merge_cells('A1:D1')
freeze_panes冻结窗格ws.freeze_panes = 'B2'
add_table()添加表格ws.add_table(table)
单元格操作
属性/方法描述示例
value单元格值cell.value = 42
number_format数字格式cell.number_format = '0.00%'
font字体样式cell.font = Font(bold=True)
fill填充样式cell.fill = PatternFill(fill_type='solid', fgColor='FF0000')
border边框样式cell.border = Border(left=Side(style='thin'))
comment单元格批注cell.comment = Comment('重要数据', '系统')

8. 高级用法

1. 条件格式
from openpyxl import Workbookfrom openpyxl.styles import PatternFillfrom openpyxl.formatting.rule import CellIsRulewb = Workbook()ws = wb.active# 添加示例数据for in range(111):ws.append([ii*10i*100])# 创建条件格式 - 值大于500red_fill = PatternFill(start_color='FFC7CE'end_color='FFC7CE'fill_type='solid')rule = CellIsRule(operator='greaterThan'formula=['500'], fill=red_fill)ws.conditional_formatting.add('C1:C10'rule)# 创建条件格式 - 数据条from openpyxl.formatting.rule import DataBarRuledata_bar_rule = DataBarRule(start_type='min'end_type='max'color="FF638EC6"showValue=True)ws.conditional_formatting.add('B1:B10'data_bar_rule)wb.save('conditional_formatting.xlsx')
2. 数据验证
from openpyxl import Workbookfrom openpyxl.worksheet.datavalidation import DataValidationwb = Workbook()ws = wb.active# 创建下拉列表验证dv = DataValidation(type="list"formula1='"选项A,选项B,选项C"'showDropDown=True)dv.error = '输入无效'dv.errorTitle = '无效输入'dv.prompt = '请从列表中选择'dv.promptTitle = '选择选项'ws.add_data_validation(dv)dv.add('A1:A10')  # 应用验证区域# 创建日期验证date_dv = DataValidation(type="date"operator="between"formula1="2023-01-01"formula2="2023-12-31")ws.add_data_validation(date_dv)date_dv.add('B1:B10')# 创建自定义公式验证formula_dv = DataValidation(type="custom"formula1="=AND(ISNUMBER(C1), C1>=0, C1<=100)")formula_dv.error = '请输入0-100之间的数字'ws.add_data_validation(formula_dv)formula_dv.add('C1:C10')wb.save('data_validation.xlsx')
3. 高级图表
from openpyxl import Workbookfrom openpyxl.chart import BarChartReferenceSeriesfrom openpyxl.chart.label import DataLabelListwb = Workbook()ws = wb.active# 添加数据data = [    ['产品''Q1''Q2''Q3''Q4'],    ['手机'10000120001500018000],    ['笔记本'800090001100013000],    ['平板'60007000850010000]]for row in data:ws.append(row)# 创建组合图表chart = BarChart()chart.type = "col"chart.style = 10chart.title = "季度销售报告"chart.y_axis.title = "销量"chart.x_axis.title = "产品"# 添加数据系列data_ref = Reference(wsmin_col=2min_row=1max_col=5max_row=4)categories = Reference(wsmin_col=1min_row=2max_row=4)chart.add_data(data_reftitles_from_data=True)chart.set_categories(categories)# 添加数据标签chart.dataLabels = DataLabelList()chart.dataLabels.showVal = True# 添加趋势线from openpyxl.chart.trendline import Trendlinefor series in chart.series:trendline = Trendline(trendlineType="linear"dispRSqr=True)series.trendline = trendline# 将图表添加到工作表ws.add_chart(chart"A10")wb.save("advanced_chart.xlsx")
4. 宏与VBA支持
from openpyxl import Workbookfrom openpyxl import load_workbookfrom openpyxl.utils import get_column_letterimport os# 创建带宏的工作簿wb = Workbook()ws = wb.active# 添加按钮宏vba_code = """Sub ButtonClick()    MsgBox "按钮被点击!"    Range("A1").Value = "Hello from VBA"End Sub"""# 添加VBA模块(需要安装pywin32)try:from openpyxl import Workbookwb = Workbook()ws = wb.active# 添加VBA项目wb.vba_project = vba_code# 添加按钮并绑定宏from openpyxl.drawing.spreadsheet_drawing import SpreadsheetDrawingfrom openpyxl.worksheet.controls import ControlPropertiesfrom openpyxl.worksheet.controls import FormControldrawing = SpreadsheetDrawing()ctrl_props = ControlProperties(objectName="Button1",anchor="A1:B2",macro="ButtonClick",text="点击我"    )form_control = FormControl(control_properties=ctrl_props)drawing.controls.control.append(form_control)ws.add_drawing(drawing)wb.save("macro_enabled.xlsm")except ImportError:print("需要安装pywin32以支持VBA功能")# 替代方案:使用外部VBA文件wb.save("without_macro.xlsx")# 手动添加VBA代码到生成的Excel文件

9. 最佳实践

  1. 处理大文件

    # 使用只读模式读取大文件wb = load_workbook('large_file.xlsx'read_only=True)# 使用只写模式创建大文件wb = Workbook(write_only=True)ws = wb.create_sheet()# 逐行添加数据for row in large_data:ws.append(row)wb.save('large_output.xlsx')
  2. 性能优化

    # 禁用不必要的功能提升性能wb = load_workbook('file.xlsx'data_only=Truekeep_vba=False)# 批量操作单元格for row in ws.iter_rows():for cell in row:process_cell(cell)
  3. 错误处理

    try:wb = load_workbook('file.xlsx')except FileNotFoundError:print("文件不存在")except KeyError as e:print(f"工作表不存在: {e}")except Exception as e:print(f"未知错误: {e}")
  4. 内存管理

    # 显式释放内存del wsdel wb._sheets[:]  # 清除工作表引用import gcgc.collect()

10. 与同类工具对比

特性openpyxlxlrd/xlwtpandasxlsxwriter
读写支持✅读写✅读/写✅读/写✅写
文件格式xlsx/xlsmxls/xlsxxls/xlsxxlsx
图表支持
样式控制✅高级✅基础✅基础✅高级
公式支持
大文件支持✅优化
依赖项轻量轻量轻量
学习曲线中等简单简单中等

11. 企业级应用案例

  1. 金融行业

    • 自动生成财务报表

    • 投资组合分析报告

    • 风险管理数据导出

  2. 电子商务

    • 订单数据批量处理

    • 库存管理系统集成

    • 销售数据分析报表

  3. 科学研究

    • 实验数据导出工具

    • 科研报告模板填充

    • 数据可视化图表生成

  4. 教育领域

    • 成绩管理系统

    • 考勤数据导出

    • 教学资源生成

  5. 制造业

    • 生产数据报告

    • 质量检测结果导出

    • 供应链管理报表


总结

openpyxl 是 Python 生态中最强大的 Excel 处理库,核心价值在于:

  1. 完整功能支持:读写、格式、图表、公式等全面覆盖  

  2. 现代格式兼容:完美支持 xlsx/xlsm 等 Office Open XML 格式  

  3. 企业级稳定性:经过十多年发展和企业应用验证  

  4. 活跃社区支持:持续更新维护,问题响应迅速  

技术亮点

  • 基于 XML 的 Excel 文件格式解析

  • 内存优化的大文件处理能力

  • 丰富的样式和格式控制

  • 强大的图表和数据可视化支持

  • 灵活的数据验证和条件格式

适用场景

  • Excel 报表自动化生成

  • 数据清洗与转换工具

  • 财务分析报告系统

  • 科学实验数据处理

  • 业务数据导出导入

  • Excel 模板填充系统

安装使用

pip install openpyxl

学习资源

  • 官方文档:https://openpyxl.readthedocs.io

  • 教程示例:https://openpyxl.readthedocs.io/en/stable/usage.html

  • 实战项目:https://github.com/openpyxl/openpyxl/tree/master/examples

截至2023年,openpyxl 在 PyPI 的月下载量超过 1000万次,是 Python 处理 Excel 文件的标准解决方案。项目遵循 MIT 开源协议,可免费用于商业和非商业项目。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 22:47:03 HTTP/2.0 GET : https://f.mffb.com.cn/a/474345.html
  2. 运行时间 : 0.209239s [ 吞吐率:4.78req/s ] 内存消耗:4,704.40kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=73a3bb74867ba814a474bc22524e5001
  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.000610s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000567s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000312s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000307s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000564s ]
  6. SELECT * FROM `set` [ RunTime:0.005407s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000672s ]
  8. SELECT * FROM `article` WHERE `id` = 474345 LIMIT 1 [ RunTime:0.013984s ]
  9. UPDATE `article` SET `lasttime` = 1770562023 WHERE `id` = 474345 [ RunTime:0.001191s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000313s ]
  11. SELECT * FROM `article` WHERE `id` < 474345 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.018504s ]
  12. SELECT * FROM `article` WHERE `id` > 474345 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.013542s ]
  13. SELECT * FROM `article` WHERE `id` < 474345 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.028029s ]
  14. SELECT * FROM `article` WHERE `id` < 474345 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.024629s ]
  15. SELECT * FROM `article` WHERE `id` < 474345 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.031955s ]
0.211026s