Excel智能自动化:基于MCP协议的Excel文件操作全指南
- 2026-11-11 09:51:33
Excel智能自动化:基于MCP协议的Excel文件操作全指南











在日常开发工作中,我们经常需要在Cursor 中操作Excel文件,但原生环境无法直接读取或写入Excel内容。本文将详细介绍如何使用开源的ExcelMCP来解决这个问题,让AI能够方便地处理Excel数据。
一、ExcelMCP简介
ExcelMCP是一个开源项目,它通过MCP协议让AI能够与Excel文件进行交互。项目地址:https://github.com/negokaz/excel-mcp-server
1、功能概览

2、功能详细介绍
2.1 analyzeExcelStructure - 分析Excel结构
这个功能用于深入分析Excel文件的内部结构,包括工作表关系、数据类型、公式依赖等。
功能特点
分析工作表间的关联关系 识别数据类型和格式 检测公式依赖链 发现数据验证规则
使用示例
# 分析Excel文件结构
分析结果 = analyzeExcelStructure("D:\财务数据.xlsx")
# 返回结构示例
{
"fileName":"财务数据.xlsx",
"sheets":[
{
"name":"收入表",
"type":"data",
"rowCount":100,
"columnCount":10,
"relationships":[
{"relatedSheet":"支出表","type":"vlookup","keyColumn":"A"}
],
"dataValidations":[
{"range":"B2:B100","type":"decimal","min":0}
]
}
],
"formulas":[
{"sheet":"汇总表","cell":"C10","formula":"=SUM(收入表!B2:B100)"}
]
}
原理流程图

2.2 exportExcelStructure - 导出Excel结构
将Excel文件的结构信息导出为标准格式,便于文档化或导入其他系统。
支持导出格式
JSON:程序处理用 YAML:配置文件用 Markdown:文档用 CSV:表格用
使用示例
# 导出为JSON格式
exportExcelStructure --file"D:\测试文件.xlsx"\
--format json \
--output"D:\structure.json"
# 导出为Markdown文档
exportExcelStructure --file"D:\测试文件.xlsx"\
--format markdown \
--output"D:\structure.md"\
--include-sample-data
Markdown导出效果
# Excel文件结构分析报告
## 文件信息
- 文件名:测试文件.xlsx
- 工作表数:1
- 总数据量:3行 × 2列
## 工作表详情
### Sheet1
| 列 | 列名 | 数据类型 | 示例值 |
|----|------|----------|--------|
| A | 姓名 | 文本 | 小陈 |
| B | 年龄 | 数值 | 11 |
2.3 readSheetNames - 读取工作表名称
快速获取Excel文件中所有工作表的名称列表。
功能特点
轻量级操作,速度快 不加载全部数据,节省内存 支持过滤隐藏工作表
使用示例
# 获取所有工作表名称
sheet_names = readSheetNames("D:\测试文件.xlsx")
# 返回结果
["Sheet1","数据汇总","图表","隐藏表"]
# 仅获取可见工作表
visible_sheets = readSheetNames("D:\测试文件.xlsx", include_hidden=False)
2.4 readDataBySheetName - 按名称读取数据
通过工作表名称读取特定工作表的数据。
参数说明
file_path文件路径 sheet_name工作表名称 range可选,指定读取范围(如"A1:C10") include_formulas是否包含公式
使用示例
# 读取指定工作表全部数据
data = readDataBySheetName(
file_path="D:\测试文件.xlsx",
sheet_name="Sheet1"
)
# 读取指定范围数据
range_data = readDataBySheetName(
file_path="D:\测试文件.xlsx",
sheet_name="Sheet1",
range="A1:B3",
include_formulas=True
)
# 返回数据格式
{
"sheet_name":"Sheet1",
"data":[
["姓名","年龄"],
["小红",10],
["小明",11]
],
"range":"A1:B3",
"row_count":3,
"column_count":2
}
2.5 readSheetData - 智能读取数据
这是一个增强版的读取功能,支持更多智能特性。
智能特性
自动检测表头 数据类型推断 空值处理 格式转换
使用示例
# 智能读取数据
smart_data = readSheetData(
file_path="D:\测试文件.xlsx",
sheet_index=0,# 通过索引指定工作表
has_header=True,
auto_detect_types=True,
fill_na="",# 空值填充
convert_to=["date","number","string"]
)
# 返回结构化数据
{
"headers":["姓名","年龄"],
"rows":[
{"姓名":"小红","年龄":10},
{"姓名":"小明","年龄":11}
],
"statistics":{
"年龄":{
"min":10,
"max":11,
"avg":10.5
}
}
}
智能读取流程图

