中級者向け実践:IT企業でのGAS API連携によるリアルタイムデータ収集と週次レポート自動生成(部門利用)
本記事では、IT企業におけるGAS(Google Apps Script)を活用したAPI連携によるリアルタイムデータ収集と、それを用いた週次レポートの自動生成について、中級者向けに解説します。部門利用を想定し、実用的なコード例を交えながら、具体的な手順と応用方法を詳しく説明します。
はじめに
IT企業では、様々なシステムやサービスからデータを収集し、分析やレポート作成に活用することが不可欠です。GASは、Google Workspaceのサービスと連携しやすく、APIを通じて外部システムとのデータ連携も容易に行えるため、リアルタイムデータ収集とレポート自動化に最適なツールです。
週次レポート自動生成の概要
本システムでは、以下のステップで週次レポートを自動生成します。
- 外部APIからデータを取得します。
- 取得したデータをGoogle スプレッドシートに格納します。
- スプレッドシートのデータを分析し、レポートを作成します。
- 作成したレポートをGoogle ドキュメントに書き出し、共有します。
API連携によるリアルタイムデータ収集
GASでAPI連携を行うには、UrlFetchApp.fetch()
メソッドを使用します。このメソッドにAPIのエンドポイントと必要なパラメータを渡すことで、APIからデータを取得できます。
コード例:APIからデータを取得しスプレッドシートに書き込む
function fetchDataAndWriteToSheet() {
// APIのエンドポイント
const apiUrl = "https://api.example.com/data";
// APIからデータを取得
const response = UrlFetchApp.fetch(apiUrl);
const data = JSON.parse(response.getContentText());
// スプレッドシートを開く
const spreadsheetId = "YOUR_SPREADSHEET_ID";
const sheetName = "Data";
const sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
// データをスプレッドシートに書き込む
data.forEach(function(row, index) {
sheet.appendRow(row);
});
}
解説:
apiUrl
変数に、APIのエンドポイントを設定します。UrlFetchApp.fetch()
メソッドでAPIからデータを取得し、JSON.parse()
でJSON形式のデータをJavaScriptオブジェクトに変換します。- スプレッドシートのIDとシート名を指定して、スプレッドシートを開きます。
- 取得したデータを
forEach()
でループ処理し、sheet.appendRow()
でスプレッドシートに書き込みます。
スプレッドシートデータの分析とレポート作成
取得したデータをスプレッドシート上で分析し、レポートを作成します。GASでは、スプレッドシートのデータを読み込み、グラフを作成したり、特定の条件に基づいてデータを抽出したりすることができます。
コード例:スプレッドシートのデータを分析し、グラフを作成する
function analyzeDataAndCreateChart() {
// スプレッドシートを開く
const spreadsheetId = "YOUR_SPREADSHEET_ID";
const sheetName = "Data";
const sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
// データの範囲を指定
const dataRange = sheet.getDataRange();
// グラフを作成
const chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(dataRange)
.setPosition(5, 5, 0, 0)
.build();
// シートにグラフを挿入
sheet.insertChart(chart);
}
解説:
- スプレッドシートのIDとシート名を指定して、スプレッドシートを開きます。
sheet.getDataRange()
でデータの範囲を指定します。sheet.newChart()
で新しいグラフを作成し、グラフの種類(ここではCOLUMN)やデータの範囲、位置などを設定します。sheet.insertChart()
でシートにグラフを挿入します。
Googleドキュメントへのレポート書き出しと共有
作成したレポートをGoogleドキュメントに書き出し、関係者と共有します。GASでは、Googleドキュメントを操作し、テキストやグラフを挿入することができます。
コード例:レポートをGoogleドキュメントに書き出し、共有する
function writeReportToDocumentAndShare() {
// ドキュメントを作成
const doc = DocumentApp.create("Weekly Report");
const body = doc.getBody();
// レポートのテキストを挿入
body.appendParagraph("Weekly Report");
body.appendParagraph("Date: " + new Date());
// スプレッドシートのグラフを挿入(イメージとして)
const spreadsheetId = "YOUR_SPREADSHEET_ID";
const sheetName = "Data";
const sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
const chart = sheet.getCharts()[0]; // 最初のグラフを取得
if (chart) {
const blob = chart.getAs("image/png");
body.appendImage(blob);
}
// ドキュメントを共有
const documentId = doc.getId();
const file = DriveApp.getFileById(documentId);
file.setSharing(DriveApp.Access.DOMAIN_WITH_LINK, DriveApp.Permission.VIEW);
// 共有リンクをログに出力
Logger.log(file.getUrl());
}
解説:
DocumentApp.create()
で新しいドキュメントを作成します。doc.getBody()
でドキュメントの本文を取得し、appendParagraph()
でテキストを挿入します。- スプレッドシートのグラフをイメージとして取得し、
appendImage()
でドキュメントに挿入します。 file.setSharing()
でドキュメントを共有設定します。ここでは、ドメイン内のユーザーがリンクを知っていれば閲覧できるように設定しています。file.getUrl()
で共有リンクを取得し、ログに出力します。
応用例と活用シーン
- リアルタイムダッシュボード: APIから取得したデータをリアルタイムにスプレッドシートに反映させ、ダッシュボードとして可視化することができます。
- 異常検知アラート: 取得したデータが特定の閾値を超えた場合に、自動的にメールでアラートを送信することができます。
- 複数APIの統合: 複数のAPIからデータを取得し、統合して分析することができます。
まとめ
GASを活用することで、IT企業におけるAPI連携によるリアルタイムデータ収集と週次レポートの自動生成を効率的に行うことができます。本記事で紹介したコード例を参考に、ぜひ自社の業務にGASを導入してみてください。