通过Google Apps Script可以实现Google Sheets和Google Docs的联动,根据Sheets中选定范围的单元格内容,自动修改Google Docs内对应文本的颜色,适合需要同步展示数据状态的场景。

实现原理说明
Google Apps Script是Google提供的脚本平台,支持操作Google旗下的各类办公产品。核心逻辑是先获取当前Sheets中用户选定的单元格范围内容,再打开目标Docs文档,遍历Docs中的文本,找到与Sheets选定内容匹配的文本后修改其颜色属性。
前期准备工作
- 准备一个Google Sheets表格,填入需要关联的内容数据
- 准备一个Google Docs文档,文档中包含需要和Sheets内容匹配的文本
- 记录两个文件的ID,文件ID在文件链接中可以找到,比如链接为https://docs.google.com/spreadsheets/d/abc123/edit,那么abc123就是Sheets的文件ID
编写脚本步骤
打开脚本编辑器
打开你的Google Sheets表格,点击顶部菜单栏的扩展程序,选择Apps Script,进入脚本编辑页面。
编写核心代码
在脚本编辑页面删除默认内容,粘贴以下代码:
function changeDocsTextColorBySheetsRange() {
// 获取当前活跃的Sheets表格
var sheet = SpreadsheetApp.getActiveSpreadsheet();
// 获取用户当前选定的单元格范围
var range = sheet.getActiveRange();
// 获取选定范围的所有值,返回二维数组
var rangeValues = range.getValues();
// 将二维数组扁平化,得到所有选定单元格的内容列表
var targetTexts = [];
for (var i = 0; i < rangeValues.length; i++) {
for (var j = 0; j < rangeValues[i].length; j++) {
if (rangeValues[i][j] !== '') {
targetTexts.push(String(rangeValues[i][j]));
}
}
}
// 替换为你的Google Docs文件ID
var docsId = '你的Docs文件ID';
// 打开目标Docs文档
var doc = DocumentApp.openById(docsId);
var body = doc.getBody();
// 遍历所有需要匹配的文本
for (var k = 0; k < targetTexts.length; k++) {
var currentText = targetTexts[k];
// 查找Docs中所有匹配当前文本的内容
var searchResult = body.findText(currentText);
while (searchResult !== null) {
// 获取匹配到的文本元素
var textElement = searchResult.getElement();
var startOffset = searchResult.getStartOffset();
var endOffset = searchResult.getEndOffsetInclusive();
// 设置文本颜色为红色,可修改颜色值
textElement.setForegroundColor(startOffset, endOffset, '#FF0000');
// 继续查找下一个匹配项
searchResult = body.findText(currentText, searchResult);
}
}
// 提示执行完成
SpreadsheetApp.getUi().alert('文本颜色修改完成');
}
配置脚本权限
点击脚本编辑页面顶部的运行按钮,首次运行会弹出权限申请窗口,按照提示选择你的Google账号,允许脚本访问你的Sheets和Docs文件即可。
使用方法
- 在Google Sheets中选定需要关联的单元格范围,确保单元格内容和Docs中要修改颜色的文本完全一致
- 回到脚本编辑页面,点击运行
changeDocsTextColorBySheetsRange函数 - 等待脚本执行完成,打开目标Docs文档,就可以看到匹配的文本已经变成设置的颜色
注意事项
- Sheets中选定单元格的内容和Docs中的文本必须完全匹配,包括大小写和空格,否则无法识别
- 如果需要修改颜色值,可以调整代码中
#FF0000的部分,替换为其他十六进制颜色值即可 - 如果Docs中同一个文本出现多次,脚本会修改所有匹配项的颜色
- 如果选定范围包含空单元格,脚本会自动跳过空值,不会影响执行结果
如果需要频繁使用这个功能,可以在Sheets中插入一个自定义菜单,点击菜单直接触发脚本,不需要每次都打开脚本编辑页面。
Google_Apps_ScriptGoogle_SheetsGoogle_Docs文本颜色修改修改时间:2026-06-17 23:39:26