Google スプレッドシートのデータをNotionデータベースに移行する方法【完全ガイド】

Google スプレッドシートのデータをNotionデータベースに移行する方法

Google スプレッドシートのデータはCSVインポートを使えばNotionに移行できます。この記事では、手動でインポートする基本的な方法から、APIを使った自動移行まで解説します。

そもそも何が移行できて、何が移行できないのか

移行前に把握しておくべきことを整理します。

移行できるもの

  • テキスト、数値、日付などのセルデータ
  • 列ヘッダー(Notionのプロパティ名として読み込まれる)

移行できないもの・崩れるもの

  • セルの色・書式・フォント設定
  • 数式(計算結果の値のみ移行される)
  • 複数シートのデータ(1シートずつ個別に対応が必要)
  • 画像・グラフ・コメント

方法①:CSVインポート(手動・一番かんたん)

手順

  1. Google スプレッドシートを開く
  2. 「ファイル → ダウンロード → カンマ区切り形式(.csv)」でCSVを保存
  3. Notionを開き、新しいページを作成
  4. 「/」を入力して「Import」を選択、または画面左下の「Import」ボタンをクリック
  5. 「CSV」を選択してダウンロードしたファイルをアップロード
  6. Notionがデータベースとして自動で読み込む

注意点

  • インポート後、各列のプロパティタイプ(テキスト・日付・セレクトなど)は手動で設定し直す必要がある
  • 1行目が列ヘッダーになっていることを事前に確認しておく
  • 日本語が文字化けする場合は、CSVをUTF-8形式で保存し直してから再インポートする

方法②:Notion API + Google Apps Script(自動化・中〜上級者向け)

スプレッドシートが定期的に更新される場合や、大量のデータを繰り返し同期したい場合はAPIを使った方法が向いています。

必要なもの

  • NotionのAPIキー(Integration Token)
  • 移行先のNotionデータベースのID
  • Google Apps Script(GAS)の基本操作

大まかな流れ

  1. Notion側の準備
    • notion.so/my-integrations からインテグレーションを作成しAPIキーを取得
    • 対象データベースの「接続」にそのインテグレーションを追加する
    • データベースのURLからデータベースIDを取得(URLの英数字部分)
  2. Google Apps Scriptでスクリプトを作成

Googleスプレッドシートを開き、「拡張機能 → Apps Script」からスクリプトを作成します。

javascript

function syncToNotion() {
  const NOTION_TOKEN = "secret_xxxxxxxxxx"; // 自分のAPIキーに変更
  const DATABASE_ID = "xxxxxxxxxx";         // 自分のデータベースIDに変更
  const SHEET_NAME = "Sheet1";

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
  const rows = sheet.getDataRange().getValues();

  // 1行目はヘッダーなのでスキップ
  for (let i = 1; i < rows.length; i++) {
    const [title, status, date] = rows[i];

    const payload = {
      parent: { database_id: DATABASE_ID },
      properties: {
        "名前": {
          title: [{ text: { content: title } }]
        },
        "ステータス": {
          select: { name: status }
        },
        "日付": {
          date: { start: date }
        }
      }
    };

    UrlFetchApp.fetch("https://api.notion.com/v1/pages", {
      method: "post",
      headers: {
        "Authorization": `Bearer ${NOTION_TOKEN}`,
        "Notion-Version": "2022-06-28",
        "Content-Type": "application/json"
      },
      payload: JSON.stringify(payload)
    });
  }
}
  1. トリガーを設定して定期同期
    • Apps Scriptの「トリガー」から、syncToNotion を毎日・毎時など好きなタイミングで実行するよう設定できる
    • スプレッドシートに新しい行が追加されたタイミングでも実行できる(「スプレッドシートから → 変更時」トリガーを使用)

このアプローチのメリット

  • スプレッドシートが更新されるたびに自動でNotionに反映できる
  • 取得する列や変換ロジックを自由にカスタマイズできる

注意点

  • スクリプトを複数回実行すると同じデータが重複して追加される。差分チェックの仕組みが必要な場合は、Notionの既存データを先に取得して比較するロジックを追加する

方法③:Zapier / Make(ノーコード自動化)

コードを書きたくないけど自動化はしたい、という方向けの選択肢です。

「Googleスプレッドシートに行が追加されたら → Notionデータベースにレコードを追加」というフローをGUI操作だけで作れます。

メリット:コード不要で自動化できる
デメリット:無料プランは操作回数に上限あり。データ量が増えると有料プランが必要になる


どの方法を選ぶべきか

状況おすすめの方法
一度だけ移行したいCSVインポート
定期的に同期したい・無料で済ませたいNotion API + GAS
コードは書きたくないが自動化したいZapier / Make

まとめ

Google スプレッドシートのデータはCSVインポートを使えば誰でも簡単にNotionへ移行できます。ただし、プロパティタイプの再設定や文字コードの確認など、インポート後の調整が必要な点は覚えておきましょう。定期的な同期が必要な場合は、Notion APIとGoogle Apps Scriptの組み合わせが無料かつ柔軟でおすすめです。

逆のNotionからGoogleスプレッドシートの移行はこちらです。

あわせて読みたい
NotionデータベースをGoogle スプレッドシートに移行する方法【完全ガイド】 NotionのデータベースはCSVエクスポートを使えばGoogle スプレッドシートに移行できます。この記事では、手動でエクスポートする基本的な方法から、APIを使った自動移行...
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

1995年から30年以上、企業のWebサイト運営を支援してきました。
現在は「無茶楽(MUCHARaku)」を通じて、AIや最新のツールを活用し、より効率的で楽しいサイト改善をお手伝いしています。