Получить значения из таблицы Google - PullRequest
0 голосов
/ 25 сентября 2018

Я очень новичок в App Script, но, как правило, мне было интересно, возможно ли то, что я хочу сделать ... любая помощь будет принята с благодарностью.

Итак, у меня есть таблица Google с некоторыми столбцаминастроить так:

Column A   Column B

name       name.com
name2      name2.com
name3      name3.com

Я хотел бы иметь возможность получить ВСЕ значения в каждом столбце и проанализировать их в формате, подобном этому, для конечного файла, который я могу скопировать и вставить в другое место.:

<#function linker trackerName>
<#local link = { 
"name" : "name.com", 
"name2" : "name2.com",
"name" : "name2.com"

}>
</#function>

Я предполагаю, что это очень возможно с помощью скрипта приложения, но я просто не уверен в формате или как сделать это для анализа в текстовом файле?

Опять-таки, любая помощь или руководство для точки запуска было бы потрясающим!

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

 function onOpen() {
   var ui = SpreadsheetApp.getUi();
   ui.createMenu('Get Values')
       .addItem('Go!', 'getValues')
       .addToUi();
    }


   function getValues() {

   var values = 
   SpreadsheetApp.getActiveSheet().getDataRange().getValues();

    values.forEach( function(row) {
    row[0] // column index as 4 ... I beleive this should get all values 
    in each row / column? 
    });
    }

1 Ответ

0 голосов
/ 26 сентября 2018
  1. Вы хотите вручную запустить скрипт из строки меню.
  2. Вы хотите получить значения из электронной таблицы.
  3. Вы хотите создать новый документ, включая добавленные текстовые значенияизвлеченные значения.
  4. Шаблон можно использовать в скрипте.

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

Поток:

  1. Установите значения шаблонов в tempHeader и tempFooter.
  2. Извлеките значения из электронной таблицы.
  3. Преобразование полученных значений для использования в шаблоне.
  4. Объединение преобразованных значений и значений шаблона.
  5. Создание нового документа и установка значений.

Модифицированный скрипт:

function getValues() {
  var fileName = "sampleName"; // This is a filename of new Document.

  var tempHeader = "<#function linker trackerName>\n<#local link = {\n";
  var tempFooter = "\n}>\n</#function>\n";
  var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
  var v = values.slice(1, values.length);
  var res = v.map(function(e, i){return '"' + e[0] + '" : "' + e[1] + '"' + (i < v.length - 1 ? "," : "")}).join("\n");
  DocumentApp.create(fileName).getBody().setText(tempHeader + res + tempFooter);
}

Примечание:

  • onOpen() в вашем скрипте можно использовать.Когда электронная таблица открыта, вы можете запустить скрипт в строке меню.
  • В этом измененном скрипте имя нового документа - fileName.Поэтому, пожалуйста, измените это в вашей ситуации.
  • Я беспокоился о возможности того, что в столбце «А» есть одинаковые значения.Поэтому, когда значения были преобразованы, я не обрабатывал их как объект.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...