But,面對(duì)一些數(shù)據(jù)規(guī)模灰常龐大,又要與不同業(yè)務(wù)部門頻繁協(xié)作的應(yīng)用場(chǎng)景,常規(guī)的手動(dòng)操作Excel恐怕是會(huì)把我們整個(gè)人搞崩潰。Excel純桌面應(yīng)用客戶端是很難滿足高效、自動(dòng)化、多端協(xié)同的需求場(chǎng)景,那么,怎么才能將Excel從本地工具升級(jí)為可編程、可集成的服務(wù)化平臺(tái)呢?Excel-MCP-Server(下面簡(jiǎn)稱EMS)就是解決這個(gè)問題的一大利器,下面將從功能解析、技術(shù)實(shí)現(xiàn)到應(yīng)用場(chǎng)景,全面解讀這一開源項(xiàng)目的方方面面。

Excel MCP Server是個(gè)啥東西?

Excel MCP Server是一款基于Python開發(fā)的服務(wù)器應(yīng)用,它的神奇之處在于,支持用戶在不安裝Microsoft Excel的情況下,利用MCP協(xié)議提供對(duì)Excel文件的操作能力,并且支持工作簿的創(chuàng)建和修改,能夠管理工作表和單元格范圍數(shù)據(jù)處理。

image

同時(shí)支持處理格式和樣式,甚至支持圖表和透視表等高級(jí)功能,這就讓我們?cè)谌粘9ぷ髦忻媾R自動(dòng)化數(shù)據(jù)處理、報(bào)告生成以及數(shù)據(jù)分析等方面工作具有了一個(gè)神級(jí)助手,讓我們面對(duì)復(fù)雜的數(shù)據(jù)處理工作場(chǎng)景不再束手無策,被搞的焦頭爛額。

Excel MCP Server核心功能

Excel MCP Server支持多維度數(shù)據(jù)管理工作,包括:

Excel MCP Server的技術(shù)實(shí)現(xiàn)

EMS采用分層架構(gòu),分為接口層、業(yè)務(wù)邏輯層、數(shù)據(jù)層:

其關(guān)鍵技術(shù)點(diǎn)在于,架構(gòu)上采用異步任務(wù)隊(duì)列,通過Celery實(shí)現(xiàn)異步處理,避免長時(shí)間操作阻塞主線程,以及動(dòng)態(tài)模板引擎,允許用戶上傳Excel模板,并通過占位符動(dòng)態(tài)填充數(shù)據(jù),支持條件格式與圖表生成。

Excel MCP Server的主要應(yīng)用場(chǎng)景有哪些?

Excel MCP Server的應(yīng)用場(chǎng)景那是非常的廣泛,下面我們就拿幾個(gè)典型的使用場(chǎng)景舉例來說:

image

Excel MCP 服務(wù)配置流程

前置條件

環(huán)境配置

可以使用以下環(huán)境變量配置服務(wù)器:

EXCEL_FILES_PATH:將存儲(chǔ)Excel文件的目錄(默認(rèn):

./excel_files)

我們也可以通過不同的方式進(jìn)行設(shè)置:

set EXCEL_FILES_PATH=C:pathtoexcelfiles
uv run excel-mcp-server
$env:EXCEL_FILES_PATH="C:pathtoexcelfiles"
uv run excel-mcp-server
export EXCEL_FILES_PATH=/path/to/excel/files
uv run excel-mcp-server

或者在Claude Desktop配置中:

{
"mcpServers": {
"excel": {
"command": "uv run excel-mcp-server",
"transport": "sse",
"env": {
"EXCEL_FILES_PATH": "/path/to/excel/files"
}
}
}
}

下一步,我們啟動(dòng)服務(wù)器:

uv run excel-mcp-server

服務(wù)器將以SSE模式啟動(dòng)并等待來自MCP客戶端的連接。在Cursor IDE中連接,啟動(dòng)服務(wù)器后,連接到Cursor IDE中的SSE端點(diǎn):

http://localhost:8000/sse

Excel MCP 工具將通過代理提供,關(guān)鍵工具及其用法,如下:

工作簿操作

create_workbook(filepath: str) -> str

