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

Google スプレッドシートのデータはCSVインポートを使えばNotionに移行できます。この記事では、手動でインポートする基本的な方法から、APIを使った自動移行まで解説します。
そもそも何が移行できて、何が移行できないのか
移行前に把握しておくべきことを整理します。
移行できるもの
- テキスト、数値、日付などのセルデータ
- 列ヘッダー(Notionのプロパティ名として読み込まれる)
移行できないもの・崩れるもの
- セルの色・書式・フォント設定
- 数式(計算結果の値のみ移行される)
- 複数シートのデータ(1シートずつ個別に対応が必要)
- 画像・グラフ・コメント
方法①:CSVインポート(手動・一番かんたん)
手順
- Google スプレッドシートを開く
- 「ファイル → ダウンロード → カンマ区切り形式(.csv)」でCSVを保存
- Notionを開き、新しいページを作成
- 「/」を入力して「Import」を選択、または画面左下の「Import」ボタンをクリック
- 「CSV」を選択してダウンロードしたファイルをアップロード
- Notionがデータベースとして自動で読み込む
注意点
- インポート後、各列のプロパティタイプ(テキスト・日付・セレクトなど)は手動で設定し直す必要がある
- 1行目が列ヘッダーになっていることを事前に確認しておく
- 日本語が文字化けする場合は、CSVをUTF-8形式で保存し直してから再インポートする
方法②:Notion API + Google Apps Script(自動化・中〜上級者向け)
スプレッドシートが定期的に更新される場合や、大量のデータを繰り返し同期したい場合はAPIを使った方法が向いています。
必要なもの
- NotionのAPIキー(Integration Token)
- 移行先のNotionデータベースのID
- Google Apps Script(GAS)の基本操作
大まかな流れ
- Notion側の準備
- notion.so/my-integrations からインテグレーションを作成しAPIキーを取得
- 対象データベースの「接続」にそのインテグレーションを追加する
- データベースのURLからデータベースIDを取得(URLの英数字部分)
- 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)
});
}
}
- トリガーを設定して定期同期
- 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を使った自動移行...