程序员老鬼

【最全教程】DeepSeek接入Excel,效率起飞!

今天我们来聊聊一个特别有趣的技巧:如何在Excel上接入DeepSeek。

作为一个程序员,我总是喜欢在看似简单的工具上做点小动作,给它们加点“黑科技”。

你有没有想过,把Excel和AI结合起来,做一些超炫的操作?比如,利用DeepSeek的强大能力,让你在Excel表格中直接调取AI的分析结果、自动化生成数据,效率直接飙升。

Image

不过,首先,你得准备好一点东西,然后跟我一起走一遍步骤。别怕,虽然说是编程,但放心,我保证这个过程不会让你抓狂。

实现原理简述

首先,给大家简单介绍一下背后的原理。DeepSeek 提供了一个API接口,你可以通过在Excel里编写VBA代码来调用它。然后,DeepSeek的AI就能对你表格中的数据进行处理,给你返回智能生成的内容。简单来说,就是把Excel变成了一个超级智能的AI助手。

不过,放心,即使你对VBA不熟悉,按照步骤走,你一样能轻松上手,做出属于自己的神奇功能。

第一步:准备工作

在我们正式开始之前,先来确保几个准备工作完成:

1. 获取DeepSeek的API Key

你需要一个DeepSeek的API Key,这个是让Excel能够和DeepSeek通信的钥匙。官方的API充值服务暂时停止了

你可以去 腾讯云:https://curl.qcloud.com/T3M5yBHp 申请 API Key。目前能正常使用,推荐!

💡 注意:不管用哪个 API Key,对应平台账户里一定要有余额,否则就跟打电话没话费一样,连不上的。

2. 启用Excel的开发者工具

接下来,我们需要在Excel里开启开发者工具,这样才能编辑代码。操作也很简单:

  1. 打开Excel,点击“文件” -> “选项” -> “自定义功能区”。
  2. 勾选“开发工具”,然后点击“确定”。
  3. 这时,你的菜单栏上会多出一个“开发工具”选项卡。

Image

3. 调整信任设置

为了让VBA代码正常运行,我们还需要调整一下Excel的信任设置。操作方法如下:

  1. 点击“文件” -> “选项” -> “信任中心” -> “信任中心设置” -> “宏设置”。
  2. 选择“启用所有宏”并勾选“信任对VBA工程对象模型的访问”,然后点击“确定”。

Image

这样,我们就做好了准备,接下来可以开始写代码了。

第二步:编写VBA代码

这个步骤可能会让你稍微紧张,因为我们要动手写点VBA代码。不过,别担心,按照我说的步骤走,你就能顺利完成。

1. 打开VBA编辑器

首先,我们需要进入VBA编辑器来编写代码:

  • 在“开发工具”选项卡中,点击“Visual Basic”。

Image

  • 这时会弹出一个窗口,点击“插入” -> “模块”,创建一个新的模块。

Image

2. 粘贴核心代码

在新建的模块里,我们要粘贴以下的代码:

'VBA代码应用'▲▲▲ API配置区 ,修改API-key!其他不变Const AI_URL As String = "https://api.deepseek.com/chat/completions"'填写你的API keyConst AI_KEY As String = "xxx"
Const AI_MODEL As String = "deepseek-chat"
'AI交互函数不变Private Function GetAIResponse(prompt As String) As String Dim oXmlHttp As Object, requestBody As String Dim startTime As Double, apiResponse As String
Const TIMEOUT_MSG As String = "请求超时,可能原因:" & vbCrLf & _ "1. 网络连接问题" & vbCrLf & _ "2. API服务繁忙" & vbCrLf & _ "是否重试?" Const PROCESSING_MSG As String = "AI分析中,已耗时 "
On Error GoTo ErrorHandlerSet oXmlHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
'▲▲▲ 超时参数配置 ▲▲▲ oXmlHttp.setTimeouts 5000, 8000, 20000, 60000
'▼▼▼ 构建专业请求 ▼▼▼With oXmlHttp .Open "POST", AI_URL, False .setRequestHeader "Content-Type", "application/json;" .setRequestHeader "Authorization", "Bearer " & AI_KEY .setRequestHeader "Accept", "*/*"End With
requestBody = "{""model"":""" & AI_MODEL & """," & _"""messages"":[{""role"":""user"",""content"":""" & JSONEscape(prompt) & """}]," & _"""temperature"":0.7,""max_tokens"":512}"
'▲▲▲ 异步处理控制 ▲▲▲ startTime = Timer oXmlHttp.send requestBody
Do While oXmlHttp.readyState <> 4 If Timer - startTime > 60 Then If MsgBox(TIMEOUT_MSG & "耗时:" & Format(Timer - startTime, "0.0") & "秒", _ vbCritical + vbRetryCancel) = vbRetry Then oXmlHttp.abort startTime = Timer oXmlHttp.send requestBody Else Exit Function End If End If DoEvents Application.StatusBar = PROCESSING_MSG & Format(Timer - startTime, "0.0") & "秒" Loop
'▼▼▼ 响应处理 ▼▼▼If oXmlHttp.Status = 200 Then apiResponse = oXmlHttp.responseText GetAIResponse = ExtractJSONContent(apiResponse)Else Err.Raise vbObjectError + 1, , "API错误:" & oXmlHttp.Status & " - " & oXmlHttp.statusTextEnd If
Exit Function
ErrorHandler:If Err.Number = -2147012894 ThenIf MsgBox(TIMEOUT_MSG, vbExclamation + vbRetryCancel) = vbRetry Then ResumeElse MsgBox "AI交互错误:" & Err.Description, vbCriticalEnd If GetAIResponse = "错误:" & Err.DescriptionFinally: Application.StatusBar = FalseSet oXmlHttp = NothingEnd Function
'辅助函数:JSON转义Private Function JSONEscape(str As String) As String JSONEscape = Replace(Replace(Replace(str, "\", "\\"), """", "\"""), vbCrLf, "\n")End Function
'辅助函数:提取JSON内容Private Function ExtractJSONContent(responseText As String) As String Dim contentStart As Long, contentEnd As Long contentStart = InStr(responseText, """content"":""") + 11 contentEnd = InStr(contentStart, responseText, """") ExtractJSONContent = Replace(Mid(responseText, contentStart, contentEnd - contentStart), "\n", vbCrLf)End Function

