UltKit

Excel转SQL在线转换

转换器会生成一份SQL脚本:根据表头行建表,并把表头下方的每一行插入表中,引号和转义按你选择的数据库处理。

数据转换器

或将CSV, TSV, TXT … 文件拖放到此处 ·

单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除

输出

文件在我们的服务器上处理,并在 30 分钟后删除。

使用方法

  1. 1

    上传工作簿

    添加 XLSX、XLS 或 ODS 文件。程序会读取第一个工作表,并以首行作为列名。每批最多 20 个文件,每个文件最大 95 MB。

  2. 2

    选择SQL方言和表名

    打开高级设置,将 SQL 方言设为你要运行脚本的数据库,然后输入 SQL 表名,只能使用字母、数字和下划线。

  3. 3

    转换并运行脚本

    点击转换为 SQL,下载 .sql 文件,在数据库客户端中运行,或交给数据库自带的命令行工具执行。

答案

如何将 Excel 转换为 SQL?

上传工作簿,在 SQL 方言中选择你的数据库,然后点击转换为 SQL。你会得到一个 .sql 文件,其中包含根据表头生成的 CREATE TABLE 语句和数据的 INSERT 语句,可直接运行。

Excel转SQL:谁需要把表格转成INSERT语句

电子表格是数据的起点,数据库是数据被使用的地方。开发人员收到销售团队发来的 XLSX 产品目录,下午就要把它放进预发布数据库;分析师想把上季度目标和订单表放在一起,用一条查询就能对比。这些情况下,表格里的行都没问题,只是数据库需要的是语句。

SQL 本身古老而稳定:ANSI 于 1986 年发布了第一个 SQL 标准,ISO 于 1987 年采纳。各数据库之间仍有差异的是细节,主要是列名如何加引号,以及字符串和日期如何书写。这就是转换器要你选择方言,而不是生成一份通用脚本的原因。如果你的数据已经是平面文件,CSV 转 SQL 可以省去工作簿这一步,完成同样的工作。

生成脚本中各SQL方言的差异

标识符用反引号包裹,因此像 order date 这样的表头也能保留为列名。脚本可在 mysql 命令行客户端、MySQL Workbench 或 phpMyAdmin 的 SQL 标签页中运行。

  • 字符串使用单引号,内部的引号会重复一次进行转义

Excel转SQL输出示例

表头为 id、customer、signup_date 且有两行数据的工作表,使用 PostgreSQL 方言、表名 customers 转换的结果
CREATE TABLE "customers" (
  "id" INTEGER,
  "customer" TEXT,
  "signup_date" DATE
);

INSERT INTO "customers" ("id", "customer", "signup_date") VALUES
  (1, 'O''Neill Hardware', '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 包中。每个工作表支持超过一百万行,是商务电子表格默认的交换格式。Google 表格、LibreOffice 和 Numbers 都能打开 XLSX,但宏和高级功能可能无法保留。

压缩方式
–
透明度
–
动画
–
发布年份
2007 · Microsoft
XLSX 转换器

SQL

SQL 脚本

SQL 文件是由结构化查询语言语句(如 CREATE TABLE 和 INSERT)组成的纯文本脚本,数据库会按顺序执行。常用于数据库备份、迁移和共享示例数据。该语言本身是 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 的日期列都能接受。

一个SQL脚本最多能放多大的表格?

XLSX 工作表最多 1,048,576 行,旧版 XLS 最多 65,536 行。这么大的脚本体积不小,请先确认服务器限制:MySQL 8.0 会拒绝超过 max_allowed_packet(默认 64 MB)的单条语句。对于特别大的工作表,先用 Excel 转 CSV 得到平面文件,再用数据库的批量导入工具会更快。

可以自定义表名和列名吗?

表名取自 SQL 表名,最多 64 个字符,可用字母、数字和下划线。列名取自工作表第 1 行,如果想用 order_date 这样的蛇形命名,请先在 Excel 中修改表头。

公式和格式会怎么处理?

数据库存储的是值,因此每个公式单元格都会按最后一次计算结果插入。字体、填充、批注和图表不会进入脚本。

为什么在PostgreSQL中列名变成了小写?

PostgreSQL 会把未加引号的标识符转为小写,所以除非名称用双引号包裹,否则 OrderDate 和 orderdate 是同一列。PostgreSQL 方言会为标识符加引号,从而保留表头中输入的大小写;之后查询时也要使用同样的引号。