2017-08-26 12 views
0

私は使用しているIMPORTXML用にGoogleシートアプリスクリプトを取得しようとしています。自動更新機能付きGoogle AppsスクリプトへのIMPORTXML

A1 
=importxml("http://www.nfl.com/liveupdate/scorestrip/ss.xml","//@q") 

A2 
=importxml("http://www.nfl.com/liveupdate/scorestrip/ss.xml","//@h") 

データは、私はそれを自動更新を持っているウェブ上で発見スクリプトによるA1:B16

から塗りつぶし:私は私が入れすることになってるのか分からない

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

    var cellFunction1 = '=IMPORTXML("' + SpreadsheetApp.getActiveSheet().getRange('A1').getValue() + '?' + queryString + '","'+ SpreadsheetApp.getActiveSheet().getRange('A2').getValue() + '")'; 
    SpreadsheetApp.getActiveSheet().getRange('C1').setValue(cellFunction1); 

    var cellFunction2 = '=IMPORTXML("' + SpreadsheetApp.getActiveSheet().getRange('A4').getValue() + '?' + queryString + '","'+ SpreadsheetApp.getActiveSheet().getRange('A5').getValue() + '")'; 
    SpreadsheetApp.getActiveSheet().getRange('C2').setValue(cellFunction2); 
} 

/そのコードを私のものに置き換える。誰かが私が私のシートの中で働かせるために変えるべきものを説明するのを助けることができれば/それがどのように見えるかといういくつかの例を提供することは巨大な助けになるでしょう。

私はあなたがtime-driven trigger機能で、その後getFormula()setFormula()を使用して機能を更新することができ

+0

[IMPORTXML()スプレッドシートの定期的な更新]機能の可能な複製](https://stackoverflow.com/questions/33872967/periodically-refresh-importxml-spreadsheet-function) –

答えて

0

を感謝しています。ここでは、関連SO postからコードスニペットです:

/** 
* Go through all sheets in a spreadsheet, identify and remove all spreadsheet 
* import functions, then replace them a while later. This causes a "refresh" 
* of the "import" functions. For periodic refresh of these formulas, set this 
* function up as a time-based trigger. 
* 
* Caution: Formula changes made to the spreadsheet by other scripts or users 
* during the refresh period COULD BE OVERWRITTEN. 
* 
* From: https://stackoverflow.com/a/33875957/1677912 
*/ 
function RefreshImports() { 
    var lock = LockService.getScriptLock(); 
    if (!lock.tryLock(5000)) return;    // Wait up to 5s for previous refresh to end. 
    // At this point, we are holding the lock. 

    var id = "YOUR-SHEET-ID"; 
    var ss = SpreadsheetApp.openById(id); 
    var sheets = ss.getSheets(); 

    for (var sheetNum=0; sheetNum<sheets.length; sheetNum++) { 
    var sheet = sheets[sheetNum]; 
    var dataRange = sheet.getDataRange(); 
    var formulas = dataRange.getFormulas(); 
    var tempFormulas = []; 
    for (var row=0; row<formulas.length; row++) { 
     for (col=0; col<formulas[0].length; col++) { 
     // Blank all formulas containing any "import" function 
     // See https://regex101.com/r/bE7fJ6/2 
     var re = /.*[^a-z0-9]import(?:xml|data|feed|html|range)\(.*/gi; 
     if (formulas[row][col].search(re) !== -1) { 
      tempFormulas.push({row:row+1, 
          col:col+1, 
          formula:formulas[row][col]}); 
      sheet.getRange(row+1, col+1).setFormula(""); 
     } 
     } 
    } 

    // After a pause, replace the import functions 
    Utilities.sleep(5000); 
    for (var i=0; i<tempFormulas.length; i++) { 
     var cell = tempFormulas[i]; 
     sheet.getRange(cell.row, cell.col).setFormula(cell.formula) 
    } 

    // Done refresh; release the lock. 
    lock.releaseLock(); 
    } 
} 

・ホープ、このことができます。

関連する問題