GASを使ってGoogleドキュメントのデータを簡単に取得する方法


GASでGoogleドキュメントを扱う準備
まずはGASを使ってGoogleドキュメントを操作するための基本的な準備を整える必要がある。
GASプロジェクトを作成する
GASを使うには、Googleドライブからスクリプトエディタを開いてプロジェクトを作成することから始まる。
1. Googleドライブにログインし、右上の「新規」ボタンをクリックする。
2. 「その他」から「Google Apps Script」を選択し、新しいプロジェクトを作成する。
必要なサービスの利用を有効にする
Googleドキュメントを操作するには、GASから「DocumentApp」サービスを利用する必要がある。
プロジェクトを作成したらすぐに「DocumentApp」を使えるようになるが、「getActiveDocument」や「getBody」メソッドを使うための認証スコープに注意しよう。
Googleドキュメントのデータを取得する方法
さっそくGASを使ってGoogleドキュメントのデータを取得してみよう。
Googleドキュメントを開いてデータを取得する
まずは、特定のGoogleドキュメントを開いてその内容を取得するスクリプトを書くことが大事だ。
function getDocumentData() {
const docId = 'YOUR_DOCUMENT_ID_HERE';
const doc = DocumentApp.openById(docId);
const body = doc.getBody();
Logger.log(body.getText());
}
このスクリプトを使えば、特定のGoogleドキュメントの本文を取得できる。
スクリプトの解説
「openById(docId)」は、指定したIDでドキュメントを開くメソッドだ。
「getBody()」は、ドキュメントの本文を取得するためのメソッドさ。
「getText()」は、本文のテキストを取得するメソッドで、ログに出力することができる。

GASでのGoogleドキュメント操作の応用
複数のデータを取り出して活用する
内容を部分ごとに分けたり、修正したりすることも可能だ。
function extractAndModify() {
const docId = 'YOUR_DOCUMENT_ID_HERE';
const doc = DocumentApp.openById(docId);
const body = doc.getBody();
const paragraphs = body.getParagraphs();
paragraphs.forEach(paragraph => {
Logger.log(paragraph.getText());
});
}
このスクリプトでは、各段落情報を抽出し順にログに出力する。
スクリプトの解説
「getParagraphs()」メソッドは、本文を段落ごとにListとして取得する。
「forEach()」関数で、各段落を順に取得し、ログに出力できるようにする。
練習問題
1. 特定のGoogleドキュメント内のすべての画像のURLを取得するスクリプトを作成してみよう。
2. 各段落の最初に行番号(1, 2, 3, …)を挿入するスクリプトを書いてみよう。
解答・解説
function getImagesUrl() {
const docId = 'YOUR_DOCUMENT_ID_HERE';
const doc = DocumentApp.openById(docId);
const body = doc.getBody();
const images = body.getImages();
images.forEach(image => {
const url = image.getAttributes().get('linkUrl');
Logger.log(url);
});
}
このスクリプトは、ドキュメント内の画像のURLを取得し、ログに出力する。
「getImages()」メソッドで画像要素を取得し、各画像のURLを「getAttributes().get(‘linkUrl’)」で取得する。
function addLineNumber() {
const docId = 'YOUR_DOCUMENT_ID_HERE';
const doc = DocumentApp.openById(docId);
const body = doc.getBody();
const paragraphs = body.getParagraphs();
paragraphs.forEach((paragraph, index) => {
paragraph.setText((index + 1) + '. ' + paragraph.getText());
});
}
このスクリプトでは、各段落のテキストを取得し、行番号を付加した新しいテキストに更新する。
「setText()」メソッドで段落の内容を更新し、行番号を付ける。

