当前位置:首页>Excel>AI 办公自动化(二):Excel 数据处理自动化 — 从数

AI 办公自动化(二):Excel 数据处理自动化 — 从数

  • 2026-05-30 18:31:10
AI 办公自动化(二):Excel 数据处理自动化 — 从数

AI 办公自动化(二):Excel 数据处理自动化 :  从数据清洗到智能报表,一条龙搞定

还在手动做数据清洗、拉透视表、画图表?AI 一次性全搞定: : 你只需要「说话」。

前言


上一期我们体验了 AI 在四大办公场景的「超能力」。从这一期开始,我们逐个模块深入实战。

第一个要攻克的是 Excel: : 毫无疑问,这是打工人每天打交道最多的工具。

想象一下这个场景:老板扔给你一个 Excel 文件,里面有几千行销售数据,有些格子是空的,有些数字明显不对,你需要「清洗数据 → 分析趋势 → 画图表 → 写报告」: : 传统做法至少要一上午。

而用 AI,整个流程可以缩短到几分钟。这一期我们就来实现这个「一条龙」自动化。

一、整体流程设计


AI + Excel 自动化的核心流程分为五步:

原始 Excel 文件


┌──────────────┐
│ 1. 智能读取 │ ← 自动识别表头、数据类型、空值
└──────┬───────┘


┌──────────────┐
│ 2. 数据质量分析│ ← AI 分析数据问题,生成清洗方案
└──────┬───────┘


┌──────────────┐
│ 3. 智能清洗 │ ← 按 AI 方案自动修复数据
└──────┬───────┘


┌──────────────┐
│ 4. AI 分析 │ ← 自然语言提问,AI 给洞察
└──────┬───────┘


┌──────────────┐
│ 5. 自动报表 │ ← 生成带图表、条件格式的专业报表
└──────────────┘

每一步我们都会提供完整的代码实现。

二、环境准备


cd ai-office-tutorial/02-excel-automation
pip install openpyxl

第2期的代码复用第1期的 config.pyllm_client.py,你只需要确保 DEEPSEEK_API_KEY 环境变量已设置。

三、智能数据读取


3.1 自动识别 Excel 结构

传统方式读取 Excel 需要你先「了解」数据结构: : 哪行是表头、每列是什么类型、有没有空值。我们的 ExcelReader 会自动完成这一切。

from openpyxl import load_workbook

class ExcelReader:
"""Excel 智能读取器"""

def analyze(self, filepath, sheet_name=None):
# 加载工作簿
wb = load_workbook(filepath, read_only=True, data_only=True)
sheet = wb[sheet_name or wb.sheetnames[0]]

# 读取所有数据
all_rows = list(sheet.iter_rows(values_only=True))

# 自动检测表头
has_header = self._detect_header(all_rows)

# 分析每列的数据类型、空值、统计信息
columns = []
for col_idx, header in enumerate(headers):
col_info = self._analyze_column(header, col_idx, values)
columns.append(col_info)

return TableInfo(...)

3.2 表头自动检测

核心问题:Excel 的第一行是表头还是数据?

我们的检测逻辑很简单但有效:如果第一行全是文本,而第二行有数字: : 第一行大概率是表头。

def _detect_header(self, rows):
"""检测第一行是否为表头"""
if len(rows) < 2:
return True

first_row = rows[0]
second_row = rows[1]

# 统计第一行和第二行的数据类型
first_types = [self._infer_cell_type(c) for c in first_row]
second_types = [self._infer_cell_type(c) for c in second_row if c is not None]

# 第一行全是文本 + 第二行有数字 → 有表头
first_all_text = all(t == "str" for t in first_types)
second_has_number = any(t in ("int", "float") for t in second_types)

if first_all_text and second_has_number:
return True

# 如果第一行超过 70% 是文本,也认为是表头
text_ratio = first_types.count("str") / len(first_types)
return text_ratio > 0.7

3.3 数据类型推断

每列是什么类型?数字、日期、文本?我们根据值内容自动推断:

def _infer_cell_type(self, value):
"""推断单元格的数据类型"""
if value is None:
return "null"
if isinstance(value, int):
return "int"
if isinstance(value, float):
return "float"
if isinstance(value, str):
# 尝试判断是否为数字字符串
try:
float(value)
return "float"
except ValueError:
pass
# 尝试判断是否为日期
if '-' in value or '/' in value or '年' in value:
return "date"
return "str"
if hasattr(value, 'strftime'):
return "date"
return type(value).__name__