filepath:創(chuàng)建工作簿的路徑;返回:包含已創(chuàng)建文件路徑的成功消息;

create_worksheet(filepath: str, sheet_name: str) -> str

filepath:Excel文件的路徑;

sheet_name:新工作表的名稱;返回:Success message;

get_workbook_metadata(filepath: str, include_ranges: bool = False) -> str

filepath:Excel文件的路徑

include_ranges:是否包含范圍信息返回:工作簿元數(shù)據(jù)的字符串表示形式

數(shù)據(jù)操作

write_data_to_excel(
    filepath: str,
    sheet_name: str,
    data: List[Dict],
    start_cell: str = "A1"
) -> str

filepath:Excel文件的路徑;

sheet_name:目標(biāo)工作表名稱;

data:包含要寫入的數(shù)據(jù)的字典列表;

start_cell:起始單元格(默認(rèn)值:“A1”);返回:Success message;

read_data_from_excel(
    filepath: str,
    sheet_name: str,
    start_cell: str = "A1",
    end_cell: str = None,
    preview_only: bool = False
) -> str

filepath:Excel文件的路徑;

sheet_name:源工作表名稱;

start_cell:起始單元格(默認(rèn)值:“A1”);

end_cell:可選的結(jié)束單元格;

preview_only:是否僅返回預(yù)覽;返回:數(shù)據(jù)的字符串表示形式;

格式化操作

format_range(
    filepath: str,
    sheet_name: str,
    start_cell: str,
    end_cell: str=None,
    bold: bool=False,
    italic: bool=False,
    underline: bool=False,
    font_size: int=None,
    font_color: str=None,
    bg_color: str=None,
    border_style: str=None,
    border_color: str=None,
    number_format: str=None,
    alignment: str=None,
    wrap_text: bool=False,
    merge_cells: bool=False,
    protection: Dict[str, Any] =None,
    conditional_format: Dict[str, Any] =None
) -> str

filepath:Excel文件的路徑;

sheet_name:目標(biāo)工作表名稱;

start_cell:范圍的起始單元格;

end_cell:范圍的可選結(jié)束單元格;各種格式選項(xiàng)(請(qǐng)參閱參數(shù));返回:Success message;

merge_cells(filepath: str, sheet_name: str, start_cell: str, end_cell: str) -> str

filepath:Excel文件的路徑;

sheet_name:目標(biāo)工作表名稱;

start_cell:范圍的起始單元格;

end_cell:范圍的結(jié)束單元格;返回:Success message;

unmerge_cells(filepath: str, sheet_name: str, start_cell: str, end_cell: str) -> str

filepath:Excel文件的路徑;

sheet_name:目標(biāo)工作表名稱;

start_cell:范圍的起始單元格;

end_cell:范圍的結(jié)束單元格;返回:Success message;

公式操作

apply_formula(filepath: str, sheet_name: str, cell: str, formula: str) -> str

filepath:Excel文件的路徑;

sheet_name:目標(biāo)工作表名稱;

cell:目標(biāo)單元格引用;

formula:要應(yīng)用的Excel公式;返回:Success message;

validate_formula_syntax(filepath: str, sheet_name: str, cell: str, formula: str) -> str

filepath:Excel文件的路徑;

sheet_name:目標(biāo)工作表名稱;

cell:目標(biāo)單元格引用;

formula:要驗(yàn)證的Excel公式;返回:Validation result message;

圖表操作

create_chart(
    filepath: str,
    sheet_name: str,
    data_range: str,
    chart_type: str,
    target_cell: str,
    title: str = "",
    x_axis: str = "",
    y_axis: str = ""
) -> str

filepath:Excel文件的路徑;

sheet_name:目標(biāo)工作表名稱;

data_range:包含圖表數(shù)據(jù)的范圍;

chart_type:圖表類型(折線圖、條形圖、餅圖、散點(diǎn)圖、面積圖);

target_cell:放置圖表的單元格;

title:可選圖表標(biāo)題;

x_axis:可選X軸標(biāo)簽;

y_axis:可選Y軸標(biāo)簽;返回:Success message;

數(shù)據(jù)透視表操作

create_pivot_table(
    filepath: str,
    sheet_name: str,
    data_range: str,
    target_cell: str,
    rows: List[str],
    values: List[str],
    columns: List[str] = None,
    agg_func: str = "mean"
) -> str

