UltKit

ExcelをSQLに変換

見出し行からテーブルを作成し、その下のすべての行を挿入するSQLスクリプトを書き出します。引用符は選んだデータベースの書式に合わせます。

データ変換

またはCSV, TSV, TXT … ファイルをここにドロップ ·

1ファイルあたり最大95 MB· 最大20ファイルまで· 30分後に削除

出力

ファイルは当社のサーバーで処理され、30分後に削除されます。

このツールの使い方

  1. 1

    ブックをアップロードする

    XLSX、XLS、ODSのいずれかのファイルを追加します。読み込まれるのは最初のシートで、1行目が列名になります。1回に最大20ファイル、1ファイルあたり95 MBまで処理できます。

  2. 2

    SQL方言とテーブル名を選ぶ

    詳細設定を開き、SQL方言にスクリプトを実行するデータベースを指定して、SQLテーブル名に英字・数字・アンダースコアでテーブル名を入力します。

  3. 3

    変換してスクリプトを実行する

    SQLに変換を押して.sqlファイルをダウンロードし、データベースクライアントで実行するか、お使いのデータベースに付属するコマンドラインツールに渡します。

回答

ExcelをSQLに変換するには?

ブックをアップロードし、SQL方言でお使いのデータベースを選んでSQLに変換を押します。ヘッダー行から作成したCREATE TABLE文とデータ用のINSERT文を含む.sqlファイルが得られ、そのまま実行できます。

ExcelをSQLに変換:シートをINSERT文にしたいのはこんな人

データの出発点はスプレッドシートで、活用の場はデータベースです。開発者は営業チームからXLSXで届いた商品カタログを、午後までにステージング環境のデータベースへ入れなければなりません。アナリストは前四半期の目標を注文テーブルと並べ、1つのクエリで比較したいと考えています。どちらの場合も、シートの行は正しいのに、データベースが求めるのはステートメントです。

SQL自体は古くから安定しています。ANSIが最初のSQL標準を公開したのは1986年で、ISOは1987年に採用しました。データベースごとに今も違うのは細かな部分で、主に列名の引用方法と、文字列や日付の書き方です。そのため、このコンバーターは汎用のスクリプトを1つ出すのではなく、方言を選んでもらう仕組みになっています。データがすでにフラットファイルなら、CSV SQL変換でブックを経由せずに同じ処理ができます。

生成されるスクリプトのSQL方言による違い

識別子はバッククォートで囲まれるため、order dateのようなヘッダーも列名として保持されます。スクリプトはmysqlコマンドラインクライアント、MySQL Workbench、phpMyAdminのSQLタブで実行できます。

  • 文字列は単一引用符で囲まれ、文字列中の引用符は2つ重ねて表されます

ExcelからSQLへの変換結果サンプル

ヘッダーがid、customer、signup_dateで2行のシートを、PostgreSQL方言・テーブル名customersで変換した例
CREATE TABLE "customers" (
  "id" INTEGER,
  "customer" TEXT,
  "signup_date" DATE
);

INSERT INTO "customers" ("id", "customer", "signup_date") VALUES
  (1, 'O''Neill金物店', '2026-03-02'),
  (2, 'ブライトライン・スタジオ', '2026-04-15');

Excel SQL変換ツールとデータベースのインポートウィザードの比較

UltKitデータベースのインポートウィザード手書きのスクリプト
データベースに接続していなくても使えるyesnoyes
内容を確認でき、Gitにコミットして再実行できる出力yesnoyes
名前に含まれるアポストロフィを自動でエスケープyesyesno
日付をISOリテラルに書き換えyesロケール依存no
MySQL、PostgreSQL、SQLite、SQL Serverのどれにも同じファイルで対応方言を選択nono
ファイルの削除まで30分ローカルに残るローカルに残る

ExcelとSQLの形式の基本情報

XLSX

Microsoft Excel ブック

XLSX は、Office 2007 以降の Microsoft Excel の標準ブック形式で、Office Open XML 規格に基づいています。複数のシート、数式、書式、グラフ、ピボットテーブル、入力規則を、XML の ZIP パッケージとして保存します。1 シートあたり 100 万行を超えるデータを扱え、業務用スプレッドシートの標準的なやり取り形式です。Google スプレッドシート、LibreOffice、Numbers でも開けますが、マクロや高度な機能は引き継がれない場合があります。

圧縮方式
–
透過
–
アニメーション
–
登場時期
2007 · Microsoft
XLSX 変換

SQL

SQLスクリプト

SQLファイルは、CREATE TABLE や INSERT などの SQL(Structured Query Language)文を記述したプレーンテキストのスクリプトで、データベースが順に実行します。データベースのバックアップ、移行、サンプルデータの共有によく使われます。言語自体は ISO 標準ですが、MySQL、PostgreSQL、SQLite、SQL Server にはそれぞれ独自の方言があるため、システム間ではスクリプトに小さな修正が必要になることがよくあります。SQLファイルはどのテキストエディタでも開けますが、実行にはデータベースクライアントが必要です。

圧縮方式
–
透過
–
アニメーション
–
登場時期
–
SQL 変換

価格表、顧客のエクスポート、新しいアプリの初期データなど、人が管理しているリストを、クエリ・結合・制約が使える本物のテーブルにしたいときに、ExcelをSQLに変換します。

ExcelからSQLへの変換に関する質問

MySQL方言はMariaDBでも使えますか?

はい。MariaDBは2009年にMySQLからフォークして始まり、現在もバッククォートで囲んだ識別子や同じINSERT構文を読み込めます。Amazon RDSなどのマネージドサービスは通常のエンジンを動かしているため、ホスティング名ではなくエンジンの方言を選んでください。

Excelの日付はSQLファイルにどう書き出されますか?

Excelは日付を1900年からの日数で保存するため、そのまま読み込むと46313のような数値が挿入されてしまいます。このページでは日付をISOに設定しており、'2026-10-18'という形式で出力します。これはMySQL、PostgreSQL、SQLite、SQL Serverのどれでも日付列に使えるリテラルです。

1つのSQLスクリプトにどのくらいの大きさのシートまで入りますか?

XLSXのシートは最大1,048,576行、古いXLSは65,536行まで保持できます。その規模のスクリプトは大きくなるため、先にサーバーの上限を確認してください。MySQL 8.0では、1つのステートメントがmax_allowed_packet(デフォルトは64 MB)を超えると拒否されます。非常に大きなシートは、Excel CSV変換で作ったフラットファイルをデータベースのバルクローダーで読み込むほうが高速です。

テーブル名や列名は指定できますか?

テーブル名はSQLテーブル名で指定した値で、英字・数字・アンダースコアの64文字までです。列名はシートの1行目から取られるため、order_dateのようなスネークケースにしたい場合は、先にExcelでヘッダーを書き換えてください。

数式や書式はどうなりますか?

データベースは値を保存するため、数式のセルは最後に計算された結果が挿入されます。フォント、塗りつぶし、コメント、グラフはスクリプトには含まれません。

PostgreSQLで列名が小文字になるのはなぜですか?

PostgreSQLは引用符のない識別子を小文字に変換するため、名前を二重引用符で囲まない限り、OrderDateとorderdateは同じ列になります。PostgreSQL方言では識別子を引用符で囲むので、ヘッダー行に入力した大文字・小文字が保持されます。後でクエリを書くときも同じ引用符を付けてください。