Вот как я решил свою проблему:
В вашей электронной таблице go в верхнем меню> щелкните «Инструмент»> затем «Редактор сценариев» и добавьте следующие сценарии:
Это сценарий позвонить ваши данные, например, XML. Пожалуйста, обновите скрипт своей собственной информацией. YOUR-SHEET-NAME, название вкладки, например, "цены".
function getData() {
var sheetName = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("YOUR-
SHEET-NAME");
var queryString = Math.random();
var cellFunction = '=ImportXML("https://yoururl-xml.php","//trade/price")';
var range = sheetName.getRange('A2');
range.clearContent(); // You can also use range.setFormula("");
SpreadsheetApp.flush();
range.setFormula(cellFunction);
}
Под этим сценарием добавьте следующий сценарий, дополнительную информацию на этой странице: Периодически обновлять sh ИМПОРТ XML () функция электронной таблицы
ВАША -SHEET-ID - это длинное число в URL таблицы, например, 1YTB12xSTMSNdoT_S1U67MtOUDTf6n4OL2tJLnTNAXYZ
function RefreshImports() {
var lock = LockService.getScriptLock();
if (!lock.tryLock(5000)) return; // Wait up to 5s for previous refresh to end.
var id = "YOUR-SHEET-ID";
var ss = SpreadsheetApp.openById(id);
var sheet = ss.getSheetByName("YOUR-SHEET-NAME");
var dataRange = sheet.getDataRange();
var formulas = dataRange.getFormulas();
var content = "";
var now = new Date();
var time = now.getTime();
var re = /.*[^a-z0-9]import(?:xml|data|feed|html|range)\(.*/gi;
var re2 = /((\?|&)(update=[0-9]*))/gi;
var re3 = /(",)/gi;
for (var row=0; row<formulas.length; row++) {
for (var col=0; col<formulas[0].length; col++) {
content = formulas[row][col];
if (content != "") {
var match = content.search(re);
if (match !== -1 ) {
// import function is used in this cell
var updatedContent = content.toString().replace(re2,"$2update=" + time);
if (updatedContent == content) {
// No querystring exists yet in url
updatedContent = content.toString().replace(re3,"?update=" + time + "$1");
}
// Update url in formula with querystring param
sheet.getRange(row+1, col+1).setFormula(updatedContent);
}
}
}
}
// Done refresh; release the lock.
lock.releaseLock();
}
Вот снимок экрана обоих сценариев:
1021 * Затем добавьте таймер, go, в верхнее меню нажмите на часы и добавьте триггер. Убедитесь, что вы выбрали правильную функцию, т.е. RefreshImports.
Готово!