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

NotionのデータベースはCSVエクスポートを使えばGoogle スプレッドシートに移行できます。この記事では、手動でエクスポートする基本的な方法から、APIを使った自動移行まで解説します。
そもそも何が移行できて、何が移行できないのか
まずは移行前に把握しておくべきことを整理します。
移行できるもの
- テキスト、数値、日付、セレクト項目などのプロパティ
- 各ページのタイトルと本文(テキスト部分)
移行できないもの・崩れるもの
- 添付ファイル・画像(リンクが切れる)
- リレーション・ロールアップ(単純なテキストに変換される)
- チェックボックスの状態(”Yes/No”のテキストになる)
- Notionのページ内ブロック構造(書式が崩れる)
これらを踏まえた上で、移行方法を選びましょう。
方法①:CSVエクスポート(手動・一番かんたん)
初めて移行する方にはこの方法が一番確実です。
手順
- Notionでエクスポートしたいデータベースを開く
- 画面右上の「…(三点メニュー)」をクリック
- 「エクスポート」を選択
- 形式を「CSV」に設定してエクスポート
- ダウンロードされたCSVファイルをGoogle スプレッドシートで開く
- Googleドライブにアップロード→右クリック→「アプリで開く」→「Google スプレッドシート」
注意点
- サブページがある場合、それぞれ別のCSVファイルとして出力される
- 日本語の文字化けが起きることがある。その場合は、スプレッドシートの「ファイル→インポート」から文字コードをUTF-8に指定して読み込む
方法②:Notion API + Google Apps Script(自動化・中〜上級者向け)
定期的に同期したい場合や、データが頻繁に更新される場合はAPIを使った方法が向いています。
必要なもの
- NotionのAPIキー(Integration Token)
- 移行先のGoogleスプレッドシートのID
- Google Apps Script(GAS)の基本操作
大まかな流れ
- Notion側の準備
- notion.so/my-integrations からインテグレーションを作成しAPIキーを取得
- 対象データベースの「接続」にそのインテグレーションを追加する
- データベースのURLからデータベースIDを取得(URLの英数字部分)
- Google Apps Scriptでスクリプトを作成
Googleスプレッドシートを開き、「拡張機能→Apps Script」からスクリプトを作成します。
javascript
function syncFromNotion() {
const NOTION_TOKEN = "secret_xxxxxxxxxx"; // 自分のAPIキーに変更
const DATABASE_ID = "xxxxxxxxxx"; // 自分のデータベースIDに変更
const SHEET_NAME = "Sheet1";
const url = `https://api.notion.com/v1/databases/${DATABASE_ID}/query`;
const response = UrlFetchApp.fetch(url, {
method: "post",
headers: {
"Authorization": `Bearer ${NOTION_TOKEN}`,
"Notion-Version": "2022-06-28",
"Content-Type": "application/json"
},
payload: JSON.stringify({})
});
const data = JSON.parse(response.getContentText());
const results = data.results;
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
sheet.clearContents();
// ヘッダー行を書き込む(項目名は自分のDBに合わせて変更)
sheet.appendRow(["タイトル", "ステータス", "日付"]);
results.forEach(page => {
const title = page.properties["名前"]?.title?.[0]?.plain_text || "";
const status = page.properties["ステータス"]?.select?.name || "";
const date = page.properties["日付"]?.date?.start || "";
sheet.appendRow([title, status, date]);
});
}
- トリガーを設定して定期同期
- Apps Scriptの「トリガー」から、syncFromNotion を毎日・毎時など好きなタイミングで実行するよう設定できる
このアプローチのメリット
- Notionのデータが更新されるたびに自動でスプレッドシートに反映できる
- 取得する項目や整形ロジックを自由にカスタマイズできる
方法③:Zapier / Make(ノーコード自動化)
コードを書きたくないけど自動化はしたい、という方向けの選択肢もあります。
ZapierやMake(旧Integromat)を使うと、「Notionにレコードが追加されたら → Googleスプレッドシートの行に追加」というフローをGUI操作だけで作れます。
メリット:コード不要で自動化できる
デメリット:無料プランは操作回数に上限あり。データ量が増えると有料プランが必要になる
どの方法を選ぶべきか
| 状況 | おすすめの方法 |
|---|---|
| 一度だけ移行したい | CSVエクスポート |
| 定期的に同期したい・無料で済ませたい | Notion API + GAS |
| コードは書きたくないが自動化したい | Zapier / Make |
まとめ
NotionのデータベースはCSVエクスポートを使えば誰でも簡単にGoogle スプレッドシートへ移行できます。一方で、添付ファイルやリレーションは移行できないため、あらかじめ確認しておくことが重要です。自動化が必要な場合はNotion APIとGoogle Apps Scriptの組み合わせが無料かつ柔軟でおすすめです。
逆のGoogleスプレッドシートからNorionへの移行はこちらです。
あわせて読みたい


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