跳到内容
当前位置:首页>Excel>Excel 一键生成 GDB|国土建库神器,多工作表批量创建要素类、字段别名、字段默认值

Excel 一键生成 GDB|国土建库神器,多工作表批量创建要素类、字段别名、字段默认值

  • 2026-09-18 19:59:30
Excel 一键生成 GDB|国土建库神器,多工作表批量创建要素类、字段别名、字段默认值

做国土空间、村庄规划、自然资源数据建库,很多同行都有过这样的经历:新建 GDB 之后,要逐个创建要素类,手动添加每一个字段、设置字段别名、配置字段类型、填写字段长度、设置默认值。 一套规划库十几个要素类,几十个字段,纯手工点鼠标,大半天时间就耗没了,还很容易出现字段类型选错、别名漏填、长度设置错误等低级问题,后期质检全部打回返工。

今天分享一套实测落地的 ArcPy 脚本工具 Excel 转 GDB3.0,直接在 Excel 中完成全部库结构配置,一键批量生成文件地理数据库,自动创建要素类、批量建字段、设置别名、配置字段默认值。村庄规划、国土数据治理、专项数据库建库都可以直接复用,大幅减少重复机械操作。

一、真实建库痛点:手动搭建 GDB 有多折磨

自然资源项目建库,我们经常要新建一套标准 FileGDB 数据库。常规手工操作流程:

  1. 新建文件地理数据库;
  2. 新建每一个要素类,选择几何类型、坐标系;
  3. 逐个添加字段,设置字段名、字段类型、字段长度;
  4. 手动录入字段中文别名;
  5. 部分字段还要配置字段默认值;
  6. 重复上面步骤处理下一个要素类。

痛点汇总

  • 要素类多、字段量大,重复点击,耗时久;
  • 人工操作极易出错:字段类型选错、别名遗漏、长度不对;
  • 标准变更之后,要重新手动修改每一个要素类,修改成本高;
  • 不同项目复用库结构,只能复制粘贴,不方便版本管理。

✅Excel 驱动自动化方案把全部库结构写进 Excel:数据库名称、要素类名称、字段名、中文别名、字段类型、字段长度、字段默认值全部在表格维护。运行脚本一键生成完整 GDB,后期标准调整,只需要修改 Excel 表格,重新跑脚本即可。

工具适配环境:ArcGIS10.x(Python2.7),依赖 xlrd 库;ArcGIS Pro 需要调整库与编码语法。

二、脚本核心能力一览

功能点
详细说明
批量创建要素类
读取 Excel 多个工作表,一个工作表对应 GDB 内一个要素类
支持几何类型选择
点 / 线 / 面按需指定,统一设置空间参考坐标系
批量构建字段
自动新建 TEXT、LONG、DOUBLE、DATE 多种类型字段,自动转换 INT/FLOAT 为 ArcGIS 对应类型
字段中文别名
支持配置要素类别名、每个字段的中文显示别名,解决 SHP 不支持别名的痛点
字段默认值配置
支持给字段预设默认值,例如地类、权属性质,入库自动填充
自动生成 GDB
脚本自动在 Excel 同级目录新建 GDB,GDB 名称取自 Excel 文件名;GDB 已存在则直接复用
异常容错机制
空工作表自动跳过;字段格式错误给出警告,不会直接整体崩溃终止;输出完整运行日志

⚠️注意:本脚本只生成库结构(空要素类),只创建表结构,不会导入业务属性数据;适合建库前期搭建标准框架。

三、Excel 模板格式说明

Excel 文件内部工作表分为两部分:

  1. Excel文件名称
  2. 第一个工作表:别名映射表用于配置【要素类名称 — 要素类中文别名】,两列,第一列别名,第二列要素类英文名称。脚本读取这张表,给每个生成的要素类设置中文别名。
  3. 其余工作表:对应各个要素类每一张 sheet 代表 GDB 中的一个要素类。
    序号
    字段名称
    字段代码
    字段类型
    字段长度
    小数位数
    1
    标识码
    BSM
    Char
    18
    2
    要素代码
    YSDM
    Char
    10
    ....

