是否可以将Google表格数据插入Google Doc脚本?

时间:2019-06-05 23:21:30

标签: google-apps-script google-sheets google-docs-api

我是一位非常新手的代码编写者,也是一名老师,所以我想编写一个Google Doc脚本来在Google Doc的段落中查找不正确的单词,然后将其替换为正确的单词。但是,我希望从Google表格工作表中提取正确和错误的单词。

我有一些代码(见下文)可以找到并替换单词(嗨->你好),但这对用户不友好。

Find and Replace code

我正在尝试使用sheetssheets.value.get,但目前还超出我的范围。我在轨道上还是附近没有?有任何想法吗?谢谢。

1 个答案:

答案 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]);
}