如何用Google Apps Script批量替换Google Slides表格所有单元格文本?
解决Google Slides表格全单元格文本替换问题
问题分析
你当前的代码仅手动指定了(0,0)和(1,0)两个单元格,无法覆盖所有单元格;使用循环时出错,大概率是因为索引使用错误——getCell()需要的是整数类型的行/列索引(从0开始计数),而非1.0这类浮点数。
修正后的代码
以下代码会遍历所有幻灯片中的所有表格,再逐个遍历表格的每一行、每一列单元格,完成文本替换:
var slides = deck.getSlides(); slides.forEach(function(slide){ var tables = slide.getTables(); tables.forEach(function(table){ // 获取表格的总行数和总列数 var rowCount = table.getNumRows(); var colCount = table.getNumColumns(); // 嵌套循环遍历所有单元格 for(var i = 0; i < rowCount; i++){ for(var j = 0; j < colCount; j++){ table.getCell(i, j).getText().replaceAllText('{{entreprise}}', entreprise); } } }); });
关键说明
getNumRows()和getNumColumns()用于获取表格的总行/列数,确保循环能覆盖所有单元格- 循环索引
i(行)和j(列)都是从0开始的整数,完全匹配getCell(rowIndex, columnIndex)的参数要求 - 这段代码可与你已实现的形状文本替换逻辑结合,一起完成全幻灯片的变量替换,适配Google表单触发的自动化场景
内容的提问来源于stack exchange,提问作者Mickael A
相关产品推荐
相关产品推荐