小提示:

  • 字段类型填写 INT 会自动转为 LONG;FLOAT 自动转为 DOUBLE;空值默认为 TEXT 文本;
  • 不需要默认值,F 列留空;
  • 空行、无效行会自动跳过;工作表数据行数≤1 直接跳过该要素类。

四、完整 Python 代码

# -*- coding: utf-8 -*-import xlrdimport arcpyimport osimport sysreload(sys)sys.setdefaultencoding('utf-8')# ========== GET PARAMETERS ==========xls_path = arcpy.GetParameterAsText(0)geometry_type = arcpy.GetParameterAsText(1)spatial_ref_param = arcpy.GetParameterAsText(2)# Validate inputsif not xls_path or not os.path.isfile(xls_path):    arcpy.AddError("Invalid Excel file path: {}".format(xls_path))    sys.exit(1)if not geometry_type:    arcpy.AddError("Geometry type not specified")    sys.exit(1)# ========== CREATE FILE GEODATABASE ==========excel_dir = os.path.dirname(xls_path)excel_basename = os.path.splitext(os.path.basename(xls_path))[0]gdb_name = excel_basename + ".gdb"output_gdb = os.path.join(excel_dir, gdb_name)if not arcpy.Exists(output_gdb):    try:        arcpy.CreateFileGDB_management(excel_dir, gdb_name)        arcpy.AddMessage("Created file geodatabase: {}".format(output_gdb))    except Exception as e:        arcpy.AddError("Failed to create geodatabase: {}".format(str(e)))        sys.exit(1)else:    arcpy.AddMessage("Using existing geodatabase: {}".format(output_gdb))# ========== HANDLE SPATIAL REFERENCE ==========def prepare_spatial_ref(param):    if not param:        arcpy.AddWarning("No spatial reference specified, defaulting to WGS84 (4326)")        return arcpy.SpatialReference(4326)    if ';' in param:        param = param.split(';')[0]        arcpy.AddMessage("Cleaned spatial reference string (removed suffix)")    return paramspatial_ref = prepare_spatial_ref(spatial_ref_param)# ========== READ EXCEL ==========data = xlrd.open_workbook(xls_path)sheet_names = data.sheet_names()if len(sheet_names) == 0:    arcpy.AddError("Excel file contains no sheets.")    sys.exit(1)# ========== 1. Read alias mapping from first sheet ==========alias_mapping = {}first_sheet_name = sheet_names[0]first_table = data.sheet_by_name(first_sheet_name)arcpy.AddMessage("Reading alias mapping from sheet: '{}'".format(first_sheet_name))arcpy.AddMessage("Total rows in mapping sheet: {}".format(first_table.nrows))start_row = 1  # skip header row (change to 0 if no header)for row_idx in range(start_row, first_table.nrows):    row = first_table.row_values(row_idx)    if len(row) < 2:        continue    alias_cell = row[0]    name_cell = row[1]    if not name_cell:        continue    alias = unicode(alias_cell).strip() if alias_cell else u''    fc_name = unicode(name_cell).strip() if name_cell else u''    if fc_name:        alias_mapping[fc_name] = alias        arcpy.AddMessage("  Mapping: '{}' -> '{}'".format(fc_name, alias))arcpy.AddMessage("Total mapping entries loaded: {}".format(len(alias_mapping)))# ========== 2. Process remaining sheets ==========arcpy.AddMessage("Start processing " + str(len(sheet_names)-1) + " data sheets")# Helper function to convert default value based on field typedef convert_default_value(value, field_type):    """Convert default value to appropriate type for ArcGIS field."""    if value is None or value == '':        return None    # Convert to unicode string first    value_str = unicode(value).strip()    if field_type == 'TEXT':        return value_str    elif field_type == 'LONG':        try:            # Accept both integer and float strings            return int(float(value_str))        except:            return None    elif field_type == 'DOUBLE':        try:            return float(value_str)        except:            return None    elif field_type == 'DATE':        # Keep as string, ArcGIS will parse        return value_str    else:        return value_strfor idx, sheetname in enumerate(sheet_names[1:], start=2):    try:        original_sheetname = sheetname        if isinstance(sheetname, unicode):            sheetname = sheetname.encode('utf-8')        table = data.sheet_by_name(sheetname.decode('utf-8'if isinstance(sheetname, strelse sheetname)        if table.nrows <= 1:            arcpy.AddWarning("Sheet '{}' has no data rows, skipped.".format(original_sheetname))            continue        output_name = sheetname        output_path = os.path.join(output_gdb, output_name)        # Step 1: Create empty feature class        arcpy.CreateFeatureclass_management(output_gdb, output_name, geometry_type, """""", spatial_ref)        arcpy.AddMessage("Created feature class: {}".format(output_name))        # Step 2: Add fields and set default values        for i in range(1, table.nrows):            row = table.row_values(i)            if len(row) < 5:                continue            # Columns (0-based index)            field_alias_raw = row[1if len(row) > 1 else None            field_name_raw = row[2if len(row) > 2 else None            field_type_raw = row[3if len(row) > 3 else None            field_length_raw = row[4if len(row) > 4 else None            field_default_raw = row[5if len(row) > 5 else None   # Default value column (F)            if not field_name_raw:                continue            field_name = unicode(field_name_raw).encode('utf-8').strip().replace(" ""_")            field_type = unicode(field_type_raw).encode('utf-8').upper() if field_type_raw else "TEXT"            field_length = int(field_length_raw) if field_length_raw else 50            field_alias = unicode(field_alias_raw).encode('utf-8'if field_alias_raw else field_name            field_default = unicode(field_default_raw).strip() if field_default_raw else None            # Map type to ArcGIS types            if field_type in ["INT""INTEGER"]:                field_type = "LONG"            elif field_type in ["FLOAT""DOUBLE"]:                field_type = "DOUBLE"            else:                field_type = "TEXT"            # Add field            arcpy.AddField_management(output_path, field_name, field_type, """", field_length, field_alias)            # Set default value if provided            if field_default is not None and field_default != '':                # Convert default value according to field type                converted_default = convert_default_value(field_default, field_type)                if converted_default is not None:                    try:                        arcpy.AssignDefaultToField_management(output_path, field_name, converted_default)                        arcpy.AddMessage("    Set default value for '{}': {}".format(field_name, converted_default))                    except Exception as def_e:                        arcpy.AddWarning("    Could not set default value for '{}': {}".format(field_name, str(def_e)))                else:                    arcpy.AddWarning("    Invalid default value for field '{}' (type {}): '{}' - skipped".format(field_name, field_type, field_default))        # Step 3: Set feature class alias (last step)        fc_name_unicode = unicode(output_name) if isinstance(output_name, strelse output_name        fc_alias = alias_mapping.get(fc_name_unicode, u'')        if fc_alias:            try:                arcpy.AlterAliasName(output_path, fc_alias)                arcpy.AddMessage("    SUCCESS: Set alias '{}' for '{}'".format(fc_alias, output_name))            except Exception as alias_e:                arcpy.AddWarning("    FAILED to set alias for '{}': {}".format(output_name, str(alias_e)))        else:            arcpy.AddWarning("    No alias found for feature class name: '{}'".format(fc_name_unicode))        arcpy.AddMessage("Completed: " + original_sheetname)    except Exception as e:        arcpy.AddWarning("Sheet '{}' failed: {}".format(sheetname, str(e)))arcpy.AddMessage("All processing completed. Output geodatabase: {}".format(output_gdb))

