Автоматизация и петля ImportXML в Google Sheets

google-apps-script google-sheets

512 просмотра

1 ответ

8 Репутация автора

Я использую этот скрипт для автоматизации ImportXML с помощью триггера в Google Sheets. Он отлично работает для 1 ссылки на ячейку URL (B2 в этом примере) и возвращает результат в D2

    function getData() {
  var queryString = Math.random();

  var cellFunction1 = '=IMPORTXML("' + SpreadsheetApp.getActiveSheet().getRange('B2').getValue() + '?' + queryString + '","'+ SpreadsheetApp.getActiveSheet().getRange('A3').getValue() + '")';
  SpreadsheetApp.getActiveSheet().getRange('D2').setValue(cellFunction1);

 }

Мне нужно, чтобы он зациклился и вернул результат для всех ячеек в диапазоне «B: B» (в идеале - только пустые) и поместил результат в соответствующую ячейку в диапазоне «D: D».

Возможно ли это, или мне придется прибегать к написанию сценария для каждой строки, из которой я хочу получить данные?

Автор: Sandro Jazzar Источник Размещён: 13.07.2016 01:25

Ответы (1)


2 плюса

1018 Репутация автора

Sheet.getDataRange () автоматически получает прямоугольный диапазон всех ваших ячеек со значениями.

Например, var data = sheet.getDataRange (). getValues ​​() позволяет вам читать ваши ячейки в этом формате.

data[0][0] // This is the value of your first cell. 

Итак, добавьте data [1] .length, и вы получите количество столбцов. Data.length это ваше количество строк. Просто переберите все ваши данные с двумя циклами for.

for (var i in data) {
  for (var j in data[i]) {
    // Now you can use your setters.
  }
}

наслаждаться

Автор: EvSunWoodard Размещён: 13.07.2016 03:24
Вопросы из категории :
32x32