An AI 代理不应直接读取表格。它应该调用返回表格的工具,然后对行进行算术运算。使用在 Docker 本地运行的 GroupDocs.Parser.Mcp,Claude Desktop 或 Cursor 等 AI 客户端可以从 PDF、Word 和 Excel 文件中提取表格,并以 JSON 形式接收它们:

提取 invoice.pdf 中的明细行作为 JSON,并计算金额列的总和。

带有配置和故障排除的逐步版本请参阅文档: 如何将文档中的表格提取为结构化数据.

当模型自行读取表格时会出现什么问题?

常见的工作流是将 PDF 粘贴到聊天中并请求表格。模型看到的是一串扁平化的文本,推断出列的位置,然后把行写回去。于是每个单元格都成了预测。列缺失、行合并或小数点错位并不会报错;它会生成一个自信且格式良好的表格,只是稍有错误。对于水果清单这并不重要,但对发票总额则影响巨大。

由于输出看起来正确,这类错误很难被捕捉。聊天回复中没有任何信息能告诉你哪些单元格是从文件中读取的,哪些是重新构造的。

有什么替代方案可以避免让模型猜测?

将读取工作移出模型。extract_tables 工具使用文档引擎检测表格并以数据形式返回:

  • 默认使用 Markdown,呈现为 ### Table N (page N, R×C) 章节,可直接在聊天、VS Code 和 GitHub 中显示。
  • 使用 format: "json" 时返回 JSON,形式为 { table, page, rows, columns, data } 对象数组,其中 data 是字符串网格。

模型永远不会转录单元格。它接收 data 并基于此工作,因此它的任务缩减为它可靠擅长的操作:求和、比较、过滤和解释。该工具支持 PDF、DOCX、XLSX、PPTX 和 HTML,因此同一个提示即可覆盖供应商发票、Word 报告和电子表格。

如何以 JSON 形式获取表格?

在提示中声明格式。

提取明细行作为 JSON,并计算金额列的总和。

示例会话(摘要)
您:    提取 invoice-014.pdf 中的明细行作为 JSON 并计算金额列的总和。
代理:  [calls extract_tables with format "json"]
        {"table": 1, "page": 1, "rows": 4, "columns": 3,
         "data": [["Item", "Qty", "Amount"],
                  ["Paper A4", "10", "48.00"],
                  ["Toner", "2", "170.00"],
                  ["Delivery", "1", "22.00"]]}
        金额列的总计:240.00, 共 3 条明细。

因为代理持有行数据,后续步骤就变成普通问题:哪一行最大,总计是否与文本中打印的数字匹配,将行写入输出文件夹中的 CSV。当算术结果重要时,要求代理列出它求和的行,以便你核对。

何时应请求 Markdown 而非 JSON?

当后续由人阅读结果时使用 Markdown;当代码处理时使用 JSON。Markdown 是默认格式,也是最快查看表格并判断是否正确提取的方式。对总计、交叉检查以及任何需要写入电子表格或数据库的场景切换到 JSON。如果你知道表格所在的页码,可以缩小调用范围:

提取第 4 页的表格。

page 参数将检测限制在单页,速度更快,在计量授权模式下也更省钱。

哪些情况仍需人工检查?

诚实的限制在表格处理上比纯文本更为重要。

  • 扫描件没有可供查找的表格。 没有文本层就没有表格结构,提取结果为空。此服务器不提供 OCR。
  • 复杂布局多变。 合并单元格、嵌套表格以及跨页的表格并不总能像简单网格那样完整保留。先抽查一个文档,再批量处理两百个。
  • 评估模式受限。 未购买许可证时,提取功能受限;具体限制请参见库的 licensing page。在正式运行前让代理调用 get_license_status。

一键安装

该服务器仅以 Docker 镜像形式分发,因此没有 dnx 命令。按如下方式在 Claude Code 中注册,记得将路径替换为你的文档文件夹:

claude mcp add groupdocs-parser -- docker run --rm -i \
  -v /path/to/documents:/data ghcr.io/groupdocs-parser/parser-net-mcp:latest

Cursor、Claude Desktop、带 GitHub Copilot 的 VS Code、Windsurf、Cline 和 Codex 使用相同的容器,只是配置文件针对不同客户端;每种客户端的注册方式请参见 在 AI 客户端中注册。

常见问题

Claude 能准确读取 PDF 表格吗?
这取决于文件本身以及客户端如何将其扁平化,所以请实际检查而不是假设。使用 extract_tables 时,行数据来源于文档引擎的表格检测,返回为字符串网格,Claude 直接基于这些数据工作。

如何使用 AI 将 PDF 表格提取到 Excel?
先请求表格的 JSON,然后让代理将行写入输出文件夹中的 CSV,Excel 可以直接打开该 CSV。行到 CSV 的转换是代理的步骤,单元格的值来自工具。

它能在本地从 Word 和 Excel 文件中提取表格吗?
可以。extract_tables 同时支持 DOCX、XLSX 和 PDF,容器会读取你挂载的文件夹中的文件。

深入了解