五、制作 ArcGIS 脚本工具,零代码运行

把 py 脚本封装成工具箱,不用修改源码,界面填写参数即可运行。

依赖说明:需要 xlrd 库,ArcGIS10.x 环境一般自带;缺少库会报导入失败。

  1. 将代码复制到记事本,保存,后缀修改为.py
  2. ArcGIS 目录窗口,右键文件夹 →【新建】→【工具箱】;
  3. 工具箱右键【添加】→【脚本】;
  4. 填写工具名称、标签、描述,选择 py 脚本文件;
  5. 配置 3 个脚本输入参数:
参数顺序
显示名称
数据类型
说明
参数 0
Excel 配置文件
文件
选择你的库结构 Excel 模板(xls/xlsx)
参数 1
几何类型
字符串
POINT / POLYLINE / POLYGON(点 / 线 / 面)等
参数 2
空间参考
空间参考
选择 CGCS2000 等坐标系;留空默认 WGS84
  1. 点击完成,工具制作完毕。

💡小技巧:右键工具箱选择【导入脚本】,把 py 脚本嵌入工具箱,拷贝给同事也可以直接打开运行。

运行逻辑:

  • 选择 Excel 文件,设置几何类型、坐标系,点击确定;
  • 脚本执行,在 Excel 所在文件夹自动生成同名.gdb;
  • 查看 ArcGIS 结果消息窗口,看哪些要素类成功、哪些警告报错。

