2015-03-13 2 views
0

Я очень новичок в написании Google и просто увидел свет (я думаю).Как получить формы Google в ответ на почту

Я нашел код в Интернете (спасибо большое), который я использую для запуска электронной почты при вводе формы.

Я использую форму google для сбора данных для своей работы, и когда я был на служебных визитах, я создал форму для ввода различных данных. Иногда визит будет выставлен счет, а иногда и нет. Теперь к моей проблеме.

С кодом У меня есть листок google, который запускает электронное письмо, когда я ввожу «да или нет» в счет-фактуру. Лист google проверяет слова «да» или «нет», и когда я выбираю «ДА», он вызывает сообщение, и он будет отправил электронное письмо нашей леди экономики, чтобы клиент был выставлен счет. Отлично до сих пор

Но я не знаю, как я могу получить новые введенные данные (строки) по почте, чтобы она не нуждалась в просмотре в моем листе Google (она говорит, что трудно ориентироваться все строки и «это никогда не произойдет»).

Так как я могу получить свои недавно введенные formdata из моей (строки) в почту, вызванную «да» (se код, сообщения, которые он на датском извините).

Было бы хорошо, если бы я мог определить, какие клетки/информацию, которую я хотел, чтобы принести на мою почту, но я, очевидно, не умный, но достаточно ;-)

function onEdit(e) { 
var ss = SpreadsheetApp.getActiveSpreadsheet();//Get the spreadsheet 
var sheet = ss.getActiveSheet()//Get the active sheet 
var cell = ss.getActiveCell().activate();//Get the active cell. 
var triggerCell = cell.getA1Notation();//Get the cells A1 notation. 
var triggerCellContent = cell.getValue();//Get the value of that cell. 
var siteUrl = "https://docs.google.com/spreadsheets/d/1WKH72ydFh1DcI3IK7P4Ie3rV_wsiX8Xydf9UXMN4BGw/edit?usp=sharing"; 
var massage = "Dette er en auto genereret mail og der bliver derfor ikke fulgt op på denne besked.</br></br> En kunde skal faktureres, følg linket det er række/celle nr. " + triggerCell + "."; 

    if (triggerCellContent.match("Ja")){ 
MailApp.sendEmail("[email protected]", "Der er en kunde som SKAL faktureres", "Det drejer sig om denne række: " + triggerCell + " Faktureres: " + triggerCellContent + "." + " Link til indhold: " + siteUrl + "." + " Besked: " + massage + "."); 
    } 

else if (triggerCellContent.match("Nej")){ 
MailApp.sendEmail("[email protected]; [email protected]", "Der har været service besøg hos denne kunde", "Denne række er ny: " + triggerCell + " Faktureres: " + triggerCellContent + "." + " Link til indhold: " + siteUrl + "."); 
    } 

} 

Здесь есть ссылки на формы О.Г. листы:

Formular: https://docs.google.com/forms/d/1QPziNq9Y7mAF9lAzAWjtaw0Y2CtvokwQR29Vhnbo1ak/viewform

Google Spreadsheet: https://docs.google.com/spreadsheets/d/1WKH72ydFh1DcI3IK7P4Ie3rV_wsiX8Xydf9UXMN4BGw/edit?usp=sharing

I действительно надеюсь, что кто-то умный человек может мне помочь. И спасибо заранее

Том М Петерсен Дания

ответ

1
var ss = SpreadsheetApp.getActiveSpreadsheet(); //Get the spreadsheet 
var sheet = ss.getActiveSheet() //Get the active sheet 

После того, как форма отправлена, будет новая строка данных на листе. Так новые данные в последней строке, и вы можете получить данные, как -