2.6 writeDataBySheetName - 按名称写入数据
向指定名称的工作表写入数据,支持创建新工作表。
功能特点
自动创建工作表 支持追加和覆盖模式 数据格式自动适配
使用示例
# 准备写入数据
test_cases =[
["用例编号","测试模块","测试点","优先级"],
["TC001","登录","正常登录","P0"],
["TC002","登录","密码错误","P1"],
["TC003","登录","账号锁定","P2"]
]
# 写入数据(创建新工作表)
writeDataBySheetName(
file_path="D:\测试用例.xlsx",
sheet_name="登录测试",
data=test_cases,
create_if_missing=True,
write_mode="overwrite",# 或 "append"
start_cell="A1"# 起始位置
)
# 追加数据
additional_cases =[
["TC004","登录","验证码错误","P1"]
]
writeDataBySheetName(
file_path="D:\测试用例.xlsx",
sheet_name="登录测试",
data=additional_cases,
write_mode="append"
)
2.7 writeSheetData - 高级写入功能
提供更灵活的数据写入能力,支持复杂的数据结构和格式设置。
高级特性
单元格格式设置 公式写入 合并单元格 数据验证规则 条件格式
使用示例
# 复杂写入操作
writeSheetData(
file_path="D:\报表.xlsx",
sheet_name="月度报表",
operations=[
{
"type":"write_data",
"range":"A1:D1",
"data":["月份","收入","支出","利润"],
"format":{
"bold":True,
"background_color":"#CCE5FF",
"font_size":12
}
},
{
"type":"write_formula",
"range":"D2",
"formula":"=B2-C2"
},
{
"type":"merge_cells",
"range":"A1:D1",
"merge":True
},
{
"type":"add_validation",
"range":"B2:B13",
"validation":{
"type":"decimal",
"min":0,
"max":1000000
}
}
]
)
2.8 clearFileCache - 清理文件缓存
当Excel文件被外部修改后,清理缓存确保读取到最新数据。
使用场景
文件被其他程序修改 多人协作时的同步 测试过程中的重置
使用示例
# 清理特定文件的缓存
clearFileCache("D:\测试文件.xlsx")
# 清理所有缓存
clearFileCache("*")
# 清理后重新读取
readSheetData("D:\测试文件.xlsx", sheet_index=0)
缓存管理流程图

3、功能对比表
4、应用场景
- 数据读取
让AI读取本地Excel文件内容进行分析 - 数据写入
AI生成测试用例后直接写入Excel - 用例补充
在现有测试用例基础上进行智能补充
二、环境准备
配置ExcelMCP

{
"mcpServers":{
"excel-mcp-server":{
"command":"npx",
"args":[
"--yes",
"@zhiweixu/excel-mcp-server"
],
"env":{
"LOG_PATH":"F:\\tmp\\mcpfiles",
"CACHE_MAX_AGE":"1",
"CACHE_CLEANUP_INTERVAL":"4",
"LOG_RETENTION_DAYS":"7",
"LOG_CLEANUP_INTERVAL":"24"
}
}
}
}
配置成功后展示如下:
三、实战操作步骤
3.1 准备测试文件
首先创建一个测试Excel文件,路径为:/User/xxx/测试文件.xlsx
文件内容如下:
3.2 读取Excel数据
操作流程
确保Excel文件已创建并保存 在Cursor中发送读取指令 获取并分析数据
示例指令
请读取下文件内容/Users/xxx/测试文件.xlsx

读取原理流程图

3.3 写入测试数据
写入操作示例
请在/Users/xxx/测试文件.xlsx 文件新增10个姓名、年龄和性别,要求姓名不一样,然后并在最后一行计算总人数和性别比例, 并生成一个年龄柱状图和性别饼状图

写入流程示意图

最终写入效果

3.4 高级功能应用
创建结构化表格
# 在现有工作表中创建表格
excel_create_table --file"D:\测试文件.xlsx"\
--sheet"Sheet1"\
--range"A1:B3"\
--name"人员信息表"
工作表管理
# 查看工作表信息
excel_describe_sheets --file"D:\测试文件.xlsx"
# 复制工作表
excel_copy_sheet --file"D:\测试文件.xlsx"\
--source"Sheet1"\
--target"Sheet1_备份"
后续如果要求可以下达执行命令,执行后的效果:
四、实际应用案例案例:
案例:测试用例生成与管理

案例代码实现
# 步骤1: 创建测试用例模板
template =[
["模块","测试点","前置条件","操作步骤","预期结果","实际结果","状态"],
["登录","正常登录","已注册账号","1.输入账号密码\n2.点击登录","跳转首页","",""]
]
# 步骤2: 写入Excel
写入文件 /Users/xxxx/测试用例.xlsx 工作表="功能测试" 数据=template
# 步骤3: AI智能补充
请分析现有测试用例,补充边界值测试场景并写入

实际运行的效果:

五、注意事项
- 文件路径
使用绝对路径确保文件定位准确 - 权限问题
确保Excel文件未被其他程序占用 - Windows截图功能
仅支持Windows系统,需要Excel程序运行 - 数据格式
写入时注意数据类型的一致性
六、总结
ExcelMCP为我们提供了一种便捷的方式,让AI能够直接操作Excel文件。通过本文介绍的功能和使用方法,你可以:
✅ 让AI读取本地Excel数据 ✅ AI生成内容直接写入Excel ✅ 批量处理Excel文件 ✅ 智能补充和更新测试用例
这大大提升了在Cursor中处理Excel文件的效率,特别适合测试用例管理、数据分析等场景。如果你想了解更多高级功能,可以查阅官方文档和源码进行深入学习。
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。