六、高频踩坑与避坑指南

坑 1:ImportError: No module named xlrd

现象:运行直接报错找不到 xlrd。解决:ArcGIS10.x 默认自带,如果缺失,需要给 ArcGIS 内置 Python 环境安装 xlrd 库。

坑 2:中文乱码、别名设置失败

脚本基于 Python2.7,Excel 尽量另存为.xls格式;xlsx 格式部分版本 xlrd 读取会出现中文异常。优先使用 xls。

坑 3:要素类已经存在会怎么样

脚本不会自动删除原有要素类!如果 GDB 里面已经有同名要素类,再次运行会报错。

实操建议:测试阶段,直接删除旧 GDB,重新运行脚本生成全新库结构。

坑 4:字段默认值设置失败

检查默认值和字段类型匹配,数字类型不要填写中文文本;文本字段可以填写中文默认值。不合法默认值脚本会给出警告并跳过,不会中断整体流程。

坑 5:ArcGIS Pro 无法直接运行

脚本是 Python2.7 语法,Pro 是 Python3;reload(sys)、sys.setdefaultencoding、unicode()这些语法在 Python3 不存在,需要改写;xlrd 读取 excel 也需要适配,Pro 用户需要做代码改造。

坑 6:脚本只生成空库结构

⚠️划重点:脚本只搭建库框架,不会导入业务数据。生成空要素类之后,再把业务数据追加进来。

七、项目落地工作流推荐

自然资源建库完整流程:

  1. 根据项目建库标准,整理 Excel 配置模板:要素类、字段名、别名、字段类型、默认值;
  2. 使用本脚本一键生成标准 FileGDB 空库框架;
  3. 导入业务矢量数据,Append 追加进对应要素类;
  4. 执行修复几何、拓扑检查、属性校验,完成建库。

拓展价值:不同项目只要维护不同 Excel 模板,就可以快速生成对应标准 GDB,建库标准变更,只修改 Excel 表格即可,版本管理非常方便。

【文末小结】

  1. Excel 转 GDB 脚本,把国土建库从手工点点鼠标,转变为表格驱动,批量创建要素类、字段、别名、字段默认值;
  2. 环境适配 ArcGIS10.x Python2.7,优先使用 xls 格式 Excel;Pro 需要做语法改造;依赖 xlrd 库;
  3. 脚本只生成空库结构,不导入业务矢量数据;已有同名要素类需要手动删除,避免报错;
  4. 可以封装为工具箱,不懂 Python 代码也能直接运行,库标准修改只维护 Excel 表格;
  5. 适合村庄规划、自然资源专项库、数据治理项目前期快速搭建数据库框架。

📌不想自己复制代码、手动一步步添加脚本到工具箱的朋友,可以关注公众号,后台回复 GDB 获取已经封装好的工具包 + 配套 Excel 配置模板 + 原版Python 代码,下载即可直接使用。

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