0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🚀 Google Apps Script(GAS)でスプレッドシートのデータをJSON化するカスタム関数を作成

Posted at

📝 概要

Google スプレッドシート上で 指定した範囲のデータを JSON に変換 するカスタム関数を作成します!
例えば、以下のような表を JSON 文字列 に変換できます。

A列 (キー) B列 (値)
名前 山田
年齢 30
性別 男性
出身地 #N/A (エラー)
職業 エンジニア

👇 これをスプレッドシートの セル関数 で一発変換!

{"名前":"山田","年齢":30,"性別":"男性","出身地":"エラー","職業":"エンジニア"}

これにより、スプレッドシートで管理しているデータを API や Web アプリで使いやすい形 に整形できます。


🎯 実装する関数の仕様

  • =convertToJSON(A1:A5, B1:B5)
    • 範囲A(キー) → JSON の「キー」になる
    • 範囲B(値) → JSON の「値」になる
    • エラー値(#N/A など)"エラー" に変換
    • JSON 文字列 (JSON.stringify) を返す
    • キーが空の場合は無視する

💻 Google Apps Script(GAS)のコード

Google スプレッドシートの スクリプトエディタ に以下のコードを貼り付けてください。

📌 コード

function convertToJSON(keysRange, valuesRange) {
  try {
    // キーと値の配列を取得
    var keys = keysRange.flat();    // 二次元配列を一次元に変換
    var values = valuesRange.flat();
    
    // JSON オブジェクト作成
    var jsonObject = {};
    
    for (var i = 0; i < keys.length; i++) {
      var key = keys[i];
      var value = values[i];

      if (key !== "" && key !== null && key !== undefined) { // 空キーは無視
        if (typeof value === "object" && value !== null) {  // エラー処理
          jsonObject[key] = "エラー";
        } else {
          jsonObject[key] = value;
        }
      }
    }
    
    // JSON 文字列として返す
    return JSON.stringify(jsonObject);
  } catch (e) {
    return "エラー: " + e.message;
  }
}

🛠 使い方

  1. スプレッドシートを開く
  2. 「拡張機能」 > 「Apps Script」 を開く
  3. スクリプトエディタに上記コードを貼り付け
  4. スプレッドシートで関数を実行!
    =convertToJSON(A1:A5, B1:B5)

✅ 実行例

📌 入力

A列 (キー) B列 (値)
名前 山田
年齢 30
性別 男性
出身地 #N/A (エラー)
職業 エンジニア

📌 出力

{"名前":"山田","年齢":30,"性別":"男性","出身地":"エラー","職業":"エンジニア"}

📌 ポイント

  • キーが空のセルは スキップ
  • エラー (#N/A, #DIV/0! など) は "エラー" に変換
  • そのまま JSON API で使えるフォーマット

🎉 まとめ

Google スプレッドシート + GAS で JSON を簡単に生成!
セル関数で JSON に変換できるので、誰でも使いやすい!
エラー処理付きで安全に動作!

この関数を使えば、スプレッドシートで管理しているデータを JSON として扱いやすくなります 🚀
データの整形や API 連携にも役立つので、ぜひ試してみてください! 💡


📢 参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?