'主任务:数据处理流程Sub MainTask() Dim prompt As String, aiResponse As String Dim ws As Worksheet
On Error GoTo ErrorHandler Set ws = ActiveSheet

'▲▲▲ 构建专业提示词 ▲▲▲ 提问写在A2 prompt = Range("A2")
'▼▼▼ AI交互 ▼▼▼ aiResponse = GetAIResponse(prompt)
'▲▲▲ 结果输出 在A4 ws.Range("A4").Value = aiResponse ws.Range("A4").WrapText = True Exit Sub
ErrorHandler: MsgBox "处理数据时发生错误:" & Err.Description, vbCriticalEnd Sub

3. 修改API Key

在代码中,找到 API_KEY = "你的API_KEY",然后将 "你的API_KEY" 替换为你从DeepSeek获得的API Key。

这样,你的代码就完成了。

第三步:自定义功能区

为了让操作更方便,我们可以在Excel里加个按钮,点击它就能触发DeepSeek的功能。这样每次都不用去VBA编辑器里手动执行,直接点击按钮就好。

1. 添加自定义按钮

  1. 点击“文件” -> “选项” -> “自定义功能区”。
  2. 右键点击“开发工具”,选择“添加新组”。
  3. 给新组命名,比如“DeepSeek”,然后选择一个喜欢的图标。

Image

2. 绑定宏到按钮

  1. 在左侧的命令列表中,找到你刚才创建的宏“MainTask”。
  2. 选中它,点击“添加”到右侧的“DeepSeek”组中。
  3. 点击确定。

Image

现在,Excel菜单栏中就有了一个专门的按钮,每次你需要调用DeepSeek时,只需点击它就行。

第四步:测试功能

一切准备就绪,现在是时候测试我们的大工程了!

  1. 打开一个Excel工作表,输入一些数据,比如“你好啊!”。
  2. 选中这段文字,点击菜单栏中的“MainTask”按钮。
  3. 如果设置正确,DeepSeek会返回一段处理后的结果,并显示在Excel表格的相邻单元格中。

Image

额外提示

在使用VBA时,有几个小细节值得注意:

1. 引用必要的库

在VBA编辑器中,点击“工具” -> “引用”,确保勾选以下库:

  • Microsoft Scripting Runtime
  • Microsoft XML, v6.0

Image

这些库可以确保代码能够顺利运行。

2. 处理可能的错误

如果你在运行过程中遇到问题,不妨试试以下方法:

  • 检查API Key是否正确。
  • 确保网络连接正常。
  • 调整代码中的参数设置。

总的来说,接入DeepSeek到Excel并不是很复杂,经过这几步,你就能快速上手。而且你会发现,借助AI的力量,你在处理Excel数据时会更高效、更智能,几乎不需要再为那些繁琐的重复性工作发愁了。

好了,今天的分享就到这里。希望你在操作的过程中能享受这个过程,变成一个AI加持的Excel高手!

最后,我为大家打造了一份deepseek的入门到精通教程,完全免费:https://www.songshuhezi.com/deepseek

同时,也欢迎加入下方的交流群,一起研究deepseek的最新玩法

图片