2017-05-09 4 views
0

J'utilise IFTTT pour envoyer des formulaires envoyés à mon adresse e-mail à une feuille Google. Le contenu est collé dans la colonne A dans un grand bloc, et je ne peux pas comprendre comment diviser le texte en colonnes d'une manière qui se présente bien. Idéalement, je voudrais inclure uniquement les réponses aux questions sur la forme dans les colonnes à droite de la colonne A.Script de "fractionner du texte en colonnes" avec un formulaire dans Google Sheets

Voici un échantillon de ce qui sera collé dans la colonne 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: 

[email protected] 

Q1: 

Yes 

Q2: 

No 

Q3: 

yes 

Q4: 

no 

Q5: 

no 

Est Y at-il une sorte de script que je pourrais utiliser pour afficher le nom, l'adresse e-mail et les réponses aux 5 questions dans les 7 colonnes à droite de la colonne A?

Répondre

0

J'ai une solution rudimentaire sur laquelle vous pouvez construire si vous le souhaitez.

Ma solution prend quelques choses, d'une part le nom est toujours va être deux mots, d'autre part les réponses vont toujours être oui ou non.

Cela fonctionne pour un certain nombre de lignes dans la colonne A.

La solution complète est basée sur le fractionnement jusqu'à la chaîne d'une manière particulière, et ce n'est pas très fluide car elle suppose la quantité des espaces et la mise en forme sera toujours le même. C'est un début :)

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