初心者でも簡単!GASでGoogleドキュメントから表を取得する方法

えっと…GASを使ってGoogleドキュメントから表を取得したいんだけど、どうすればいいんだろう?何から始めたらいいのか全然わからなくて…。
猫男
猫男
catman
catman
心配するな、catmanがGASでGoogleドキュメントから表を取得する方法を教えてやろう。まずは基本を押さえようか。

GASでGoogleドキュメントの表を取得する基本

Googleドキュメントには、表を扱うための専用なメソッドが用意されている。これを使い、GASでの作業を進めよう。

まずは、Googleドキュメントの表を取得するための基本的なステップから解説していこう。

 function getTableFromDocument() {
 var doc = DocumentApp.openById('YOUR_DOCUMENT_ID');
 var body = doc.getBody();
 var tables = body.getTables();
 Logger.log(tables.length + ' tables found in the document.');
} 

このスクリプトでは、DocumentApp.openById()を使って特定の文書を開き、getBody()を用いて文書本文を取得する。

その後、getTables()メソッドで本文中のすべての表を取得することができる。

特定の表からデータを取得する方法

文書には複数の表が含まれることがある。その場合は、対象の表を選んでデータを取得する必要がある。

1. 表のインデックスを指定して取得

複数ある表の中から、インデックスで特定することができる。

 function getSpecificTable() {
 var doc = DocumentApp.openById('YOUR_DOCUMENT_ID');
 var body = doc.getBody();
 var tables = body.getTables();
 var table = tables[0]; // 最初の表を取得
 var numRows = table.getNumRows();
 Logger.log('Number of rows in the first table: ' + numRows);
} 

このスクリプトで最初に表の総数を確認し、特定の順番にある表を選び出すことができる。ここでは最初の表が選ばれている。

2. 表の内容をログに出力する

次に、選んだ表の内容を具体的に取り出してみよう。

 function logTableContent() {
 var doc = DocumentApp.openById('YOUR_DOCUMENT_ID');
 var body = doc.getBody();
 var table = body.getTables()[0];
 for (var i = 0; i < table.getNumRows(); i++) {
   var row = table.getRow(i);
   for (var j = 0; j < row.getNumCells(); j++) {
     var cell = row.getCell(j);
     Logger.log(cell.getText());
   }
 }
} 

このスクリプトで各セルの内容を取得し、Logger.log()でその内容を出力して確認することができる。

GASでGoogleドキュメントの中身をこうやって取り出して見ることができるんだね!
猫男
猫男

練習問題:GASで表を編集しよう!

上記の方法を使って、特定の表の特定のセルの内容を更新してみよう。それぞれのメソッドやクラスを使って、Googleドキュメント内の表のデータを操作していきたい。

解答・解説

 function updateTableContent() {
 var doc = DocumentApp.openById('YOUR_DOCUMENT_ID');
 var body = doc.getBody();
 var table = body.getTables()[0];
 var cell = table.getRow(1).getCell(0);
 cell.setText('新しい内容');
} 

このスクリプトを実行することで、最初の表の2行目1列目のセル内容を『新しい内容』に変えることができる。

setText()メソッドを使用し、セルの内容を書き換えることができるんだ。

catman
catman
この流れをマスターすれば、文書の表データを自由に操作できるようになるさ!頑張ってトライしてみるといい。