xlex:AI智能体与Excel自动化交互的CLI工具
在数据处理与自动化工作流中,命令行接口(CLI)因其无状态、低侵入性和环境隔离性,成为连接不同工具和系统的理想桥梁。其标准化输入输出机制,尤其适合与AI智能体协作,实现确定性的自动化操作。通过CLI,AI可以像执行系统原生命令一样,直接操作外部资源,无需编写复杂的集成代码,极大简化了自动化流程的编排。xlex正是基于这一理念,为Excel文件操作提供了一个零依赖的单一二进制CLI工具。它充当了AI
1. 项目概述:为AI智能体打造的Excel命令行工具
如果你正在使用GitHub Copilot、Cursor或者Claude Code这类AI编程助手,并且经常需要处理Excel文件,那你一定遇到过这样的困境:AI助手能帮你写代码、跑脚本,但它没法直接“伸手”去打开一个 .xlsx 文件,更别说读取里面的数据、修改某个单元格,或者把处理好的数据再写回去了。这个看似简单的“最后一公里”问题,常常需要你手动介入,打断原本流畅的自动化流程。xlex这个工具,就是为了彻底解决这个问题而生的。
简单来说,xlex是一个用Rust编写的、零依赖的单一二进制命令行工具。它的核心使命,就是充当AI智能体与Excel文件之间的“翻译官”和“操作员”。AI助手只需要像调用 ls 、 cat 一样,通过标准的命令行接口向xlex发送指令,就能完成对Excel文件的任何读写操作。它不需要你在项目中集成复杂的SDK,也不需要启动任何额外的服务(比如MCP服务器),就是最纯粹、最直接的CLI交互。这意味着,你可以直接在AI助手的对话窗口里告诉它:“用xlex打开 report.xlsx ,在 Sheet1 的A1单元格写上‘Hello World’,然后保存。” 剩下的,AI助手自己就能搞定。
我最初接触xlex,是因为在尝试用Cursor自动化处理一批销售报表时,被频繁的手动导出导入CSV搞得不胜其烦。xlex的出现,让我能把整个“读取Excel -> 分析数据 -> 更新结果 -> 写回Excel”的闭环完全交给AI去编排。它的设计哲学非常明确: 为自动化而生,为确定性而生 。无论是结构化的JSON输出,还是明确的退出码,亦或是类似Git的会话管理,都让它在与AI协作时显得异常可靠。接下来,我将从设计思路、核心功能到实际集成,为你完整拆解这个利器。
2. 核心设计思路与架构解析
2.1 为什么是命令行接口(CLI)?
在讨论xlex的具体功能前,我们首先要理解它为什么选择CLI作为核心交互模式,而不是提供一个Python库或一个HTTP API。这背后有几点关键的考量,直接决定了它在AI智能体工作流中的实用性。
首要原因是“无状态”与“低侵入性” 。AI智能体,无论是Copilot Chat还是Claude Code,它们最擅长、也最自然的操作环境就是终端(Terminal)。在这个环境里,它们可以执行任何Shell命令。如果为Excel操作提供一个库,意味着你需要先让AI写一段代码来调用这个库,然后执行这段代码。这个过程引入了额外的“编写-执行”环节,增加了复杂度和出错可能。而CLI命令是即发即用的,AI只需要拼接出正确的命令字符串并执行即可,心智模型极其简单。
其次是环境隔离与确定性 。一个二进制文件,不依赖系统全局的Python环境、Node版本或者Excel的COM接口(在Windows上)。它打包了所有运行时依赖,在任何支持的操作系统上,行为都是一致的。这对于需要跨环境复现的自动化任务至关重要。AI智能体不需要关心用户本地是否安装了 pandas 或 openpyxl ,它只需要确保xlex在PATH中。
最后是输出标准化 。CLI工具可以方便地将结果输出到标准输出(stdout),AI智能体可以轻松捕获这些输出并进行解析。xlex支持 text 、 json 、 csv 等多种格式,尤其是 json 格式,为AI提供了结构完美、无需额外清洗的数据,极大简化了后续的数据处理逻辑。
2.2 会话管理与批量操作:Git工作流的灵感
xlex一个非常精妙的设计是引入了类似Git的“会话(Session)”概念。对于AI智能体来说,操作一个文件往往不是单一动作,而是一系列连续的操作序列。例如:打开文件 -> 读取配置 -> 根据配置修改多个单元格 -> 调整格式 -> 保存。
如果每个操作都独立执行( xlex cell set file.xlsx ... ),那么每次操作都意味着:打开文件、加载全部内容到内存、执行修改、写回磁盘。对于大文件或多次操作,这会造成巨大的I/O开销和性能瓶颈。
xlex的解决方案是 open -> batch -> commit 工作流:
xlex open report.xlsx: 这会在后台创建一个会话,将工作簿加载到内存中。此时文件被锁定(或拷贝到临时位置),防止其他进程修改。xlex batch -c 'cell set Sheet1 A1 “Hello”' -c 'row append Sheet1 a b c': 在一个命令中,向当前会话提交多个修改操作。这些操作在内存中顺序执行,但 只触发一次最终的磁盘写入 。xlex commit: 将所有在内存中的修改,一次性、原子性地写回原始文件。xlex close: 如果中途想放弃所有修改,使用此命令丢弃会话,原始文件保持不变。
这个设计带来了两个核心优势: 性能 和 原子性 。性能上,避免了重复的I/O;原子性上,要么所有修改成功提交,要么全部失败回滚,保证了文件在并发操作或意外中断时的完整性。对于AI智能体,这意味着它可以安全地规划一个复杂的多步骤任务,而不用担心中间步骤失败导致文件处于损坏的中间状态。
2.3 流式架构与内存管理
处理大型Excel文件(几十甚至上百MB)是许多工具的噩梦,因为它们倾向于将整个文件内容一次性读入内存。xlex基于Rust生态中优秀的 calamine 和 rust_xlsxwriter 等库构建,并在设计上采用了流式处理的思想。
对于读取操作,xlex可以按需读取工作表和数据,而不是全部加载。对于写入和批量操作,它在内存中维护一个高效的、增量式的数据表示。官方宣称可以处理高达200MB的文件而不耗尽内存,这在实践中意味着绝大多数业务场景下的Excel文件都能轻松应对。这种稳健性,使得你可以放心地将处理大型报表的任务交给AI和xlex,而不必担心程序崩溃。
3. 安装与基础使用实战
3.1 多种安装方式选择
xlex提供了极其友好的安装体验,几乎覆盖了所有主流平台和包管理器。
对于macOS和Linux用户,最快捷的方式是使用安装脚本:
curl -fsSL https://raw.githubusercontent.com/yen0304/xlex/main/install.sh | bash
这个脚本会自动检测你的系统架构,下载对应的预编译二进制文件,并将其放置到你的 $PATH 目录(通常是 /usr/local/bin )中。这是上手最快的方式。
如果你身处Node.js生态,通过npm安装也非常方便:
npm install -g xlex
安装后,你就可以在全局使用 xlex 命令。更妙的是,你甚至可以不安装,直接使用 npx 来临时运行:
npx xlex info report.xlsx
这对于在CI/CD流水线或一次性脚本中使用特别有用,无需预先配置环境。
对于追求极致控制或需要自定义编译选项的开发者,从源码编译是首选:
git clone https://github.com/yen0304/xlex.git
cd xlex
cargo build --release
# 编译后的二进制位于 target/release/xlex
cp target/release/xlex ~/.local/bin/ # 或任何PATH目录
从源码编译需要安装Rust工具链( rustc 和 cargo ),但这能确保你获得针对当前系统优化的最新版本。
直接下载二进制文件 也是一种选择,适合在无法运行脚本或没有网络包管理器的受限环境中使用。只需从GitHub Releases页面下载对应平台的压缩包,解压出可执行文件即可。
注意 :在Windows上,如果通过脚本或源码安装,请确保将xlex所在的目录添加到系统的
PATH环境变量中,否则在命令行中无法直接调用。
3.2 快速上手:验证安装与基础操作
安装完成后,首先验证是否成功:
xlex --version
你应该能看到类似 xlex 0.1.0 的版本输出。
接下来,让我们用一个简单的例子感受一下它的能力。假设我们有一个 data.xlsx 文件。
-
查看工作簿信息 :这是了解一个Excel文件最全面的方式。
xlex info data.xlsx这个命令会输出文件包含的所有工作表名称、每个表的大致尺寸(行数、列数)、文件属性(创建者、修改时间等)以及使用的Excel引擎版本。输出格式清晰易读。
-
读取单元格数据 :这是最常用的操作之一。
xlex cell get data.xlsx “SalesData” A1这里,
“SalesData”是工作表名(如果名称包含空格或特殊字符,需要用引号包裹),A1是单元格引用。命令会返回该单元格的值。 -
写入单元格数据 :
xlex cell set data.xlsx “SalesData” B2 1500.5执行后,
B2单元格的值就被设置为数字1500.5。xlex会自动推断数据类型。 -
导出数据 :将整个工作表导出为CSV,方便用其他工具处理。
xlex export csv data.xlsx -s “SalesData” > sales.csv-s参数用于指定工作表名,>操作符将输出重定向到sales.csv文件。
3.3 理解命令结构
xlex的命令遵循一个清晰的层级结构: xlex <资源> <操作> [参数] 。例如:
xlex cell get ...:对“单元格”资源进行“获取”操作。xlex sheet list ...:对“工作表”资源进行“列表”操作。xlex export csv ...:进行“导出”操作,目标格式是CSV。
这种结构非常直观,也便于AI智能体学习和生成正确的命令。几乎所有命令都支持 --help 参数来获取详细帮助,例如 xlex cell --help 会列出所有与单元格相关的子命令和用法。
4. 高级功能与AI智能体深度集成
4.1 技能文件(Skill Files):让AI“学会”使用xlex
这是xlex项目中最具前瞻性的特性之一。项目在 docs/skills/xlex-agent/ 目录下提供了一套完整的“技能文件”。你可以把这些文件看作是给AI智能体(如Cursor、Claude Code)的“产品说明书”和“操作手册”。
技能文件包含什么?
SKILL.md: 核心概述,告诉AI“xlex是什么”、“它能帮你做什么”、“你该如何使用它”。references/commands.md: 完整的CLI命令参考手册,详细到每个命令的参数、选项和示例。references/examples.md: 真实世界的工作流示例,比如“如何用xlex清理数据”、“如何生成报表”。
如何使用? 非常简单,你只需要将这个 xlex-agent 文件夹复制到你的项目根目录,或者任何AI智能体能够扫描到的位置。像Cursor这类智能IDE,会自动发现并学习这些技能文件。之后,当你在聊天窗口中提出与Excel相关的需求时,AI就会主动建议使用xlex命令,并能生成语法正确的命令。
例如,你可以在Cursor中提问:“帮我把 output.xlsx 里 Sheet1 的A列数据都乘以2,然后写回B列。” AI在理解了技能文件后,可能会生成如下命令序列:
xlex open output.xlsx
# 假设A列有10行数据,AI可能会生成一个循环或使用batch命令
xlex batch -c ‘cell set Sheet1 B1 “=A1*2”’ -c ‘cell set Sheet1 B2 “=A2*2”’ … # 实际中AI可能会用更聪明的方式
xlex commit
这相当于为你的AI助手瞬间扩展了处理Excel的超能力,无需你再反复解释或纠正命令格式。
4.2 模板系统:动态生成报表
模板功能是自动化报告生成的利器。你可以在Excel中创建一个模板文件,在需要动态填充的位置使用 {{placeholder}} 语法作为占位符。
假设你有一个 invoice_template.xlsx 文件,里面包含了公司Logo、表格框架和诸如 {{customer_name}} 、 {{invoice_date}} 、 {{total_amount}} 这样的占位符。
你可以准备一个JSON文件 vars.json 来定义这些变量的值:
{
“customer_name”: “Acme Corp”,
“invoice_date”: “2024-05-27”,
“total_amount”: “$1,250.00”
}
然后,使用一条命令即可生成最终的发票:
xlex template apply invoice_template.xlsx invoice_acme.xlsx -D customer_name=“Acme Corp” -D invoice_date=“2024-05-27” -D total_amount=“$1,250.00”
或者,如果变量很多,也可以从JSON文件读取:
xlex template apply invoice_template.xlsx invoice_acme.xlsx --vars vars.json
这个功能对于批量生成格式统一的合同、单据、证书等场景非常高效。AI智能体可以轻松地从一个数据源(如数据库查询结果、API响应)中提取数据,构造变量映射,然后调用xlex瞬间生成成百上千份定制化的Excel文件。
4.3 交互式REPL模式:探索与调试
对于不熟悉文件结构,或者想交互式地探索大型工作簿的用户,xlex提供了 repl 模式。
xlex repl large_data.xlsx
进入REPL后,你会看到一个 session> 提示符。在这个模式下,文件只被加载一次,之后的所有查询命令(如 cell 、 row 、 range get )都在内存中瞬间完成,非常适合用来浏览数据、测试查询语句。
例如,你可以快速查看所有工作表:
session> sheets
查看某个范围的数据:
session> range Sheet1 A1:F10
REPL模式支持命令补全和历史记录,使用体验接近一个轻量级的Excel专用查询工具。当你完成探索,输入 exit 即可退出。
5. 实战工作流:从数据清洗到报告生成
让我们通过一个完整的实战案例,串联起xlex的各项功能。场景:你有一份从旧系统导出的、格式混乱的销售数据CSV文件 raw_sales.csv ,需要将其清洗、分析后,生成一份格式美观的Excel周报。
5.1 第一步:数据导入与初步清洗
首先,将CSV数据导入到一个新的Excel工作簿。
xlex import csv raw_sales.csv weekly_report.xlsx
这会创建一个名为 weekly_report.xlsx 的文件,并将CSV数据导入到默认的第一个工作表(通常叫 Sheet1 )。
接着,我们检查一下数据。使用REPL模式快速浏览:
xlex repl weekly_report.xlsx
session> info
session> row Sheet1 1 # 查看第一行(标题)
session> row Sheet1 2 # 查看第二行(第一条数据)
假设我们发现数据中有多余的空格和无效的“N/A”字符串。我们可以设计一个批处理脚本来清洗。创建一个名为 cleanup.txt 的脚本文件:
# cleanup.txt
# 假设“Product”在B列,“Amount”在D列
# 1. 清除Product列的前后空格
range set Sheet1 B:B “=TRIM(B1)” # 注意:这里需要逐行处理,实际中可能需要更复杂的逻辑。这里仅为示例,更稳妥的方式是使用batch循环。
# 2. 将Amount列的“N/A”替换为0
range set Sheet1 D:D “=IF(D1=‘N/A’, 0, D1)”
# 3. 删除“Notes”列(假设是E列),如果它全为空
column delete Sheet1 E
注意 :上面的公式示例在批处理中可能需要针对每个单元格设置。更实用的方法可能是先用
export csv导出,用sed/awk或Python清洗,再重新导入。xlex的batch命令更适合离散的单元格操作。对于列级别的清洗,可以结合使用export、外部处理、再import的方式。
鉴于列级别的清洗用原生命令稍复杂,我们可以换一种思路:用xlex配合一行简单的Python或Shell脚本。
# 导出为CSV,用sed清洗,再导入
xlex export csv weekly_report.xlsx -s Sheet1 > temp.csv
sed -i ‘s/^[ \t]*//;s/[ \t]*$//;s/^N\/A$/0/’ temp.csv # 简化示例,实际清洗规则更复杂
xlex import csv temp.csv weekly_report_cleaned.xlsx
5.2 第二步:数据分析与汇总
数据清洗后,我们在新的工作簿中进行分析。首先,添加一个汇总工作表。
xlex sheet add weekly_report_cleaned.xlsx “Summary”
然后,我们可以在 Summary 表里用xlex设置公式,引用 Sheet1 的数据进行计算。例如,计算总销售额(假设 Amount 在D列):
xlex cell set weekly_report_cleaned.xlsx Summary A1 “Total Sales”
xlex formula set weekly_report_cleaned.xlsx Summary B1 “=SUM(Sheet1!D:D)”
计算平均销售额、最大最小单等操作类似。xlex的 formula calc 子命令也提供了一些快捷计算函数,但直接设置单元格公式更为灵活。
5.3 第三步:格式化与美化
数据分析完成后,我们需要让报告看起来更专业。xlex支持基础的样式操作。
# 1. 设置标题行样式(假设Summary表的A1:B1是标题)
xlex style apply weekly_report_cleaned.xlsx Summary A1:B1 “header” # 假设存在一个预设的‘header’样式
# 2. 为总计数字设置货币格式
xlex cell set weekly_report_cleaned.xlsx Summary B1 “=SUM(Sheet1!D:D)” # 重新设置,但这次我们关注格式
# xlex目前(根据文档)的style apply可能更适用于预设样式。更精细的格式化(如数字格式)可能需要直接操作单元格属性或依赖模板。
对于复杂的格式化,更推荐的方式是:先创建一个带有所有格式的Excel模板文件,然后将清洗汇总后的 数据 通过 batch 命令填充到模板的指定位置。这样能将样式(设计)与数据(内容)分离,更易于维护。
5.4 第四步:利用会话管理进行原子性更新
最后,我们将上述多个步骤,通过一个会话(Session)来原子性地完成,确保过程中出错不会产生部分更新的脏文件。
# 开始一个会话,对最终报告文件进行操作
xlex open final_report.xlsx
# 执行一系列操作:写入汇总数据、应用格式等
xlex batch -c ‘cell set Summary A1 “Weekly Sales Report”’
xlex batch -c ‘cell set Summary A2 “Total:”’
xlex batch -c ‘formula set Summary B2 “=SUM(Data!D:D)”’
# … 更多操作命令
# 检查会话状态
xlex status
# 确认无误后,提交所有更改
xlex commit
如果在这个过程中任何一条 batch 命令失败,或者你发现有问题,可以随时使用 xlex close 来丢弃所有未提交的更改, final_report.xlsx 文件将保持原样。
6. 常见问题与故障排查
在实际使用中,你可能会遇到一些问题。这里记录了一些常见情况及解决方法。
6.1 命令执行失败:文件或工作表不存在
问题 :执行 xlex cell get data.xlsx MySheet A1 时,报错 Sheet not found 或 File not found 。 排查 :
- 检查文件路径 :确保
data.xlsx在当前目录,或者使用绝对路径。 - 检查工作表名 :工作表名 区分大小写 且必须完全匹配。使用
xlex sheet list data.xlsx查看准确的工作表名称。如果名称包含空格或特殊字符,确保在命令中用引号包裹,如“My Sheet”。 - 检查文件格式 :确保文件是
.xlsx格式(Office 2007+),老旧的.xls格式需要先转换。
6.2 批量操作(Batch)中的引用错误
问题 :在 batch 命令中,对单元格的引用似乎没有生效。 排查 :
- 确认会话状态 :
batch命令可以针对一个已打开会话(xlex open后)执行,也可以直接对文件执行(xlex batch file.xlsx -c …)。确保你使用的模式正确。 - 引用作用域 :在
batch命令的-c参数中,命令是独立解析的。确保每个命令内的单元格引用(如Sheet1!A1)书写正确。 - 使用绝对引用 :如果公式中涉及其他单元格,在批量设置时,建议使用绝对引用(如
$A$1),避免在后续行操作中引用错位。
6.3 性能问题:处理大文件速度慢
问题 :处理一个几十MB的Excel文件时,命令响应很慢。 排查与优化 :
- 使用会话模式 :对于多个读写操作, 务必使用
open->batch->commit工作流 。这比单独执行每个cell set命令快几个数量级。 - 减少输出 :如果命令不需要详细输出,加上
-q(quiet)标志来抑制非错误输出。 - 避免范围过大 :
range get一个非常大的范围(如整个工作表)会返回大量数据,导致处理和输出变慢。尽量指定精确的范围。 - 导出后处理 :如果只是需要做复杂的数据转换或分析,考虑用
xlex export csv导出为CSV,用更专业的文本处理工具(如awk,mlr)或脚本语言处理,再用xlex import导回。Excel文件本身的解析和渲染开销比纯文本大。
6.4 与AI智能体协作时的提示工程
问题 :AI智能体生成的xlex命令有时不符合预期。 优化建议 :
- 提供上下文 :在向AI提问时,明确说明你已安装xlex,并希望它使用这个工具。例如:“我已在系统中安装了xlex CLI工具。请帮我想一个xlex命令来实现……”
- 引用技能文件 :如果AI(如Cursor)支持,可以提示它参考项目中的技能文件(
docs/skills/xlex-agent/)。 - 分步请求 :对于复杂操作,不要要求AI一步生成所有命令。可以分步进行:“第一步,用xlex查看这个文件有哪些工作表。第二步,读取
Data工作表的A1:A10范围……” - 验证命令 :在让AI直接执行命令前,可以先让它输出命令文本给你检查。特别是涉及文件写入(
set,delete)的操作,可以先dry-run或在小副本上测试。
6.5 格式支持与兼容性
问题 :xlex能处理 .xls 文件吗?导出的CSV中文乱码怎么办? 说明 :
- 文件格式 :xlex主要支持
.xlsx格式(Office Open XML)。对于旧的.xls(Excel 97-2003)文件,需要先用Excel或在线转换工具将其另存为.xlsx格式。 - 编码 :导出CSV/TSV时,默认使用UTF-8编码,这能很好地支持中文等多语言字符。如果其他老系统需要特定编码(如GBK),你可能需要在导出后使用
iconv等工具进行转换。 - 公式 :xlex支持读取和设置Excel公式。但请注意,公式的 计算 是由Excel软件本身完成的。xlex在设置公式后,单元格显示的是公式字符串本身。当你用Excel打开文件时,公式才会被计算并显示结果。xlex的
formula eval命令可以在不打开Excel的情况下评估一些简单公式,但对于复杂公式或依赖其他单元格的公式,其评估能力有限。
7. 进阶技巧与生态整合
7.1 将xlex嵌入Shell脚本或Makefile
xlex的CLI特性让它天然适合与Shell脚本结合,实现自动化流水线。
#!/bin/bash
# 示例:每日销售报告自动化脚本
INPUT_FILE=“daily_sales.xlsx”
OUTPUT_FILE=“daily_summary_$(date +%Y%m%d).xlsx”
TEMPLATE_FILE=“summary_template.xlsx”
# 1. 检查输入文件是否存在
if [ ! -f “$INPUT_FILE” ]; then
echo “错误:输入文件 $INPUT_FILE 不存在。”
exit 1
fi
# 2. 从输入文件计算今日总额(假设数据在‘Sales’表的D列)
TOTAL_SALES=$(xlex export csv “$INPUT_FILE” -s Sales | tail -n +2 | awk -F’,’ ‘{sum+=$4} END {print sum}’)
# 这里简单演示,实际计算可能更复杂
# 3. 使用模板生成报告
xlex template apply “$TEMPLATE_FILE” “$OUTPUT_FILE” -D date=“$(date +%Y-%m-%d)” -D total_sales=“$TOTAL_SALES”
# 4. 可选:上传到云存储或发送邮件
# ./upload_to_cloud.sh “$OUTPUT_FILE”
echo “报告已生成:$OUTPUT_FILE”
你也可以将常用的xlex操作序列封装成Makefile目标,与代码构建、测试流程整合。
7.2 在CI/CD流水线中使用
在GitHub Actions、GitLab CI等持续集成环境中,xlex可以作为一个轻量级工具,用于验证生成的Excel文件、或从报表中提取数据用于后续步骤。
# 示例 GitHub Actions 步骤
- name: Process Excel Report
run: |
# 安装xlex
curl -fsSL https://raw.githubusercontent.com/yen0304/xlex/main/install.sh | bash
# 验证生成的文件包含正确的数据
xlex cell get generated_report.xlsx “Summary” B1 > total.txt
TOTAL=$(cat total.txt)
if [ $(echo “$TOTAL > 1000” | bc) -eq 1 ]; then
echo “销售额达标”
else
echo “销售额未达标,检查数据”
exit 1
fi
7.3 结合其他数据处理工具
xlex并非要取代 pandas 或 openpyxl 这类完整的编程库,而是填补了自动化脚本与Excel文件快速交互的空白。一个高效的组合是:
- 复杂数据操作 :使用Python(pandas)进行数据清洗、转换、复杂分析。
- 最终输出与格式化 :将pandas的DataFrame导出为CSV,然后使用xlex的
import和template功能,将数据填充到预定义好格式的Excel模板中,生成最终面向业务用户的、格式美观的报告。
这种分工结合了Python生态强大的数据处理能力和xlex在Excel文件操作上的简洁与自动化友好性。
从我个人的使用经验来看,xlex最大的价值在于它极大地降低了“让机器自动处理Excel”的门槛。它不像编程库那样需要你处理异常、管理内存、理解API的细微差别。它就是一个听话的、功能强大的命令行工具,你(或你的AI助手)告诉它做什么,它就做什么。这种简单直接,在追求效率的自动化场景下,本身就是一种巨大的优势。尤其是在与AI智能体深度协作的今天,拥有一个它能直接理解并可靠操作Excel的接口,无疑能让你的自动化工作流如虎添翼。
更多推荐




所有评论(0)