Google表格中带有表单的“将文本拆分为列”的脚本

时间:2017-05-09 17:40:04

标签: google-sheets google-sheets-api ifttt

我正在使用IFTTT将发送到我的电子邮件地址的表单推送到Google表格。内容被粘贴到一个大块的A列中,我无法弄清楚如何以格式良好的方式将文本拆分成列。理想情况下,我只想在A栏右侧的栏中列出表格上的问题答案。

以下是粘贴到A列的内容示例:

New customer message on May  9, 2017 at 12:15 PM

You received a new message from your Online Store's contact form.

Name:

Jon Snow

Email:

sample@gmail.com

Q1:

Yes

Q2:

No

Q3:

yes

Q4:

no

Q5:

no

我是否可以使用某种脚本来显示A栏右侧7列中的5个问题的名称,电子邮件地址和答案?

1 个答案:

答案 0 :(得分:0)

我有一个基本的解决方案,如果你愿意,你可以继续。

我的解决方案假设一些事情,首先名称总是两个字,其次答案总是是或否< / strong>即可。

这适用于A列中的任意行数。

整个解决方案基于以特定方式拆分字符串,并且它不是非常流畅,因为它假定空格量并且格式将始终相同。这是一个开始:)

    function myFunction() {
  var ss = SpreadsheetApp.getActiveSheet();
  var dataRangelength = ss.getDataRange().getLastRow();  
  var strRef = ss.getRange("A1:A" + dataRangelength);
  var str = strRef.getValues();

  for (var i = 0; i < dataRangelength; i++) {
    var row = str[i];
    var A1ref = i + 1
    var rowRef = ss.getRange("A" + A1ref);
    if (row != "") {

  var arr = row.toString().split(" ");
  var arr1 = arr[20].toString().split("\n");
  var arr2 = arr[21].toString().split("\n");

   rowRef.offset(0, 1).setValue(arr1[4] + " " + arr2[0]);
   rowRef.offset(0, 2).setValue(arr2[4]);
   rowRef.offset(0, 3).setValue(arr2[8]);
   rowRef.offset(0, 4).setValue(arr2[12]);
   rowRef.offset(0, 5).setValue(arr2[16]);
   rowRef.offset(0, 6).setValue(arr2[20]);
   rowRef.offset(0, 7).setValue(arr2[24]);
    }}
}