当前位置:首页>python>第158讲:一键生成导航目录:VBA与Python为Excel工作簿创建智能目录方案

第158讲:一键生成导航目录:VBA与Python为Excel工作簿创建智能目录方案

  • 2026-02-07 01:02:08
第158讲:一键生成导航目录:VBA与Python为Excel工作簿创建智能目录方案

面对包含数十个工作表的Excel工作簿,你是否曾为来回切换和查找工作表而烦恼?本文将详细介绍如何使用VBA和Python为工作簿创建智能导航目录,让数据管理变得轻松高效。

一、业务背景与目录导航的价值

在日常工作中,我们经常需要处理包含多个工作表的工作簿,如月度报表、部门数据、项目跟踪表等。当工作表数量超过10个时,传统的来回滚动切换方式效率极低,且容易出错。

优质的工作表目录系统能实现快速导航定位可视化工作表结构提升操作效率。研究表明,有效的工作表目录能减少约40%的导航时间,特别适合财务报表、项目文档、数据看板等复杂工作簿场景。

二、VBA方案:原生集成的动态目录系统

VBA作为Excel的原生编程语言,能够实现高度集成动态交互的目录解决方案。

2.1 基础VBA目录生成

完整的VBA目录生成模块

Sub CreateSheetDirectory()    ' 创建工作表目录    Dim ws As Worksheet    Dim directorySheet As Worksheet    Dim i As Integer    Dim targetCell As Range    ' 错误处理    On Error GoTo ErrorHandler    Application.ScreenUpdating = False    Application.DisplayAlerts = False    ' 删除已存在的目录表    On Error Resume Next    Sheets("工作表目录").Delete    On Error GoTo 0    ' 创建新的目录表并置于最前    Set directorySheet = Sheets.Add(Before:=Sheets(1))    directorySheet.Name = "工作表目录"    ' 设置目录表头    With directorySheet        .Range("A1").Value = "序号"        .Range("B1").Value = "工作表名称"        .Range("C1").Value = "最后更新"        .Range("D1").Value = "数据摘要"        ' 设置表头格式        .Range("A1:D1").Font.Bold = True        .Range("A1:D1").Interior.Color = RGB(200, 200, 200)    End With    i = 2    ' 遍历所有工作表    For Each ws In ThisWorkbook.Worksheets        If ws.Name <> "工作表目录" Then            ' 写入基本信息            directorySheet.Cells(i, 1).Value = i - 1            directorySheet.Cells(i, 2).Value = ws.Name            directorySheet.Cells(i, 3).Value = ws.Range("A1").Value '假设A1单元格存有更新时间            ' 创建超链接            Set targetCell = directorySheet.Cells(i, 2)            directorySheet.Hyperlinks.Add _                Anchor:=targetCell, _                Address:="", _                SubAddress:="'" & ws.Name & "'!A1", _                TextToDisplay:=ws.Name            ' 添加数据摘要信息(示例)            If ws.Cells(1, 1).Value <> "" Then                directorySheet.Cells(i, 4).Value = "数据行数: " & ws.UsedRange.Rows.Count            End If            i = i + 1        End If    Next ws    ' 自动调整列宽    directorySheet.Columns("A:D").AutoFit    ' 添加返回目录的按钮到所有工作表    Call AddReturnButtons    Application.ScreenUpdating = True    Application.DisplayAlerts = True    MsgBox "工作表目录创建完成!共创建 " & i - 2 & " 个工作表链接。", vbInformation    Exit SubErrorHandler:    Application.ScreenUpdating = True    Application.DisplayAlerts = True    MsgBox "创建目录时出错: " & Err.Description, vbCriticalEnd Sub

2.2 高级VBA:动态更新与事件驱动

实现目录自动更新的高级功能

' 在工作簿打开时自动创建或更新目录Private Sub Workbook_Open()    ' 检查是否需要自动创建目录    If Sheets.Count > 5 Then  ' 当工作表数量超过5个时自动创建        Call CreateSheetDirectory    End IfEnd Sub' 在工作表激活时更新目录信息Private Sub Workbook_SheetActivate(ByVal Sh As Object)    ' 如果激活的是目录表,则刷新目录信息    If Sh.Name = "工作表目录" Then        Call UpdateDirectoryInfo    End IfEnd SubSub UpdateDirectoryInfo()    ' 更新目录信息    Dim ws As Worksheet    Dim directorySheet As Worksheet    Dim i As Integer    Dim lastRow As Long    On Error GoTo ErrorHandler    Set directorySheet = Sheets("工作表目录")    lastRow = directorySheet.Cells(directorySheet.Rows.Count, 1).End(xlUp).Row    ' 从第二行开始更新(第一行为表头)    For i = 2 To lastRow        Dim sheetName As String        sheetName = directorySheet.Cells(i, 2).Value        ' 检查工作表是否存在        On Error Resume Next        Set ws = Sheets(sheetName)        If Err.Number <> 0 Then            ' 工作表不存在,标记为红色            directorySheet.Cells(i, 2).Font.Color = RGB(255, 0, 0)            directorySheet.Cells(i, 4).Value = "工作表已删除"            On Error GoTo 0        Else            ' 更新工作表信息            directorySheet.Cells(i, 3).Value = ws.Range("A1").Value            directorySheet.Cells(i, 4).Value = "数据行数: " & ws.UsedRange.Rows.Count            directorySheet.Cells(i, 2).Font.Color = RGB(000)  ' 黑色字体            On Error GoTo 0        End If    Next iErrorHandler:    ' 错误处理代码End Sub