有了类型信息,后续就可以做针对性处理: : 数值列算统计、日期列统一格式、文本列查空值。

四、AI 数据质量分析


读完了数据,接下来让 AI 来分析数据质量。

4.1 生成数据质量摘要

首先把表格的元数据收集起来,包括每列的空值数、数据类型、统计信息:

class DataCleaner:
def analyze_quality(self, table_info):
"""AI 分析数据质量"""
quality_summary = {
"文件名": table_info.filepath,
"数据行数": table_info.row_count,
"各列详情": []
}

for col in table_info.columns:
quality_summary["各列详情"].append({
"列名": col.name,
"类型": col.dtype,
"空值数": col.null_count,
"空值率": f"{col.null_count / max(table_info.row_count, 1) * 100:.1f}%",
"统计": col.stats if col.stats else "N/A",
})

4.2 AI 分析

然后把摘要发给 AI,让它以数据分析师的身份给出质量报告:

prompt = f"""作为数据质量分析师,请分析以下数据质量报告。

数据质量报告:
{json.dumps(quality_summary, ensure_ascii=False, indent=2)}

请从以下角度分析:
1. 数据完整性:哪些列有缺失值?缺失率是否严重?
2. 数据一致性:列类型是否合理?有没有格式问题?
3. 数据准确性:有没有可疑的异常值?
4. 清洗建议:给出具体的清洗步骤(按优先级排序)"""

quality_report = llm.chat(prompt, system_prompt="你是数据质量专家")

AI 会告诉你:哪些列需要填充空值、用什么策略(均值/中位数/众数)、哪条数据看起来像异常值、清洗的先后顺序。

4.3 自动清洗

根据 AI 的分析结果,程序自动执行清洗:

def clean_data(self, data, cleaning_plan):
"""根据 AI 方案执行数据清洗"""
# 1. 删除全空行
data = [row for row in data if any(v is not None for v in row.values())]

