简介:一套面向办公自动化场景的接入教程,完整讲解如何将Word与WPS接入DeepSeek R1,借助AI能力完成智能写作与文本处理。内容面向日常处理文档的职场人士、办公软件深度用户以及希望尝试AI辅助写作的个人用户,从注册DeepSeek开放平台、获取接口密钥开始,逐步演示两款软件各自的接入流程,并针对WPS额外补充了启用VB开发环境、安装插件与设置宏编辑器的操作指引。包体为单个PDF文件,共一份,大小976KB,以图文步骤和问题提示为主,适合边看边操作。目前已有超过一千人次学习下载,参考价值经过验证。文件中内容组织较为清晰,不仅覆盖了接口密钥安全保存、两款软件的配置细节等核心环节,还整理了插件安装提示、重启应用等实际操作中常见的排错思路,能有效降低配置门槛,减少试错成本。
1. 办公自动化新玩法:把 Word 和 WPS 直接接入 DeepSeek R1
先说结论:不需要写插件、不用装独立客户端,只用 Office 自带的 VBA 宏编辑器,你就能在 Word 里调起 DeepSeek R1 的 API,选中一段文字点个按钮就能润色、翻译、续写、转成 Markdown 或 LaTeX 公式。对于每天跟标书、论文、公文打交道的办公党来说,这比来回切浏览器复制粘贴省太多事了。这套流程同样适用于 WPS,差别只在第一步要先把开发工具菜单和宏编辑器找出来。适合谁?小企业文员、高校研究生、自媒体编辑,以及任何不想把文档内容往外乱贴给在线工具的谨慎用户——因为 API 调用比把全文丢进第三方网站要可控得多。
这份教程涉及一个关键前提:你需要在 DeepSeek 开放平台申请一个 API Key,并确保账户里有足够余额或免费额度。下面我把 Word 和 WPS 两条线路分别拆开,从申请密钥到宏代码逐行说明,最后集中讲我实际跑过的坑。
2. 准备工作:申请 DeepSeek API Key 与安全存放
2.1 注册并进入开放平台
打开 DeepSeek 官网后,用手机号或邮箱注册账号。登录后点击右侧或顶部的“API 开放平台”入口,这里就是你后续管理密钥和查看余额的控制台。
常见做法是先完成实名认证再创建 Key,否则部分模型的调用会被限制。认证通过后,在控制台左侧菜单里找到“API Keys”页面,点击“创建 API Key”,系统会要求你给它起一个名字,比如word-assistant,方便以后区分用途。创建成功后页面会显示一段以sk-开头的密钥字符串。
2.2 创建 Key 时必须注意的三件事
| 项目 | 说明 |
|---|---|
| 命名 | 按用途命名,如word-ai、wps-batch,便于后期限流排查 |
| 保存 | 只在创建时完整显示一次,务必立刻复制到密码管理器 |
| 计费 | Key 与账户余额挂钩,先确认是否有免费额度或完成充值 |
这里要特别强调安全:API Key 本质上就是你的钱包钥匙,泄露出去意味着别人可以拿你的额度跑任何请求。所以我一般建议在 Word 宏里不要硬编码 Key,而是把 Key 放在一个单独的文本文件里,例如C:\Users\你的用户名\deepseek_key.txt,VBA 启动时读文件取 Key。后面给出的代码就按这种方式写,既方便换 Key,也避免你随手把文档发给别人时把密钥也带出去。
3. Word 侧接入:宏编辑器调用 DeepSeek R1
3.1 打开 Word 的 VBA 编辑器
在 Word 中按Alt + F11(笔记本电脑可能要用Fn组合)即可打开 Visual Basic for Applications 编辑器。如果没有反应,说明你的 Office 安装时没装 VBA 组件,需要运行 Office 安装程序,在“修改”里找到“共享功能”下的“Visual Basic for Applications”并启用,重启 Word 后再试。
打开编辑器后,在左侧工程资源管理器里找到“Normal”或“Project(文档名)”,右键选择“插入” -> “模块”,给新模块随便起名,比如Module1。双击它,把下面这段代码粘贴进去。
3.2 核心代码:把选中文本发送给 DeepSeek
Function ReadApiKey() As String ' 从外部文件读取密钥,避免硬编码泄露 Dim fso As Object, file As Object, path As String path = "C:\Users\你的用户名\deepseek_key.txt" Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(path) Then Set file = fso.OpenTextFile(path, 1) ReadApiKey = Trim(file.ReadLine) file.Close Else ReadApiKey = "未找到密钥文件,请在指定路径创建" End If End FunctionPublic Function DeepSeekAsk(prompt As String) As String ' 调用 DeepSeek R1 的 chat 接口,返回模型回复文本 Dim http As Object, json As String, resp As String Dim key As String, content As String ' 1. 从密钥文件读取 Key key = ReadApiKey() If Left(key, 3) <> "sk-" Then DeepSeekAsk = key Exit Function End If ' 2. 构造请求 JSON(使用 R1 模型名称,注意保持转义正确) content = "{""model"": ""deepseek-chat""," & _ """messages"": [{""role"": ""user"", ""content"": """ & _ Replace(prompt, """", "\""") & """}], " & _ """temperature"": 0.7}" ' 3. 发送 HTTP POST 请求 Set http = CreateObject("MSXML2.XMLHTTP") http.Open "POST", "https://api.deepseek.com/chat/completions", False http.setRequestHeader "Content-Type", "application/json" http.setRequestHeader "Authorization", "Bearer " & key http.send content ' 4. 解析响应,提取 answer 字段 resp = http.responseText If http.Status = 200 Then ' 用字符串截取方式提取 content,避免引用 JSON 解析库 Dim startPos As Long, endPos As Long startPos = InStr(resp, """content"":") + Len("""content"":") startPos = InStr(startPos, resp, """") + 1 endPos = InStr(startPos, resp, """") DeepSeekAsk = Replace(Mid(resp, startPos, endPos - startPos), "\n", vbCrLf) Else DeepSeekAsk = "HTTP " & http.Status & ": " & resp End If End Function3.3 用 Sub 宏直接对选中文本生效
上面的是函数,还不能直接在 Word 里按快捷键使用。再补一个 Sub 过程,把选中的文字替换成 AI 返回的结果。
Sub AI_处理选中文本() ' 使用示例:选中一段文字,调用此宏,得到润色结果 Dim selectionText As String, result As String Dim prompt As String ' 缓存当前选中的内容 selectionText = Selection.Text ' 构造提示词:指明任务,把选中内容作为需要处理的素材 prompt = "请对下列文字进行润色,使其更书面化、逻辑更清晰,保持原文观点不变:" & vbCrLf & selectionText ' 调用 DeepSeek result = DeepSeekAsk(prompt) ' 如果返回的是错误信息则弹窗提示,否则替换选中文本 If Left(result, 5) = "HTTP " Or Left(result, 6) = "未找到" Then MsgBox result, vbCritical, "调用失败" Else Selection.Text = result End If End Sub代码说明:Selection.Text拿到的是当前高亮选中的文本,包括末尾的段落标记,替换前最好Trim一下。prompt变量用来拼装指令,这里是最简单的单轮润色,实际你可以把指令写得更细,比如加上字数限制、风格指定、输出格式。temperature参数控制随机性,0.7 是通用写作的中间档,想更稳定输出就降到 0.3。
回到 Word 界面,Alt + F8打开宏列表,选中AI_处理选中文本,点击“运行”。首次运行可能会提示“是否允许运行 VBA 宏”,确认即可。每次调 API 要一两秒到十几秒不等,取决于当前服务负载和文本长度。
3.4 给宏分配快捷键或工具栏按钮
每次都按Alt + F8再选宏太啰嗦。我习惯把宏绑定到Alt + D:
在“视图”->“宏”下拉菜单里选“查看宏”,选中刚才的宏后点“选项”,在弹出的对话框里输入快捷键字母D,保存即可。以后选中一段文字,按Alt + D,AI 结果直接替换选中的内容。
4. WPS 侧接入:从开发工具菜单到宏编辑器
4.1 WPS 的特殊之处:必须先启用 VB 环境
WPS 的默认安装不带 VBA 支持,这是很多人在 WPS 里找不到“宏编辑器”的直接原因。正确路径是:点击顶部“工具” -> “开发工具” -> “切换到 VB 环境”。
如果这一步系统弹出提示说要安装 VB 环境插件,直接点确认安装。安装完成后,务必重启 WPS,然后重新走一遍“工具”->“开发工具”,这时你会看到“宏编辑器”入口多出来了。注意 WPS 这里有个容易忽略的点:很多老版本的 WPS 需要单独下载 VBA 组件安装包,不弹自动安装提示的,你需要去 WPS 官网搜索“VBA 7.1 插件”手动安装。装完以后在“工具”->“开发工具”里能看到“VB 环境”才算成功。
4.2 在 WPS 宏编辑器中粘贴同一套代码
进入宏编辑器后,操作与 Word 完全一致:插入模块,粘贴上一章那段ReadApiKey、DeepSeekAsk和AI_处理选中文本代码。关掉编辑器,Alt + F8调出宏列表,运行你刚建的那个宏。
WPS 的宏界面虽然比 Word 朴素,但核心对象和方法都是兼容的。我实测过的版本是 WPS 2019 个人版加 VBA 7.1 补丁包,上述代码可以直接跑。使用 WPS 专业版的用户反馈也正常,唯一区别是专业版自带 VBA 组件,不需要额外装插件。
4.3 给 WPS 加按钮:快捷键与自定义选项卡
在 WPS 里给宏绑定快捷键的方法和 Word 不太一样,更直接:右键点击顶部工具栏的空白区域,选“自定义快速访问工具栏”,左侧把“宏”加进来。然后右键该按钮,选“指定宏”,找到AI_处理选中文本,确定。
之后你在 WPS 里选中一段文字,点工具栏那个按钮就能触发。相比快捷键,按钮的可发现性更强,毕竟大多数同事并不知道Alt + D是什么。如果你经常需要处理长文档,我建议把按钮做成“发送到 AI 但不自动替换”,也就是先弹出一个对话框显示 AI 结果,由你决定要不要替换,避免误操作把原文覆盖了。
5. 常见问题与避坑记录:从 HTTP 状态码到文本截断
5.1 宏提示“未找到密钥文件”
现象:运行宏后弹窗直接显示“未找到密钥文件”。原因一般有两种:ReadApiKey函数里写的路径不是你实际存放文件的路径,或者文件名拼写不一致。解决:先去资源管理器里确认文件确实存在,再看 VBA 代码里路径是否正确。特别注意 Windows 下反斜杠和汉字目录名的编码问题,最稳妥的做法是把密钥文件放在C:\根目录下或用户目录下,避免带中文的路径。
5.2 返回“HTTP 400:请求格式错误”
现象:调用后弹窗显示 HTTP 400。原因大概率出在 JSON 字符串的转义上,比如你的prompt里带了英文双引号,导致构造出的 JSON 不合法。我最初用Replace(prompt, """", "\""")只处理了双引号,没处理换行符和反斜杠本身,结果报错。解决:把Replace链式加上三行,先替换反斜杠\本身,再替换双引号,最后把vbCrLf统一替换为\n。这是最坑的一个细节,很多人折在这里。
5.3 返回“HTTP 401:Authentication Fails”
现象:状态码 401。原因基本可以锁定在密钥本身无效或已在平台删除。碰巧你在 A 电脑创建了 Key,复制到 B 电脑时没复制全,也是常见原因。解决:回到 DeepSeek 开放平台重新查看——注意平台出于安全策略不会二次显示完整 Key,你只能删除后重建。重建完记得同步更新本地密钥文件。
5.4 提示“HTTP 402”或“Insufficient Balance”
现象:HTTP 402 或“余额不足”。解决:去开放平台的“费用”页面充值。这里多说一句,免费额度用完后 API 会直接罢工,不会先给你一个告警邮件,所以建议在项目刚开始就设定一个预算告警值,我个人的习惯是阈值设置在 50 元,防止半夜跑批量任务时把余额打穿。
5.5 输出被截断,只有半截内容
现象:AI 返回内容只显示一半,或找不到content字段。原因:DeepSeekAsk函数里返回值的提取逻辑基于"content":"的后一个引号定位,如果模型回复里本身包含英文引号",会出现截断提前出现。解决:不要用字符串截取,改用 VBA 里加载 JSON 解析库的方式,比如引用ScriptControl或调用json转换。另一个折中方案是让DeepSeekAsk直接把整个resp写入文档末尾的隐藏书签里,但你实际上不太会去读原始 JSON,所以还是建议一次性把解析写好。
5.6 WPS 找不到“开发工具”菜单
现象:WPS 顶部根本没有“开发工具”入口。原因:部分个人版 WPS 默认把“开发工具”收进了“更多”菜单,或者被安全策略隐藏。解决:点击左上角“文件”->“选项”->“自定义功能区”,在“主选项卡”列表里勾选“开发工具”;若已勾选还看不到,就检查安全级别是不是被调到了“禁用所有宏”,把它改成“启用所有宏”或“提示”。
6. 进阶玩法:让 DeepSeek R1 成为文档工作流的中枢
基础宏能用以后,你会发现瓶颈不在代码,而在提示词设计上。这里分享三个我把这个资源落地成日常效率工具的具体技巧,每个都能直接抄。
技巧一:用提示词模板区分任务类型。把prompt变量抽象成几种常用模式,比如普通润色、正式公文改写、Markdown 转普通文本、公式图片描述转 LaTeX。你不需要改 VBA,只需在Selection.Text前加一句“请把以下内容转换为 LaTeX 公式格式:”,选中公式图片对应的 OCR 文字就能出初步结果。结合 WPS 里“公式图片转文字”类插件,这条链路几乎是写论文同学刚需。同理,DeepSeek 输出的 Markdown 文档想导出为 Word 时,先让它输出纯文本结构,再用 Word 的“从 Markdown 粘贴”功能,比手动清理舒服得多。
技巧二:批量处理整文档而不只选中一段。写一个遍历文档段落的For Each para In ActiveDocument.Paragraphs循环,对每段调用DeepSeekAsk,但要加DoEvents防止 Word 假死,并且必须在循环中插入Application.Wait限制请求频率。DeepSeek API 对单 Key 的并发有限制,我实际跑下来每秒钟不超过 2 个请求最稳妥。批量任务建议先用 20 段小规模试跑,确认没问题再全量处理。
技巧三:把 Word 宏和 WPS 宏合并成同一个模块。如果你们团队同时使用 Word 和 WPS,写代码时注意不要用 Word 特有的ActiveDocument,而使用ActiveDocument之外的通用对象,比如Selection、Range,两套环境都能跑。我最初在 Word 里写好脚本,复制到 WPS 时发现ActiveDocument.Range某些属性不兼容,后来强制统一用Selection就解决了。从那以后,我每次写完 VBA 都会先在 WPS 里试一遍,再把快捷键绑定好……这个习惯帮我避免了不止一次在演示现场翻车的尴尬。希望帮到你。
本文还有配套的精品资源,点击获取