我是一位非常新手的代码编写者,也是一名老师,所以我想编写一个Google Doc脚本来在Google Doc的段落中查找不正确的单词,然后将其替换为正确的单词。但是,我希望从Google表格工作表中提取正确和错误的单词。
我有一些代码(见下文)可以找到并替换单词(嗨->你好),但这对用户不友好。
我正在尝试使用sheetssheets.value.get,但目前还超出我的范围。我在轨道上还是附近没有?有任何想法吗?谢谢。
答案 0 :(得分:0)
要回答您的问题,我将重新考虑甚至从电子表格中提取值。您要使用 javascript对象。对象是用于存储键值对的位置。它们在存储和检索数据方面都非常高效。
如果可能的话,我会将单词和替换词作为键值对存储在对象中,如下所示:
var myObject = {
"hi": "hello",
...
}
如果您尝试遍历电子表格的每一行以查找匹配的更正,则随着文档和电子表格越来越长,您的代码将花费很长的时间。
您可以将单词和替换词存储在工作表中,检索所需的单元格范围,然后将键和值放入对象,如下所示:
(A列是键[“ hi”],B列是值[“ Hello”])
var spreadsheet = SpreadsheetApp.openById('SPREADSHEET ID HERE');
var sheet = spreadsheet.getSheetByName('SHEET NAME HERE')
var range = sheet.getRange('A1:B100');
var values = range.getValues();
var myObject = {};
for (row in values) {
myObject[values[row][0]] = values[row][1];
}
myObject
看起来像这样:
{
"hi": "hello",
...
}
现在,只需遍历对象并像附加屏幕快照一样进行替换,就像这样:
for (key in myObject) {
body.replaceText(key, myObject[key]);
}
此外,您可能希望使用 regex 模式,而不是简单地搜索键并进行替换。当前的操作方式无法避免将“ t hi s”更改为“ t hello s”。下面的模式将仅标识与key
匹配的单词,而不标识文本中任何位置的字母组合。
for (key in myObject) {
body.replaceText('/\b' + key +'\b/gi', myObject[key]);
}