filepath:Excel文件的路徑;

sheet_name:目標(biāo)工作表名稱;

data_range:包含源數(shù)據(jù)的范圍;

target_cell:放置數(shù)據(jù)透視表的單元格;

rows:行標(biāo)簽的字段;

values:值的字段;

columns:列標(biāo)簽的可選字段;

agg_func:聚合函數(shù)(sum、count、average、max、min);返回:Success message;

工作表操作

copy_worksheet(filepath: str, source_sheet: str, target_sheet: str) -> str

filepath:Excel文件的路徑;

source_sheet:要復(fù)制的圖紙名稱;

target_sheet:新工作表的名稱;返回:Success message;

delete_worksheet(filepath: str, sheet_name: str) -> str

filepath:Excel文件的路徑;

sheet_name:要?jiǎng)h除的工作表的名稱;返回:Success message;

rename_worksheet(filepath: str, old_name: str, new_name: str) -> str

filepath:Excel文件的路徑;

old_name:當(dāng)前圖紙名稱;

new_name:新工作表名稱;返回:Success message;

Range操作

copy_range(
    filepath: str,
    sheet_name: str,
    source_start: str,
    source_end: str,
    target_start: str,
    target_sheet: str = None
) -> str

filepath:Excel文件的路徑;

sheet_name:源工作表名稱;

source_start:源范圍的起始單元格;

source_end:源范圍的結(jié)束單元格;

target_start:開始粘貼單元格;

target_sheet:可選的目標(biāo)工作表名稱;返回:Success message;

delete_range(
    filepath: str,
    sheet_name: str,
    start_cell: str,
    end_cell: str,
    shift_direction: str = "up"
) -> str
filepath:Excel文件的路徑;
sheet_name

:目標(biāo)工作表名稱;

start_cell:范圍的起始單元格;

end_cell:范圍的結(jié)束單元格;

shift_direction:移動(dòng)單元格的方向(“向上”或“向左”);返回:Success message;

validate_excel_range(
    filepath: str,
    sheet_name: str,
    start_cell: str,
    end_cell: str = None
) -> str

filepath:Excel文件的路徑;

sheet_name:目標(biāo)工作表名稱;

start_cell:范圍的起始單元格;

end_cell:范圍的可選結(jié)束單元格;返回:Validation result message;

以上Excel MCP服務(wù)配置流程以及相關(guān)工具講解就介紹到這里,感興趣的小伙伴可自己動(dòng)手驗(yàn)證。

寫在最后

Excel MCP Server作為一個(gè)專注于Excel數(shù)據(jù)處理的開源工具,無論是企業(yè)用戶,還是我們個(gè)人用戶,它都為我們提供了一個(gè)高效、靈活的解決方案,在自動(dòng)化數(shù)據(jù)處理、高效數(shù)據(jù)分析,還是靈活的系統(tǒng)集成方面,它都能滿足用戶的需求。但是,想要嫻熟地把這個(gè)工具玩兒轉(zhuǎn)起來,大家還是需要投入一定的時(shí)間和精力進(jìn)行學(xué)習(xí)和配置。希望這篇文章能夠幫助你更好地了解Excel MCP Server,如果大家有任何疑問或想法,歡迎在評(píng)論區(qū)留言交流!

友情提示:以上內(nèi)容均為作者本人學(xué)習(xí)分享,旨在與大家學(xué)習(xí)交流,不代表任何官方平臺(tái)觀點(diǎn)(僅供學(xué)習(xí)參考),不構(gòu)成任何工作建議、指導(dǎo),請(qǐng)大家謹(jǐn)慎評(píng)估技術(shù)可行性后再做決策,感謝您對(duì)技術(shù)探索精神的理解與支持!

原文轉(zhuǎn)載自:https://mp.weixin.qq.com/s/yrDz5qTwj1RANgRnEmiJEw

上一篇:

DeepSeek推薦AI生圖API,用Windsurf接入API,完善AI生圖功能

下一篇:

誰才是批量簡(jiǎn)歷AI篩選最佳模型?三大模型測(cè)評(píng)對(duì)比
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)