Python技术迷

Excel中接入DeepSeek!手把手教程!

如何将DeepSeek这个强大的AI工具接入到Excel中。

你可能会想:“这不就是将AI的能力带入到表格里吗?”没错,但操作起来并没有那么复杂。

其实,只需要一些基本的VBA编程技巧,就能让Excel和DeepSeek的API无缝对接,帮助我们更高效地处理数据。

Image

作为程序员,我觉得这种工具的结合,既方便又有趣,今天就和大家分享一下这个过程。

实现原理简述

在正式开始之前,先跟大家简单科普一下原理。其实,通过DeepSeek提供的API,我们就能在Excel里调用它的AI能力。怎么做到的呢?其实就是借助VBA(Visual Basic for Applications)编写一些简单的代码,然后通过DeepSeek的API接口,将数据发送给它,最后再接收返回的AI结果。

Image

这个过程需要一点点编程基础,但如果你是小白,照着教程一步一步来,也是完全能轻松搞定的。

第一步:准备工作

在正式操作之前,首先需要做好几项准备工作。这些步骤可能看起来有点琐碎,但做好了后面会非常顺利:

1.获取DeepSeek的API Key

要用DeepSeek的服务,首先得去官网申请一个API Key。由于DeepSeek的服务器资源比较紧张,官方已经暂停了API充值服务,但你可以通过腾讯云:https://curl.qcloud.com/T3M5yBHp 申请 API Key。目前能正常使用,推荐!

💡 注意:不管用哪个 API Key,对应平台账户里一定要有余额

2.启用Excel的开发者工具

你需要在Excel里启用开发者工具,这样才能使用VBA进行编程。操作步骤其实挺简单:

做好这一步后,Excel菜单栏就会多一个“开发工具”选项卡。

打开Excel,依次点击“文件 -> 选项 -> 自定义功能区”,然后勾选“开发工具”,最后点击“确定”。

Image

3.调整信任设置

由于我们会运行宏和VBA代码,得确保Excel允许这些操作:

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

Image

第二步:编写VBA代码

这一步是关键,接下来我们要通过VBA代码连接DeepSeek的API,进行数据的发送和接收。下面是具体的操作步骤:

打开VBA编辑器

在Excel中,点击菜单栏的“开发工具 -> Visual Basic”,这样就会弹出一个新的VBA编辑器窗口。

Image

在编辑器中,点击“插入 -> 模块”,创建一个新的代码模块,这样就可以开始写代码了。

Image

粘贴核心代码

Image

在新创建的模块中,我们将粘贴下面的核心代码:

'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

记得在代码中把API_KEY替换成你自己的DeepSeek API Key。

第三步:自定义功能区

为了让操作更加方便,我们可以将这个功能加到Excel的菜单栏,做到一键操作。

  1. 添加自定义按钮

  • 在Excel中,点击“文件 -> 选项 -> 自定义功能区”,然后右键点击“开发工具”选项卡,选择“添加新组”。

  • 选中新建的组,右键重命名为“DeepSeek”,并为它选一个喜欢的图标。

    Image

  • 绑定宏到按钮

  • 在左侧的命令列表中,找到刚才创建的宏“MainTask”,然后点击“添加”到右侧的DeepSeek组中,点击“确定”完成操作。

    Image

    第四步:测试功能

    现在,我们来验证一下DeepSeek是否成功接入Excel,确保一切设置正确:

    1. 打开Excel工作表,输入一些数据,例如:“你好啊!”。
    2. 选中这段文字,点击菜单栏中添加的“MainTask”按钮。
    3. 如果一切正常,DeepSeek会返回一段文字,并显示在Excel表格的指定单元格中。

    Image

    Image

    额外提示

    在使用过程中,可能会遇到一些小问题,以下是一些常见的处理方法:

    引用必要的库

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

    • Microsoft Scripting Runtime
    • Microsoft XML, v6.0

    Image

    处理可能的错误

    1. 如果在执行过程中出现错误,检查以下几点:

    • 确保API Key没有错。
    • 网络连接是否正常。
    • API请求参数是否正确。

    说到这里,相信你已经对如何将DeepSeek接入Excel有了清晰的了解。其实,整个过程并没有想象中的复杂,作为程序员的我也经常用这种方式将AI工具接入到日常工作中,省时省力,效率倍增。只要按部就班,任何人都能快速掌握。

    试试看,把这个AI小助手加入到你自己的工作中,感觉会很不一样哦!

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

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

    图片