2.3 添加返回按钮增强导航

Sub AddReturnButtons()    ' 为所有工作表添加返回目录按钮    Dim ws As Worksheet    For Each ws In ThisWorkbook.Worksheets        If ws.Name <> "工作表目录" Then            ' 添加返回按钮            With ws.Buttons.Add(10108025)                .OnAction = "ReturnToDirectory"                .Caption = "返回目录"                .Name = "btnReturn_" & ws.Name            End With        End If    Next wsEnd SubSub ReturnToDirectory()    ' 返回目录表    Sheets("工作表目录").ActivateEnd Sub

三、Python方案:使用xlwings创建智能目录

Python通过xlwings库提供了跨平台可扩展的目录解决方案,特别适合批量处理集成到数据处理流程中。

3.1 基础Python目录生成

使用xlwings创建目录的基本实现

import xlwings as xwimport pandas as pdfrom datetime import datetimeimport osclass ExcelDirectoryCreator:    """Excel工作簿目录创建器"""    def __init__(self, file_path):        self.file_path = file_path        self.app = None        self.wb = None    def connect_to_excel(self):        """连接到Excel工作簿"""        try:            if os.path.exists(self.file_path):                self.app = xw.App(visible=False)                self.wb = self.app.books.open(self.file_path)                print("成功连接到工作簿")                return True            else:                print("文件不存在")                return False        except Exception as e:            print(f"连接失败: {str(e)}")            return False    def create_directory_sheet(self):        """创建目录工作表"""        try:            # 删除已存在的目录表            for sheet in self.wb.sheets:                if sheet.name == "工作表目录":                    sheet.delete()                    break            # 创建新的目录表            directory_sheet = self.wb.sheets.add("工作表目录", before=self.wb.sheets[0])            # 设置表头            headers = ["序号""工作表名称""创建时间""数据统计""备注"]            for i, header in enumerate(headers):                directory_sheet.range((1, i+1)).value = header                directory_sheet.range((1, i+1)).font.bold = True                directory_sheet.range((1, i+1)).color = (200200200)            return directory_sheet        except Exception as e:            print(f"创建目录表失败: {str(e)}")            return None# 使用示例def basic_python_demo():    """基础Python示例"""    creator = ExcelDirectoryCreator("财务报表.xlsx")    if creator.connect_to_excel():        creator.create_directory_sheet()        creator.wb.save()        creator.app.quit()

3.2 高级Python目录功能

增强的Python目录生成系统