var rowData = sheet.getRange(sheet.getLastRow(), 1 or column number to start to get data, 1(don't change), number of columns to take(use sheet.getLastColumn() to grab all columns)).getValues()[0]; 

ROWDATA является объектом, и вы должны перебрать его, чтобы получить фактические значения ячеек.

var text=""; 
for (i in rowData) { 
     text = text + rowData[i] + ", " // format as you need 
} 

текст = 'имя, адрес электронной почты, адрес ....' и т.д.

Затем используйте 'текст' в 'теле' по почте.

+0

Hey Raihan Firoz Большое спасибо за ваш быстрый ответ. Я пытаюсь заставить его работать, и, как новичок, я думаю, что это немного сложно. – TopCrux

0

Добро пожаловать. Это может быть сложно :)

var rowData = sheet.getRange(8, 4, 1, 4).getValues()[0]; //This is the normal form. 

Теперь 8 представляет какую строку, чтобы начать с. 4 представляет собой столбец для начала. 1 представляет, сколько строк занимает и последнее 4 отображает количество столбцов. getValues()[0] просто получает значения. Не нужно его менять.

Вы отправите данные последней строки (новые данные). Откуда вы знаете номер последней строки?

sheet.getLastRow() //we'll use this to get last row number 

Затем мы хотим взять столбцы E F. A = 1, B = 2, C = 3, D = 4, E = 5, F = 6. Итак, мы начинаем с 5. Затем мы хотим получить только одну строку данных, так что следующим является 1. Затем мы берем данные E F, которые представляют собой 2 столбца. Код будет -

var rowData = sheet.getRange(sheet.getLastRow(), 5, 1, 2).getValues()[0]; //From above paragraph, the parameters comes serially. Don't break. 

В настоящее время rowData содержит последние данные столбца E F столбца. Нам нужно извлечь его для использования.

var text=""; 
for (i in rowData) { 
    text = text + rowData[i] + ", "; // format as you need 
} 

Это извлекает данные из двух столбцов и помещает их в текстовую переменную. Если в столбцах E F были цифры «Mary» и «Jane», то в этот момент данные text = 'Mary, Jane, '. Нам нужны данные столбца I, I = 9, поэтому мы начинаем с 9-го столбца и получаем только одно значение столбца.

var rowData2 = sheet.getRange(sheet.getLastRow(), 9, 1, 1).getValues()[0]; // to get I column value 

Извлечение данных столбца I -

for (i in rowData2) { 
    text = text + rowData2[i] + ", "; // format as you need 
} 

Если 'Уотсон был в колонке I, text = 'Mary, Jane, Watson, ' в этой точке. Чтобы получить данные столбца L L = 12, мы начинаем с 12-го столбца и получаем только одно значение столбца.

var rowData3 = sheet.getRange(sheet.getLastRow(), 12, 1, 1).getValues()[0]; // to get L column value 

Извлечение данных столбца L -

for (i in rowData3) { 
    text = text + rowData3[i] + ", "; // format as you need 
} 

Если 'МЮ' был в колонке L, text = 'Mary, Jane, Watson, MJ, ' в этой точке. Таким образом, это данные столбца E F I L. Используйте text в теле, чтобы отправить данные этих четырех столбцов.

function onEdit(e) { 
var ss = SpreadsheetApp.getActiveSpreadsheet();//Get the spreadsheet 
var sheet = ss.getActiveSheet()//Get the active sheet 
var cell = ss.getActiveCell().activate();//Get the active cell. 
var triggerCell = cell.getA1Notation();//Get the cells A1 notation. 
var triggerCellContent = cell.getValue();//Get the value of that cell. 
var siteUrl = "https://docs.google.com/spreadsheets/d/1WKH72ydFh1DcI3IK7P4Ie3rV_wsiX8Xydf9UXMN4BGw/edit?usp=sharing"; 
var massage = "Your message"; 

var text=""; // declare once only. Important! 

var rowData = sheet.getRange(sheet.getLastRow(), 5, 1, 2).getValues()[0]; // to get E F column data 
for (i in rowData) { 
    text = text + rowData[i] + ", "; // format as you need 
} 
// at this point text = 'Mary, Jane, ' 

var rowData2 = sheet.getRange(sheet.getLastRow(), 9, 1, 1).getValues()[0]; // to get I column value 
for (i in rowData2) { 
    text = text + rowData2[i] + ", "; // format as you need 
} 
// at this point text = 'Mary, Jane, Watson, ' 

var rowData3 = sheet.getRange(sheet.getLastRow(), 12, 1, 1).getValues()[0]; // to get L column value 
for (i in rowData3) { 
    text = text + rowData3[i] + ", "; // format as you need 
} 

// at this point text = 'Mary, Jane, Watson, MJ, ', text is ready to use below - 
// use new code here to add data from more columns 

if (triggerCellContent.match("Ja")){ 
    MailApp.sendEmail("[email protected]", "Der er en kunde som SKAL faktureres", "Det drejer sig om denne række: " + triggerCell + " Faktureres: " + triggerCellContent + "." + " Link til indhold: " + siteUrl + "." + " Besked: " + massage + "." + " Indhold: " + text + "."); 
} 

else if (triggerCellContent.match("Nej")){ 
    MailApp.sendEmail("[email protected]; [email protected]", "Der har været service besøg hos denne kunde", "Denne række er ny: " + triggerCell + " Faktureres: " + triggerCellContent + "." + " Link til indhold: " + siteUrl + "." + " Indhold: " + text + "."); 
} 

} 

Надеюсь, что код работает и помогает!

Чтобы добавить данные из нескольких столбцов просто построить эту линию var variableName = sheet.getRange(sheet.getLastRow(), 5, 1, 2).getValues()[0];, как вам нужно (я говорил вам выше, как) и перебирать его, чтобы извлечь данные, как мы делали раньше -

for (i in variableName) { 
    text = text + variableName[i] + ", "; // format as you need 
} 

Затем используйте текст тело по почте.

+0

Пожалуйста, дайте мне знать, если это сработает. Я буду рад оказать помощь. Райхан –

Смежные вопросы