0

いくつかのインターネット サイトの URL ページを含む列 A があります。列 B では、次の関数を使用します。

"=CONCATENATE(ImportData(列 A の URL)".

... データ ページをこの列のテキストとして抽出しますが、Google ドキュメントでは、ドキュメント内の 50 個の関数にこの関数の制限があります。

つまり、A列のURLアドレスの変更ごとに、B列にWebページのデータをテキスト形式で抽出する、といったImportDataをどのように使うのでしょうか?

ありがとう。

4

1 に答える 1

1

列 A の各 URL に対してUrlFetchを使用し、列 B にテキストを設定する onOpen トリガーを使用できます。これにより、スプレッドシートが開かれるたびにスプレッドシートが更新されます。

これはおそらくうまくいくでしょう (私は以前に UrlFetch を使用したことがありません):

 function onOpen(e){
  var sheet = SpreadsheetApp.getActiveSheet();

  //Load all the URLs
  var urls = sheet.getRange("A:A").getValues();

  //Initialize array for content
  var text = [];

  //Loop through URLs
  for(var i = 0; i < urls.length; i += 1){
    if(urls[i][0] === "") continue;//Skip blank cells
    //Fetch the webpage, push the content to the array (inside an array since it needs to be 2d)
    text.push(
      [UrlFetchApp.fetch(urls[i][0]).getContentText()]
    );
  }
  //Store text in spreadsheet in range the size of the text array
  sheet.getRange("B1:B" + text.length).setValues(text);
}

URL が変更されたときに新しいコンテンツをロードする場合は、onEdit トリガーを使用します

function onEdit(e){
  //Get the active cell
  //Then get its url
  //Fetch the web page and store it in the cell next to edited url
}
于 2013-01-28T00:07:57.503 に答える