首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将DeepSeek AI集成到Office/WPS全流程解析及代码实现

    近期,网络上涌现大量关于DeepSeek接入Word/WPS的视频教程,但多数内容存在隐藏门槛,如要求加入付费社群或拒绝提供核心代码,这种行为被质疑存在商业欺诈嫌疑。为打破技术壁垒,本文将公开完整的VBA代码实现方案,并逐行注释关键逻辑,确保用户无需依赖第三方工具或付费服务即可自主完成集成。

一、技术方案设计思路

(1)采用VBA宏实现功能拓展

(2)通过HTTP请求调用DeepSeek API

(3)交互式内容生成设计

二、环境准备步骤

1、获取DeepSeek API密钥

登录DeepSeek开发者平台

创建新应用并获取API Key

2、启用Office/WPS宏功能

文件 > 选项 > 信任中心 > 启用所有宏

保存文档为启用宏的格式(.docm)

三、完整实现代码(含逐行解析)

Function ChatToDeepSeek(chatText As String) As String   'API接口地址   Dim api_url As String   'DeepSeek官方申请的API Key   Dim api_key As String   '发送给DeepSeek的内容,jason格式的文本   Dim SendContent As String   'Http请求对象   Dim HttpRequest As Object   '请求返回的错误码,http请求正常响应时返回200   Dim status_code As Integer   'http请求返回内容   Dim response As String   '设置DeepSeek-V3 API接口地址   api_url = "https://api.deepseek.com/chat/completions"   '设置DeepSeek官方申请的API Key(在的epseek官方开放平台注册后创建,注意:只在首次创建时自动复制后续无法复制,所以创建时记得保存)   api_key = "xxxxxx,请替换为你在DeepSeek官方申请的API Key"   '使用jason格式封装请求内容,主要包括使用的模型(deepseek-chat)和发送的给DeepSeek的文本内容。 通过指定 model='deepseek-chat' 即可调用 DeepSeek-V3。   SendContent = "{""model"": ""deepseek-chat"", ""messages"": [{""role"":""user"", ""content"":""" & chatText & """}], ""stream"": false}"   '实例化http请求对象,并调用接口获取返回数据   Set HttpRequest = CreateObject("MSXML2.XMLHTTP")   With HttpRequest       .Open "POST", api_url, False       .setRequestHeader "Content-Type", "application/json"       .setRequestHeader "Authorization", "Bearer " & api_key       .send (SendContent)       status_code = .Status       response = .responseText   End With   ' 弹出窗口显示 API 响应(调试用)   ' MsgBox "API请求返回内容: " & response, vbInformation, "调式信息"   ' 请求正常返回   If status_code = 200 Then       ChatToDeepSeek = response   ' API key 错误,认证失败 解决方法:请检查您的 API key 是否正确,如没有 API key,请先 创建 API key   ElseIf status_code = 401 Then       ChatToDeepSeek = "Error: API key 错误,认证失败" & " - 响应内容:" & response       ' 账号余额不足,解决方法:请确认账户余额,并前往 充值 页面进行充值   ElseIf status_code = 402 Then       ChatToDeepSeek = "Error: 账号余额不足" & " - 响应内容:" & response       ' 服务器内部故障 解决方法:请等待后重试   ElseIf status_code = 500 Then       ChatToDeepSeek = "Error: 服务器内部故障,请稍后重试" & " - 响应内容:" & response       '服务器繁忙 解决方法:请等待后重试   ElseIf status_code = 503 Then       ChatToDeepSeek = "Error: 服务器繁忙,请稍后重试" & " - 响应内容:" & response       ' 其他未知错误   Else       ChatToDeepSeek = "Error: " & status_code & " - " & response   End If   Set HttpRequest = Nothing End FunctionSub DeepSeekV3()   ' 聊天内容,即文档中选中用于和deepseek聊天的内容   Dim chatText As String   ' 对话返回的内容   Dim responseText As String   '正则表达式对象   Dim regex As Object   '正在表达式匹配结果   Dim matches As Object   '通过正则表达式解析后得到的deepseek回复对话内容   Dim content As String  '选中的内容   Dim SelectionText As Object   ' 保存文档中选中提交对话文本内容,即提出的问题   Set SelectionText = Selection.Range.Duplicate   ' 替换一些不必要的空格、符号等   chatText = Replace(Replace(Replace(Replace(Replace(Selection.Text, "\", "\\"), vbCrLf, ""), vbCr, ""), vbLf, ""), Chr(34), "\""")   responseText = ChatToDeepSeek(chatText)   ' 接口调用没有错误但没有内容返回或返回空行   If Trim(responseText) = "" Then       MsgBox "接口没有返回数据或返回空行", vbCritical       '调用API接口后DeepSeek正常返回聊天内容   ElseIf Left(responseText, 5) <> "Error" Then       ' 创建正则表达式对象       Set regex = CreateObject("VBScript.RegExp")           '解析对话返回内容       With regex           .Global = True           .MultiLine = True           .IgnoreCase = False           .Pattern = """content"":""(.*?)"""       End With           Set matches = regex.Execute(responseText)       If matches.Count > 0 Then           content = matches(0).SubMatches(0)           content = Replace(Replace(content, """", Chr(34)), """", Chr(34))           content = Replace(Replace(content, "\n", Chr(13)), "**", "")                   ' 将输入光标移到选中文本的末尾           Selection.Collapse Direction:=wdCollapseEnd                   ' 在选中内容后面插入一个新段落           Selection.TypeParagraph                   ' 设置新段落的内容为解析对话返回的内容           Selection.TypeText Text:=content                   ' 插入一个换行符           Selection.InsertBreak Type:=wdLineBreak                   ' 重新选中提交的对话内容           SelectionText.Select       Else           MsgBox "返回内容解析失败,请检查正则表达式是否正确", vbExclamation       End If       Else       ' 显示调用接口返回的异常信息       MsgBox response, vbCritical   End If End Sub

四、Word配置过程(WPS类同)

1、启用宏与开发者工具:

Word/WPS中需开启宏功能(文件选项信任中心启用所有宏)

启用开发者工具菜单(文件选项自定义功能区勾选“开发工具”)

2、操作步骤:

(1)新建一个Word文档,点击 文件 -> 选项 -> 自定义功能区,勾选“开发者工具”。

(2)点击 信任中心 -> 信任中心设置,选择“启用所有宏”与“信任对VBA......”。

(3)接下来点击确定,我们发现选项卡中出现了“开发者工具”,点击开发者工具,点击Visual Basic,在新窗口中的插入,选择插入模块,把接入deepseek的VBA代码(参见我发布的文章)复制到编辑区中,替换官方申请的API key。完成后,可直接关闭窗口。

(4)点击 文件 -> 选项 -> 自定义功能区,右键开发工具,点击添加新组命名为DeepSeek。选择DeepSeek(自定义),选择左侧的命令为“宏”,找到我们添加的DeepSeekV3,选中后点击添加并重命名为“生成”。

完成后就在开发工具那里看到了DeepSeek的生成操作,现在就可以和DeepSeek聊天了。

(5)如果你想要所有文档都能够用到这个功能,那么请保存启用宏的Word模板,保存路径:

C:\Users\用户名\AppData\Roaming\Microsoft\Word\STARTUP

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OizXRcVfGkcrDjvX5O2XgAbw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券