2013-08-13 2 views
0

Я установил сценарий для копирования и обработки электронной таблицы, созданной из формы.Запрос столбца в скрипте Google

Я соберу ответы, как это:

var responses = formResponses.getDataRange().getValues(); 

Затем доступ к отдельным столбцам через индекс массива, например:

var timestamp = row[0]; 
    var agentName = row[1]; 

Теперь, в то время как это работает. Любые изменения в форме могут привести к зависанию всего объекта, и индексы массива изменятся.

Можно ли запросить имя столбца?

ответ

1

Если доступ к нему через onFormSubmit event не жизнеспособен для вас, потому что вам нужно получить доступ к сообщению после отправки, я создал код, который позволяет вам получить доступ через имя столбца.

function getDataFields(workingRow){ 
    //header is row 1 -- not row 0 
    var headerRow = 1; 
    var headerRowValues = getRowRange(headerRow).getValues(); 
    var workingRowValues = getRowRange(workingRow).getValues(); 
    var dataFields = []; 

    for (var colNum in headerRowValues[0]){ 
     dataFields[headerRowValues[0][colNum]] = workingRowValues[0][colNum]; 
    } 
    dataFields['Working Row'] = workingRow; 

    return dataFields; 
} 

function getRowRange(workingRow){ 
    var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    var lastColumn = activeSheet.getLastColumn(); 
    return activeSheet.getRange(workingRow, 1, 1, lastColumn); 
} 

Затем вы можете использовать dataFields ['Column Name'] для доступа к данным этой конкретной строки.

0

если вы используете onFormSubmit event вы можете получить доступ все значения формы их именованных значений, это объясняется в the documentation on Spreadsheet Form Submit Events, так что вы не будете иметь эту проблему больше ...

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