# 2. 数值列用中位数填充空值
for header in headers:
numeric_vals = [float(v) for v in values if v is not None]
median = sorted(numeric_vals)[len(numeric_vals) // 2]
for row in data:
if row.get(header) is None:
row[header] = median

# 3. 删除重复行
# ...

return data

注意:这里用中位数而不是均值来填充空值: : 因为中位数不受极端值影响,更加稳健。这是 AI 分析时通常会给出的建议。

五、AI 数据分析


数据干净了,开始真正的「智能」部分: : 用自然语言向数据提问。

5.1 数据摘要生成

AI 无法一次「看」完几千行数据。我们需要先给它一个数据摘要: : 就像给数据分析师一份汇总统计表:

def _create_data_summary(self, data):
"""为 AI 创建数据摘要"""
summary = [f"数据集共 {len(data)} 行"]

for header in data[0].keys():
values = [row.get(header) for row in data]
non_null = [v for v in values if v is not None]

if all(isinstance(v, (int, float)) for v in non_null):
# 数值列:显示范围、均值、合计
summary.append(
f"- {header}(数值):"
f"范围 [{min(non_null)}, {max(non_null)}],"
f"均值 {sum(non_null)/len(non_null):.1f}"
)
else:
# 文本列:显示不同值和示例
unique = set(str(v) for v in non_null)
summary.append(f"- {header}({len(unique)}个不同值)")

return "\n".join(summary)

5.2 自然语言提问

有了摘要,就能用自然语言向 AI 提问了:

class AIAnalyzer:
def analyze(self, data, question):
"""AI 分析数据并回答问题"""
summary = self._create_data_summary(data)

prompt = f"""作为资深数据分析师,请分析以下数据。

数据摘要:
{summary}

用户问题:{question}

要求:用具体数值支撑分析结论,发现模式和异常。"""

return self.llm.chat(prompt, temperature=0.3)

试试这些提问:

  • 「哪些产品线的销售额在持续增长?哪些在下滑?」
  • 「有没有明显的季节性规律?」
  • 「华东和华南的利润率差异有多大?原因可能是什么?」
  • 「给出提升销售额的 3 条建议」

AI 会像一个真正的数据分析师一样,结合数据给出洞察。

六、自动报表生成


分析完了,最后一步:把结果变成一份专业的 Excel 报表。

6.1 汇总统计表

按产品线(或任意维度)自动汇总:

# 按产品线汇总
product_stats = {}
for row in data:
product = row.get("产品线")
sales = row.get("销售额(万元)", 0) or 0

if product not in product_stats:
product_stats[product] = {"sales": 0, "count": 0}
product_stats[product]["sales"] += sales
product_stats[product]["count"] += 1

6.2 专业格式

不只是数据,还有格式:

# 表头样式
header_font = Font(bold=True, color="FFFFFF")
header_fill = PatternFill(start_color="2B579A", end_color="2B579A", fill_type="solid")

# 条件格式:销售额列颜色渐变(红-黄-绿)
ws_summary.conditional_formatting.add(
"B5:B20",
ColorScaleRule(start_type="min", start_color="F8696B",
mid_type="percentile", mid_value=50, mid_color="FFEB84",
end_type="max", end_color="63BE7B")
)

6.3 自动图表

柱状图、折线图、饼图: : 一个不少:

from openpyxl.chart import BarChart, PieChart, Reference

# 柱状图:各产品线销售额对比
bar_chart = BarChart()
bar_chart.title = "各产品线总销售额对比"
bar_chart.style = 10 # 使用预定义专业样式

data_ref = Reference(ws, min_col=2, min_row=1, max_row=6)
cats_ref = Reference(ws, min_col=1, min_row=2, max_row=6)
bar_chart.add_data(data_ref, titles_from_data=True)
bar_chart.set_categories(cats_ref)

# 设置专业配色
colors = ["2B579A", "ED7D31", "A5A5A5", "FFC000", "5B9BD5"]
for i, color in enumerate(colors):
bar_chart.series[i].graphicalProperties.solidFill = color

ws.add_chart(bar_chart, "A10")

# 饼图:各产品线占比
pie_chart = PieChart()
pie_chart.title = "各产品线销售额占比"
# 添加数据标签(显示百分比和名称)
pie_chart.dataLabels.showPercent = True
pie_chart.dataLabels.showCatName = True

最终生成的 Excel 文件包含 3 个工作表: - 销售数据:原始数据(带格式和条件格式) - 汇总分析:按维度汇总的统计表(带颜色渐变) - 可视化图表:柱状图 + 饼图

七、运行演示


cd 02-excel-automation

# 完整演示(生成示例数据 → 读取 → 清洗 → 分析 → 报表)
python main.py --demo

# 分析你自己的 Excel 文件
python main.py --input /path/to/your_data.xlsx --output report.xlsx

演示会生成两个文件: - output/demo_sales_data.xlsx :  示例数据 - output/demo_excel_report.xlsx :  分析报表(含图表)

八、小结


这一期我们实现了 AI + Excel 自动化的完整流程:

  • 📖 智能读取:自动识别表头、类型、空值,无需人工标注
  • 🔍 AI 质量分析:自动发现数据问题,给出清洗方案
  • 🧹 智能清洗:按 AI 建议自动修复缺失值和异常值
  • 🤖 AI 分析:自然语言提问,AI 给出数据洞察
  • 📊 自动报表:一键生成带图表、条件格式的专业报表

核心思路就是:用 AI 替代你在 Excel 中 80% 的重复操作。你只需要搞清楚「我想知道什么」,剩下的交给代码。

下一期,我们来攻克 PPT 自动生成: : 输入一个主题,AI 自动生成完整的演示文稿,从大纲到内容到排版,一步到位。

完整代码已上传到 Gitee: https://gitee.com/genesisesNoun/ai-office-tutorial


本教程为「CV技术笔记」公众号 AI 办公自动化实战专题第 2 期。代码详细注释完备,每期独立可运行。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-03 08:19:42 HTTP/2.0 GET : https://h.sjds.net/a/519987.html
  2. 运行时间 : 0.432817s [ 吞吐率:2.31req/s ] 内存消耗:4,490.19kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=f86fe0914319052af9f9fb9921321e20
  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.000442s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000650s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000248s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.004248s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000547s ]
  6. SELECT * FROM `set` [ RunTime:0.005019s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000674s ]
  8. SELECT * FROM `article` WHERE `id` = 519987 LIMIT 1 [ RunTime:0.008417s ]
  9. UPDATE `article` SET `lasttime` = 1780445982 WHERE `id` = 519987 [ RunTime:0.006999s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.002155s ]
  11. SELECT * FROM `article` WHERE `id` < 519987 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.014068s ]
  12. SELECT * FROM `article` WHERE `id` > 519987 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.053124s ]
  13. SELECT * FROM `article` WHERE `id` < 519987 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.136415s ]
  14. SELECT * FROM `article` WHERE `id` < 519987 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.089231s ]
  15. SELECT * FROM `article` WHERE `id` < 519987 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.038027s ]
0.434434s