用 GLM-5 教你写 Excel 自动化脚本,TypeScript小白也能秒懂
用 GLM-5 教你写 Excel 自动化脚本,TypeScript小白也能秒懂
日常繁琐的数据汇总和清洗让人抓狂
在日常办公中,Excel 绝对是离不开的神器。但有时候面对重复性很高的机械劳动,比如每天都要从几张表里把数据汇总到一张总表,或者把特定格式的数据清洗一遍,真的会让人抓狂。
这时候大家都会想到“宏”或者 VBA,但对于现在的 Excel Online 或者是 Teams 里的表格来说,VBA 并不支持。微软给出的解决方案是 Office Scripts,用的语言是 TypeScript。听起来是不是有点劝退?别担心,只要有 GLM-5 在手,写代码这件事其实比想象中简单得多。
为什么要关注 Office Scripts?
Office Scripts 在 Excel Online 中的代码编辑界面
很多人可能还习惯于在桌面版 Excel 里用 VBA,但随着协作办公的兴起,越来越多的数据直接在云端流转。Office Scripts 就是为了解决 Web 端自动化而生的。它不仅能运行在 Excel Online 上,还能通过 Power Automate(以前的 Flow)触发,实现真正的无人值守自动化。
但是,对于大部分没有编程基础的用户来说,直接上手 TypeScript 还是有点难度的。这时候,LLM(大语言模型)就是我们最好的“结对编程”伙伴。
GLM-5:你的专属 TypeScript 助教
市面上大大小小的 AI 模型那么多,为什么特别提 GLM-5?因为它在代码生成方面,尤其是针对中文语境下的需求理解,表现相当亮眼。比起直接让 ChatGPT 输出一大段可能还需要调试的代码,GLM-5 往往能给出更符合逻辑、甚至一步到位的解决方案。
特别是当你对 TypeScript 的语法(比如类型定义、接口、异步处理)不太熟悉时,GLM-5 可以像个耐心的老师一样,既给你代码,还告诉你为什么要这么写。
实战演练:从 0 到 1 写脚本
假设我们有一个很实用的场景:我们需要把“Sheet1”中 A 列的所有数据,复制到“Sheet2”的 C 列,并且去掉空行。
1. 描述需求
你不需要懂 TypeScript 的语法,只需要用自然语言把需求告诉 GLM-5:
“请帮我编写一个 Office Scripts 脚本,用于 Excel Online。需求是:获取名为 'Sheet1' 的工作表,读取 A 列所有单元格的值,过滤掉空值,然后将这些值写入到名为 'Sheet2' 的工作表的 C 列中。”
2. 获取代码
GLM-5 通常会直接生成一段结构完整的代码。大致会包含以下几个核心部分:
function main(workbook: ExcelScript.Workbook):这是脚本的入口函数。- 获取工作表对象:
workbook.getWorksheet('Sheet1')。 - 获取区域和数值:
sheet.getRange('A:A').getValues()。 - 数据处理:使用 JavaScript 的数组方法(如
filter)来清洗数据。 - 写入目标区域:计算目标行数并赋值。
3. 调试与优化
虽然 GLM-5 很强,但 AI 写的代码也不是 100% 完美的。有时候它会忽略一些边界情况,比如目标表已经有数据了怎么办?或者数据量特别大导致性能问题怎么办?
这时候我们可以追问:
“如果目标列已经有数据了,请先清空再写入,并且为了性能考虑,请一次性写入而不是循环写入。”
GLM-5 会根据你的反馈修改代码,加入清空操作(getRange().clear())并优化数据写入逻辑。
常见问题与解决方案
在实际使用过程中,你可能会遇到一些小坑,这里整理几个最常见的供大家参考。
Q: 提示“Object is undefined”怎么办?
A: 这通常是因为工作表名称写错了,或者该工作表不存在。检查一下你传入的字符串是否和 Excel 下方的标签名完全一致,注意空格。
Q: 代码复制进去报错说“无法找到类型 'ExcelScript'”。
A: 这通常是因为在 Web 端编辑器中不需要手动 import 类型定义。如果你是在本地 VS Code 环境开发,则需要安装 @microsoft/office-scripts 类型声明包。如果是直接在网页编辑器里,确保不要删除最顶部的类型引用注释。
Q: 数据量很多,运行脚本很慢。
A: 避免在循环中频繁调用 setValue。务必先将数据处理好存入一个二维数组,最后调用一次 getRange().setValues(values)。这是 Office Scripts 性能优化的核心。
结语
办公自动化的门槛从来没有像现在这么低过。以前你需要啃厚厚的编程书,现在有了 GLM-5 这样的得力助手,你只需要学会如何提问,如何清晰地描述你的业务逻辑,剩下的脏活累活就交给 AI 吧。
从今天起,试着把你脑海里那个“如果Excel能自动帮我做这个就好了”的念头,用 GLM-5 变成现实吧!

评论已关闭