Импортировать HTML-ссылку автоматически - PullRequest
0 голосов
/ 06 октября 2018

B1 = https://g10oal.com/match/a03716cc-adf5-4818-949d-7dd2cc3cbe59/odds#hdc
B2 = https://g10oal.com/match/863a7390-eb42-48a5-bca4-45aa7a92b1f0/odds#hdc
.
.
.
B10 = https://g10oal.com/match/ef07412e-61b6-4f2a-b93a-8c9d8b1b056/odds#hdc

Я хочу написать макрос, чтобы получитьТаблица URL от B1 до B10

var spreadsheet = SpreadsheetApp.getActive();
var blankSyntaxA = 'ImportHtml("';
var Link1 = spreadsheet.getRange('B1');
var blankSyntaxB = '", "table", 4)';  
var liveSyntax = blankSyntaxA + Link + blankSyntaxB;

spreadsheet.getRange('L1').activate();
spreadsheet.getCurrentCell().setFormula(liveSyntax);  

Но показанный L1 => =ImportHtml("Range", "table", 4), который не является содержимым таблицы веб-страницы.

Как сделать так, чтобы Range стал URL B1?

Я изменил скрипт следующим образом.Теперь я столкнулся с проблемой:

1) L1 всегда получает ссылку B1, которая не может получить B2, B3, B4.2) Данные от F1 до K5 были одинаковыми.

Я полагаю, что вывод должен быть:

Первый цикл

1) L1 get B1 Таблица ссылок

2) F1 = N2, G1 = P2, H1 = O2

3) I1 = N + LastRow, J1 = P + LastRow, K1 = H + LastRow

Второй цикл

1) L1 получить таблицу связей B2

2) F2 = N2, G2 = P2, H2 = O2

3) I2 = N + LastRow, J2 = P + LastRow, K2= H + LastRow

Thirt Loop

1) L1 get B3 Таблица ссылок

2) F3 = N2, G3 = P2, H3 = O2

3) I3 = N + LastRow, J3 = P + LastRow, K3 = H + LastRow

1 Ответ

0 голосов
/ 07 октября 2018

Что-то вроде этого должно сделать это.vA [i] [1] - это столбец B vA [i] [11] - это столбец L.

function assembleCellFormula(){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  for(var i=0;i<vA.length;i++){
    vA[i][11]=Utilities.formatString('=ImportHtml("%s","table",4)',vA[i][1]);
  }
  rg.setValues(vA);
}

Вы также можете сделать это примерно так:

function assembleCellFormula(){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var col2=sh.getRange('B1:B10');
  var col11=sh.getRange('L1:L10');
  var vA=col2.getValues();
  var vB=col11.getValues();
  for(var i=0;i<vA.length;i++){
    vB[i][0]=Utilities.formatString('=ImportHtml("%s","table",4)',vA[i][0]);
  }
  col11.setValues(vB);
}

Примечание: я не тестировал их, поэтому для их работы может потребоваться некоторая отладка.Utilities.formatString объясняется здесь

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