Сценарий Google Apps - Как добавить столбцы (включая формулы и форматирование) в электронную таблицу, созданную на основе данных формы Google? - PullRequest
1 голос
/ 22 августа 2011

ОК, так что я думаю, что мне нужно сделать относительно сложно.На данный момент у нас есть форма, которую участники могут заполнить.У нас есть реализованный скрипт, который означает, что каждый раз, когда форма отправляется, она создает новый лист в электронной таблице, затем информация передается через что-то похожее на функцию IF, чтобы изменить ответы Да и Нет на 1 и 0. Это выглядит так:

//onFormSubmit
 function onFormSubmit(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Form Responses");
  var headings = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
  var lastRow = sheet.getRange(sheet.getLastRow(), 1, 1, sheet.getLastColumn()).getValues();
  var whoIsItFor = lastRow[0][1];

 if(ss.getSheetByName(whoIsItFor))
{
 var userSheet = ss.getSheetByName(whoIsItFor);
//if not make
} 
else 
{
var userSheet = ss.insertSheet(whoIsItFor);
userSheet.getRange(1, 1, 1, headings[0].length).setValues(headings);
}

// copy submitted data to user's sheet
userSheet.getRange(userSheet.getLastRow()+1, 1, 1, lastRow[0].length).setValues(lastRow);


var columns = new Array('K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CI', 'CJ', 'CK', 'CL', 'CM');

for (var i = 0; i < columns.length; ++i)
{

c = columns[i] + "2";

if (userSheet.getRange(c).getValue() == "Yes") {
  userSheet.getRange(c).setValue("1")
}
else {
  userSheet.getRange(c).setValue("0")
}

}  



}

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

Надеюсь, это имеет смысл ..... Заранее большое спасибо

1 Ответ

1 голос
/ 30 мая 2012

Звучит так (и я могу ошибаться), у вас есть форма вопросов True False, каждая отправка формы перемещает данные на новый лист, и теперь вы хотите переместить все функции и форматирование с одного «основного листа» и вставьте его в этот недавно созданный лист.

Не могли бы вы просто создать копию этого "основного листа", в который вы хотите импортировать функции и форматирование? Затем вы можете вставить данные из формы отправки.

https://developers.google.com/apps-script/service_spreadsheet

Я сразу ухожу от их API, потому что я не пробовал этого раньше, но по сути вы бы сделали новый лист, подобный этому

//make the new sheet
masterSheet.copyTo("nameOfNewSheet");
//fill data in as usual

Если я правильно понял ваш вопрос, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...