中級者向け実践:IT企業でのGAS API連携によるリアルタイムデータ収集と週次レポート自動生成(部門利用)

中級者向け実践:IT企業でのGAS API連携によるリアルタイムデータ収集と週次レポート自動生成(部門利用)

本記事では、IT企業におけるGAS(Google Apps Script)を活用したAPI連携によるリアルタイムデータ収集と、それを用いた週次レポートの自動生成について、中級者向けに解説します。部門利用を想定し、実用的なコード例を交えながら、具体的な手順と応用方法を詳しく説明します。

はじめに

IT企業では、様々なシステムやサービスからデータを収集し、分析やレポート作成に活用することが不可欠です。GASは、Google Workspaceのサービスと連携しやすく、APIを通じて外部システムとのデータ連携も容易に行えるため、リアルタイムデータ収集とレポート自動化に最適なツールです。

週次レポート自動生成の概要

本システムでは、以下のステップで週次レポートを自動生成します。

  1. 外部APIからデータを取得します。
  2. 取得したデータをGoogle スプレッドシートに格納します。
  3. スプレッドシートのデータを分析し、レポートを作成します。
  4. 作成したレポートを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を導入してみてください。