Excel接入AI大模型攻略:两种方法+隐藏彩蛋「豆包」更好用!
# 为什么要用Excel调用AI?
-自动化处理:直接让AI分析数据、生成文案、翻译内容
-零代码友好:插件党也能轻松玩转智能办公
-效率翻倍:告别手动复制粘贴,结果秒出单元格
#先说结论:
-两种方法:
1、通过写入VBA代码,用代码进行操作;
2、通过安装office AI 插件,调整设置的方式进行调用。
3、在office AI 插件设置中直接选择调用“豆包”大模型,可以实现对单元格的直接操作,不仅 仅是生成操作方法
#方法讲解:
-️ 方法一:VBA代码党专属(步骤如下,提供三个代码,任选一个)
适用人群:爱折腾的技术控 | 耗时:10分钟
操作步骤:
1、在TXT文件中完成代码编写:
代码1:
Sub calldeepseekapi()
Dim question As String
Dim response As String
Dim url As String
Dim apikey As String
Dim http As Object
Dim content As String
Dim startPos As Long
Dim endPos As Long
question = ThisWorkbook.Sheets(1).Range(“A1”).Value
url = “https://api.deepseek.com/v1/chat/completions”
apikey = “你的密钥”
Set http = CreateObject(“MSXML2.XMLHTTP”)
http.Open “POST”, url, False
http.setRequestHeader “Content-Type”, “application/json”
http.setRequestHeader “Authorization”, “Bearer ” & apikey
Dim requestBody As String
requestBody = “{“”model””:””deepseek-chat””,””messages””:[{“”role””:””user””,””content””:””” & question & “””}]}”
http.send requestBody
If http.Status = 200 Then
response = http.responseText
startPos = InStr(response, “””content””:”””) + Len(“””content””:”””)
endPos = InStr(startPos, response, “”””)
content = Mid(response, startPos, endPos – startPos)
ThisWorkbook.Sheets(1).Range(“A2”).Value = content
Else
ThisWorkbook.Sheets(1).Range(“A2”).Value = “Error: ” & http.Status & ” -” & http.statusText
End If
End Sub
代码2:
Sub calldeepseekapi()
Dim question As String
Dim response As String
Dim url As String
Dim apikey As String
Dim http As Object
Dim content As String
Dim startPos As Long
Dim endPos As Long
获取问题
question = ThisWorkbook.Sheets(1).Range(“A1”).Value
API 地址和密钥
url = “https://api.deepseek.com/v1/chat/completions”
apikey = “你的密钥”
创建 HTTP 请求对象
Set http = CreateObject(“MSXML2.XMLHTTP”)
打开请求
http.Open “POST”, url, False
设置请求头
http.setRequestHeader “Content-Type”, “application/json”
http.setRequestHeader “Authorization”, “Bearer ” & apikey
构建请求体
Dim requestBody As String
requestBody = “{ “”model””: “”deepseek-chat””, “”messages””: [ { “”role””: “”user””, “”content””: “”” & question & “”” } ] }”
发送请求
http.send requestBody
处理响应
If http.Status = 200 Then
response = http.responseText
查找 “content” 字段的起始位置
startPos = InStr(response, “””content””: “””) + Len(“””content””: “””)
查找 “content” 字段的结束位置
endPos = InStr(startPos, response, “”””)
提取内容
content = Mid(response, startPos, endPos – startPos)
将结果写入单元格
ThisWorkbook.Sheets(1).Range(“A2”).Value = content
Else
请求失败,将错误信息写入单元格
ThisWorkbook.Sheets(1).Range(“A2”).Value = “Request failed with status code: ” & http.Status
End If
End Sub
代码3:
Sub calldeepseekapi()
Dim question As String
Dim response As String
Dim url As String
Dim apikey As String
Dim http As Object
Dim content As String
Dim requestBody As String
读取输入和配置
question = ThisWorkbook.Sheets(“Sheet1”).Range(“A1”).Value
url = “https://api.deepseek.com/v1/chat/completions”
apikey = “sk-your-api-key-here” 建议从单元格或安全存储读取
创建请求对象
Set http = CreateObject(“MSXML2.XMLHTTP”)
http.Open “POST”, url, False
http.setRequestHeader “Content-Type”, “application/json”
http.setRequestHeader “Authorization”, “Bearer ” & apikey
构建正确的JSON请求体
requestBody = “{“”model””:””deepseek-chat””,””messages””:[{“”role””:””user””,””content””:””” & question & “””}]}”
On Error GoTo ErrorHandler
http.send requestBody
If http.Status = 200 Then
response = http.responseText
使用更可靠的JSON解析方法(需引用库)
此处示例简化,实际建议解析JSON
content = ExtractContent(response)
ThisWorkbook.Sheets(“Sheet1”).Range(“A2”).Value = content
Else
ThisWorkbook.Sheets(“Sheet1”).Range(“A2”).Value = “Error: ” & http.Status & ” – ” & http.statusText
End If
Exit Sub
ErrorHandler:
ThisWorkbook.Sheets(“Sheet1”).Range(“A2”).Value = “Error: ” & Err.Description
End Sub
辅助函数:解析JSON响应(需完善或使用库)
Function ExtractContent(jsonResponse As String) As String
Dim startPos As Long
Dim endPos As Long
startPos = InStr(jsonResponse, “””content””:”””) + Len(“””content””:”””)
endPos = InStr(startPos, jsonResponse, “”””)
ExtractContent = Mid(jsonResponse, startPos, endPos – startPos)
End Function
2、在Excel表格中打开Visual Basic编辑器,复制粘贴写好的代码,回到Excel工作表界面,打开“开发者工具”,选择插入“窗体控件按钮”,在工作表中选择你要插入控件的位置,鼠 标左键框选生成按钮
3、在A1单元格中编写你的请求提示词,在A2单元格中将生成你需要的结果。
-方法二:(步骤如下)
-适用人群:追求效率的办公族 | 耗时:3分钟
操作步骤:
1、安装office AI 插件:目前相关插件有两种,一种付费、一种免费。付费的插件主要是:Microsoft 365 Copilot和Google Duet AI,比较全面,但费用较高;免费的插件有海鹦、达 观等
2、安装完成后,在设置里面打开“大模型设置”,选择“本地部署”,选择“Apikey”,在“大模型”下拉列表中选择“deepseekR1”,模型名选择“deepseek-reasoner”,在 “API_KEY” 中粘贴你的deepseek apikey(这里不做介绍,可以自行搜索,很简单),完成以上操作后点击“保存”
3、在Excel工作表中点开“office AI”选项,打开右侧面板,在右侧对话框中输入你想完成指令的提示词即可。
⚠️ 避坑指南:
密钥需从DeepSeek官网获取(替换代码中的sk-your-api-key)
复杂问题建议用豆包模型(文末彩蛋)
# 试用情况分析:
-以上方法部署后,从试用情况分析,目前均存在较大的局限。统一的问题是:无法直接对单元格进行操作,只能生成操作方法的提示和步骤,与想要达成的智能效果还有距离,只能等待 deepseek和插件进一步结合。区别在于:方法一在A2单元格显示结果;方法二在右侧对话框显示结果。
-意外的收获:方法二中如果选用默认系统中的“豆包”大模型,可以直接对单元格完成操作,并生成结果。
# 实测对比:谁更胜一筹?
功能 VBA代码 插件+豆包模型
操作复杂度 ⭐⭐⭐⭐(需改代码) ⭐⭐(一键配置)
单元格直接操作 ❌ 仅显示结果 ✅ 自动填充/修改数据
错误处理 ⚠️ 依赖代码完善度 ✅ 自动提示修复建议
# 注意事项
API调用次数有限,复杂任务建议分段处理
敏感数据勿用免费插件(可选本地部署版)
首次使用建议从简单指令开始测试