首页 > 解决方案 > 在使用 Apps 脚本创建的谷歌表单中添加换行符

问题描述

我正在从电子表格中获取内容并通过 Google Apps 脚本将其添加为表单中的项目。当我在单元格中有多行文本(带有新换行符的文本)时,在生成表单时,它会出现在一行中。我需要和我在工作表中给出的完全一样。有没有办法使用 Apps 脚本来实现这一点?

这是我用来将数据从 Sheet 复制到 crate 表单中的代码:

     var ss = SpreadsheetApp.openByUrl(mySheetURL);
     var sheet = ss.getSheets()[0];
     var cellRange = 'C2:C6'
     var ques = sheet.getRange(cellRange).getValues();
     var newForm = FormApp.openByUrl(myformURL);
     var QOD = newForm.addMultipleChoiceItem();
     QOD.setTitle(ques);

我的电子表格单元格中的内容:

形式内容:

在此处输入图像描述

标签: google-apps-scriptgoogle-sheetsgoogle-formsgoogle-form-quiz

解决方案


Apps 脚本按预期从表格检索和传递换行符到表单

唯一的问题是如何检索值:

  • cellRange[1][1]不是一个有效的请求,因为范围是一个类,而不是一个二维数组。

  • 相反,它values确实会为您返回一个网格,您可以通过它们的索引检索网格元素。请注意,索引以 [0] 开头,而不是 [1]。

  • 因此getRange(cellRange).getValues()[1][1]会返回您,null因为cellRange = 'C2:C6'它只包含一列并且它具有索引 [0]。

正确要求:

     var ss = SpreadsheetApp.openByUrl(mySheetURL);
     var sheet = ss.getSheets()[0];
     var cellRange = 'C2:C6'
     var ques = sheet.getRange(cellRange).getValues()[0][0];
//also possible: var ques = sheet.getRange('C2').getValue();
     var newForm = FormApp.openByUrl(myformURL);
     var QOD = newForm.addMultipleChoiceItem();
     QOD.setTitle(ques);

推荐阅读