Excel接入DeepSeek,实现自动做表:从手动到自动化的实践指南 

[复制链接]
发表于 2026-10-6 11:52:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

Excel 是办公里数据处理的主战场,但重复的格式整理、口径统一、报表生成,靠手动公式既慢又容易错。把大语言模型能力接进 Excel,让它在表格里完成「读数据 → 理解意图 → 产出结构化结果」这条链路,是很多团队已经在用的提效方式。本文说明接入前的准备、在 VBA 里发 HTTP 请求的实现思路、以及落地时必须考虑的配额与数据安全问题。

一、接入前的准备

1.1 工具与账号

  • Excel 版本:需要支持 VBA,Office 365 及较新的桌面版都没问题。
  • 模型服务:到相应开放平台注册账号,拿到 API 密钥(Key)。各家对新用户提供的新手额度政策不同,以官方页面公布为准。
  • VBA 基础:能看懂过程、函数、字符串拼接这三样就够写第一个例子。

1.2 数据要先洗干净

  • 把待处理的数据整理成规整表格,日期是日期、数值是数值、文本是文本,别在一列里混着放。
  • 需要对接外部数据源(数据库、内部接口)时,提前拿到接口文档与访问权限。
  • 涉密数据先判断能不能外发,这一条比效率更重要,后面单独讲。

二、在 Excel 里启用 VBA

  1. 打开 Excel,按 Alt + F11 打开 VBA 编辑器。
  2. 左侧找到当前工作簿,选「插入 → 模块」,新建一个标准模块,代码就写在这里。

三、用 VBA 调用模型接口

核心思路是:用 Windows 自带的 WinHTTP 对象发一个 HTTP 请求,把表格数据打包进请求体,拿回来的内容解析后写回工作表。

3.1 发送请求的骨架

Sub CallModelAPI()
    Dim http As Object
    Set http = CreateObject("WinHttp.WinHttpRequest.5.1")

    ' 接口地址与密钥
    Dim apiUrl As String
    Dim apiKey As String
    apiUrl = "https://<你的接口地址>/v1/chat/completions"
    apiKey = "你的密钥"

    http.SetRequestHeader "Content-Type", "application/json"
    http.SetRequestHeader "Authorization", "Bearer " & apiKey

    ' 构造请求体
    Dim requestBody As String
    requestBody = "{""model"": ""<模型名>"", ""messages"": [{""role"": ""user"", ""content"": ""<任务描述>""}], ""stream"": false}"

    http.Open "POST", apiUrl, False
    http.Send requestBody

    If http.Status = 200 Then
        Dim responseText As String
        responseText = http.ResponseText
        ' 这里把返回结果写入工作表
    Else
        MsgBox "调用失败,状态码: " & http.Status
    End If

    Set http = Nothing
End Sub

几个要点:请求体是 JSON 字符串,VBA 里要靠双引号转义拼出来;stream 设成 false 在 VBA 里更省事,流式输出在宏里处理起来麻烦;密钥不要硬编码进文件后到处发,应放在受控位置,或者做成从单元格里读。

3.2 把表格读成 JSON

写个函数扫指定工作表的行,拼成 JSON 数组,供上面用:

Function GetSheetData() As String
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("数据表")

    Dim dataStr As String
    Dim i As Long, j As Long
    Dim lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

    For i = 2 To lastRow
        dataStr = dataStr & "{"
        For j = 1 To 3
            dataStr = dataStr & Chr(34) & ws.Cells(1, j).Value & Chr(34) & ": " & Chr(34) & ws.Cells(i, j).Value & Chr(34) & ","
        Next j
        dataStr = Left(dataStr, Len(dataStr) - 1)
        dataStr = dataStr & "},"
    Next i

    GetSheetData = Left(dataStr, Len(dataStr) - 1)
End Function

3.3 把结果写回工作表

拿回来的文本解析后按列写入结果表,最后弹个提示告诉用户跑完了。写之前先用 ClearContents 清掉旧内容,避免行数和上次不一致时出现脏数据。

四、数据安全是先决条件

  • 敏感数据不外发:客户名单、薪酬、合同、源代码片段这类内容,发送前先脱敏(姓名掩码、手机号打星、金额取整),或者在内网部署模型。
  • 密钥保管:API Key 相当于是你的账单凭证,别贴在共享文档里,也别跟着工作簿一起发出去。
  • 审计留痕:谁在什么时候发了什么内容,最好在表上留一列记录,出了问题能追溯。
  • 结果复核:模型产出的结论要人工核一遍再对外,尤其是涉及金额、法务、对外披露的数字。
  • 权限最小化:工作簿文件本身设好打开密码,别让无关人拿到带密钥的表格。

五、落地场景与效果边界

  • 适合:口径统一类文本加工(分类打标、字段补全、摘要)、批量格式转换、重复报表的初稿生成。
  • 不适合:需要精确算术保证的核算环节(模型可能算错一位)、强合规场景的最终定稿、实时性要求极高的接口。
  • 成本:按调用量计费,大批量跑之前先用几百行试跑,估算单条成本再放量;适当的调用间隔还能避开速率限制。
  • 断网可用:企业内网环境可以把模型服务换成内部部署的地址,代码结构不用大改。

六、小结

把模型能力接进 Excel,本质上就是「用 VBA 发一个 HTTP 请求,把结果写回格子」。技术上不难,真正决定能不能推广的是两件事:数据能不能合规外发,以及产出结果谁负责复核。把这两条定死,剩下的就是慢慢攒自己的模板库了。

qidao123.com企服评测-应用市场 编辑提示:本文为办公自动化接入大模型的实现思路整理,示例为通用 HTTP 调用骨架,不含任何真实接口地址与密钥,也未引用外部链接;实际接口与配额政策请以各家开放平台的官方文档为准。

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表