class AdvancedDirectoryCreator(ExcelDirectoryCreator):    """高级目录创建器"""    def __init__(self, file_path, config=None):        super().__init__(file_path)        self.config = config or self.default_config()        self.setup_logging()    def default_config(self):        """默认配置"""        return {            'include_stats'True,            'add_hyperlinks'True,            'auto_format'True,            'timestamp_format''%Y-%m-%d %H:%M'        }    def generate_comprehensive_directory(self):        """生成综合目录"""        if not self.connect_to_excel():            return False        try:            directory_sheet = self.create_directory_sheet()            if not directory_sheet:                return False            row_index = 2  # 从第二行开始(第一行为表头)            for i, sheet in enumerate(self.wb.sheets):                if sheet.name != "工作表目录":                    # 写入工作表信息                    self.add_sheet_info(directory_sheet, sheet, row_index, i+1)                    row_index += 1            if self.config['auto_format']:                self.apply_auto_format(directory_sheet, row_index)            self.wb.save()            return True        except Exception as e:            print(f"生成目录失败: {str(e)}")            return False        finally:            if self.app:                self.app.quit()    def add_sheet_info(self, directory_sheet, sheet, row, serial_number):        """添加工作表信息到目录"""        try:            # 基本信息            directory_sheet.range((row, 1)).value = serial_number  # 序号            directory_sheet.range((row, 2)).value = sheet.name     # 工作表名称            # 添加超链接            if self.config['add_hyperlinks']:                self.create_hyperlink(directory_sheet, sheet, row)            # 数据统计            if self.config['include_stats']:                stats = self.get_sheet_statistics(sheet)                directory_sheet.range((row, 4)).value = stats            # 时间戳            directory_sheet.range((row, 3)).value = datetime.now().strftime(                self.config['timestamp_format']            )        except Exception as e:            print(f"添加工作表信息失败 {sheet.name}{str(e)}")    def create_hyperlink(self, directory_sheet, target_sheet, row):        """创建超链接"""        try:            # 使用xlwings调用底层的VBA对象模型创建超链接            target_cell = directory_sheet.range((row, 2))            # 通过API直接操作Hyperlinks集合            hyperlink = target_sheet.api.Hyperlinks.Add(                Anchor=target_cell.api,                Address="",                SubAddress=f"'{target_sheet.name}'!A1",                TextToDisplay=target_sheet.name            )        except Exception as e:            print(f"创建超链接失败: {str(e)}")            # 备用方案:直接写入工作表名称            directory_sheet.range((row, 2)).value = target_sheet.name# 使用示例def advanced_python_demo():    """高级Python示例"""    config = {        'include_stats'True,        'add_hyperlinks'True,        'auto_format'True    }    creator = AdvancedDirectoryCreator("企业数据.xlsx", config)    success = creator.generate_comprehensive_directory()    if success:        print("目录生成成功!")    else:        print("目录生成失败!")

3.3 批量处理与自动化

Python批量目录生成工具

class BatchDirectoryProcessor:    """批量目录处理器"""    def __init__(self, folder_path):        self.folder_path = folder_path        self.processed_files = []    def process_folder(self):        """处理文件夹中的所有Excel文件"""        excel_files = self.find_excel_files()        for file_path in excel_files:            try:                print(f"处理文件: {file_path}")                creator = AdvancedDirectoryCreator(file_path)                if creator.generate_comprehensive_directory():                    self.processed_files.append({                        'file': file_path,                        'status''success'                    })                else:                    self.processed_files.append({                        'file': file_path,                         'status''failed'                    })            except Exception as e:                print(f"处理文件失败 {file_path}{str(e)}")                self.processed_files.append({                    'file': file_path,                    'status''error',                    'message'str(e)                })        self.generate_report()    def find_excel_files(self):        """查找Excel文件"""        excel_files = []        for file in os.listdir(self.folder_path):            if file.endswith(('.xlsx''.xls')):                excel_files.append(os.path.join(self.folder_path, file))        return excel_files# 使用示例def batch_processing_demo():    """批量处理示例"""    processor = BatchDirectoryProcessor("月度报告")    processor.process_folder()    print(f"处理完成!成功: {len([f for f in processor.processed_files if f['status'] == 'success'])}")

四、方案对比与适用场景分析

4.1 技术特性全面对比

特性维度

VBA方案

Python方案

优势分析

集成深度

⭐⭐⭐⭐(原生支持)

⭐⭐⭐(外部调用)

VBA与Excel无缝集成

动态交互

⭐⭐⭐⭐(事件驱动)

⭐⭐(静态生成)

VBA支持实时更新

跨平台性

⭐(仅Windows)

⭐⭐⭐⭐(全平台)

Python真正跨平台

扩展性

⭐⭐(有限扩展)

⭐⭐⭐⭐(生态丰富)

Python可整合更多功能

学习曲线

⭐⭐⭐(相对简单)

⭐⭐(需要基础)

VBA上手更快

批处理能力

⭐⭐(单文件)

⭐⭐⭐⭐(多文件)

Python适合批量操作

4.2 实际应用场景选择指南

选择VBA方案当

  • 实时交互需求:需要动态更新目录事件驱动

  • Excel环境稳定:主要在Windows Office环境中使用

  • 简单部署:需要一键生成无需额外依赖

  • 非技术用户:主要用户熟悉Excel但不熟悉编程

选择Python方案当

  • 批量处理需求:需要为多个工作簿生成目录

  • 跨平台部署:需要在不同操作系统上运行

  • 复杂数据处理:需要集成数据统计分析功能

  • 自动化流程:需要将目录生成集成到数据处理流程

五、实战案例:企业报表目录管理系统

5.1 业务背景与挑战

某金融机构每月生成50+份报表工作簿,每个工作簿包含10-20个工作表,传统管理方式面临挑战:

  • 导航困难查找特定报表耗时容易出错

  • 版本混乱多版本报表难以统一管理

  • 维护成本高手动更新目录工作量大

