如何通过Google Apps Script批量翻译Google Sheets内容并保留格式?
解决Google Sheets批量翻译保留表格格式的问题
问题根源是LanguageApp.translate接收二维数组时会自动将其扁平化为逗号分隔的字符串,导致翻译结果丢失原有的行/单元格结构。
解决方案
保留原二维数组的结构,逐个翻译数组内的非空元素,处理后的数组可直接用setValues写入,完美对应原表格格式,且无需逐单元格操作或添加延迟。
修改后的代码示例:
var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("你的工作表名称"); // 替换为实际表名 var range1 = sheet1.getRange("A:A").getValues(); // 获取原数据的二维数组 var translatedText = range1.map(row => row.map(cell => cell ? LanguageApp.translate(cell, 'ko', 'en') : '') ); // 将翻译结果写入目标列(示例为B列) sheet1.getRange(1, 2, translatedText.length, translatedText[0].length).setValues(translatedText);
代码说明
range1.map(row => ...):遍历原数组的每一行(对应表格的每一行)row.map(cell => ...):遍历每行中的每个单元格(对应表格的每个单元格)cell ? LanguageApp.translate(...) : '':仅对非空单元格执行翻译,空单元格保持为空,避免产生多余内容- 用
setValues一次性写入翻译后的二维数组,效率远高于逐单元格操作,且完全保留原表格的行/列结构
效果验证
原数据数组[[안녕하세요], [사과], [], [바나나]]经过处理后,会得到:[[hello], [apple], [], [banana]]
直接写入表格后,每个内容会对应到原位置的单元格中,不会出现合并到一个单元格的问题。
内容的提问来源于stack exchange,提问作者icecream sugar black
相关产品推荐
相关产品推荐