5.2 基于Python的完整解决方案

智能报表目录管理系统

class EnterpriseReportDirectorySystem:    """企业报表目录管理系统"""    def __init__(self, config_file='config.json'):        self.config = self.load_config(config_file)        self.setup_logging()    def load_config(self, config_file):        """加载配置文件"""        import json        try:            with open(config_file, 'r', encoding='utf-8'as f:                return json.load(f)        except FileNotFoundError:            return self.default_config()    def default_config(self):        """默认配置"""        return {            'report_categories': ['财务''销售''人力资源''运营'],            'priority_sheets': ['汇总''摘要''结论'],            'auto_backup'True        }    def generate_intelligent_directory(self, file_path):        """生成智能目录"""        try:            # 创建高级目录            creator = AdvancedDirectoryCreator(file_path, self.config)            success = creator.generate_comprehensive_directory()            if success:                # 添加分类信息                self.add_category_info(file_path)                # 生成使用统计                self.generate_usage_statistics(file_path)            return success        except Exception as e:            self.logger.error(f"生成智能目录失败: {str(e)}")            return False    def add_category_info(self, file_path):        """添加分类信息"""        # 根据工作表名称自动分类        pass    def batch_update_directories(self, folder_path):        """批量更新目录"""        processor = BatchDirectoryProcessor(folder_path)        processor.process_folder()        # 生成批量处理报告        self.generate_batch_report(processor.processed_files)# 使用示例def enterprise_solution_demo():    """企业级解决方案演示"""    system = EnterpriseReportDirectorySystem('config/enterprise_config.json')    # 处理单个文件    system.generate_intelligent_directory('月度财务报告.xlsx')    # 批量处理文件夹    system.batch_update_directories('年度报表')    return systemif __name__ == "__main__":    enterprise_solution_demo()

测试题

  1. 在VBA的Workbook_SheetActivate事件中实现目录自动更新时,如何处理可能出现的性能问题?请说明具体的优化策略。

  2. Python的xlwings方案在调用api.Hyperlinks.Add方法时,与直接使用VBA的Hyperlinks.Add方法在错误处理机制上有哪些主要区别?

  3. 当需要为包含100+个工作表的大型工作簿创建目录时,VBA和Python方案各需要采取哪些特殊的内存管理措施?

  4. 在实现跨平台目录生成系统时,Python方案如何通过条件判断来处理Windows和macOS下Excel对象模型的差异?

  5. 请设计一个混合架构方案,利用VBA处理实时目录更新,通过Python进行批量目录生成和维护,并说明这种架构的数据同步机制。


答案

  1. VBA性能优化使用防抖机制避免频繁更新,设置更新标志控制更新频率,增量更新只刷新变化部分,暂停屏幕更新提高执行效率。

  2. 错误处理差异VBA提供详细的错误代码和描述Python xlwings需要捕获通用异常转换为具体错误类型Python还需处理COM接口调用的特殊错误。

  3. 内存管理措施VBA需要分批次处理工作表,及时释放对象变量Python需要使用with语句管理资源避免循环引用批量保存减少IO操作

  4. 跨平台兼容处理通过平台检测选择不同的对象模型调用方式,使用条件导入平台特定模块,实现适配器模式封装平台差异。

  5. 混合架构设计VBA负责前端交互实时事件处理Python负责后端批量处理,通过中间文件数据库进行数据交换,定期同步确保一致性。


希望这篇详细的工作表目录创建指南能帮助您提升Excel数据管理效率!如果觉得本文有帮助,请点赞、收藏、转发支持一下!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-07 23:41:15 HTTP/2.0 GET : https://f.mffb.com.cn/a/468784.html
  2. 运行时间 : 0.332828s [ 吞吐率:3.00req/s ] 内存消耗:4,744.66kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=9f6aaea25913855d8df3542e8e8a8c10
  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.000475s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000738s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.010140s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.014884s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000639s ]
  6. SELECT * FROM `set` [ RunTime:0.004425s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000585s ]
  8. SELECT * FROM `article` WHERE `id` = 468784 LIMIT 1 [ RunTime:0.017631s ]
  9. UPDATE `article` SET `lasttime` = 1770478875 WHERE `id` = 468784 [ RunTime:0.008331s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.017055s ]
  11. SELECT * FROM `article` WHERE `id` < 468784 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.003477s ]
  12. SELECT * FROM `article` WHERE `id` > 468784 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000942s ]
  13. SELECT * FROM `article` WHERE `id` < 468784 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.015460s ]
  14. SELECT * FROM `article` WHERE `id` < 468784 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.130913s ]
  15. SELECT * FROM `article` WHERE `id` < 468784 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.018951s ]
0.337156s