Zum Inhalt springen

Excel in SQL umwandeln

Leg deine Excel-Datei ab und wähle deine Datenbank, um ein SQL-Skript mit CREATE TABLE- und INSERT-Anweisungen zu erhalten. Jede Spalte bekommt einen Typ, und jede Korrektur wird mit Zeile und Spalte aufgeführt.

Deine Datei
xlsxclientes_2024.xlsxBeispieldatei, 7 kB
Deine Datenbank

4 Zeilen konvertiert, 10 Korrekturen, keine abgelehnt

Anzeigen
Die ersten Zeilen von clientes_2024.xlsx, jede Korrektur markiert
Zeile
500127Peña Muñoz0123403/02/2024sí1.234,50
600128José Ángel0987015/02/2024noN/A
700129Zoë Ortíz4410029/02/2024sí-12,00
800130Ñuño Castañeda0670011/03/2024no980,75
-- Written by IntoSQL for PostgreSQL.

SET client_encoding = 'UTF8';
BEGIN;

CREATE TABLE clientes_2024 (
    no_cliente text NOT NULL,
    nombre text NOT NULL,
    c_p text NOT NULL,
    alta date NOT NULL,
    activo boolean NOT NULL,
    saldo numeric(6,2)
);
COMMENT ON COLUMN clientes_2024.no_cliente IS 'Nº Cliente';
COMMENT ON COLUMN clientes_2024.c_p IS 'C.P.';

INSERT INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES
('00127', 'Peña Muñoz', '01234', '2024-02-03', TRUE, 1234.50),
('00128', 'José Ángel', '09870', '2024-02-15', FALSE, NULL),
('00129', 'Zoë Ortíz', '44100', '2024-02-29', TRUE, -12.00),
('00130', 'Ñuño Castañeda', '06700', '2024-03-11', FALSE, 980.75);

COMMIT;

Korrekturen

  1. Die Kopfzeile ist in Zeile 4; die Zeilen darüber wurden ausgelassen.
  2. Zeile 9 ("TOTAL") ist eine Summe und wurde deshalb ausgelassen.
  3. Spalte "Nº Cliente" heißt jetzt no_cliente, damit PostgreSQL sie ohne Anführungszeichen liest.
  4. Spalte "C.P." heißt jetzt c_p, damit PostgreSQL sie ohne Anführungszeichen liest.
  5. Führende Nullen in "Nº Cliente" behalten: 00127 bleibt 00127, gespeichert als Text.
  6. Führende Nullen in "C.P." behalten: 01234 bleibt 01234, gespeichert als Text.
  7. 15/02/2024 belegt, dass die Datumsangaben in "Alta" mit dem Tag beginnen, also wird 03/02/2024 als 2024‑02‑03 gelesen.
  8. "Activo" enthält Ja- und Nein-Wörter (sí, no), gespeichert als Boolean.
  9. Zahlen in "Saldo" nutzen ein Dezimalkomma: 1.234,50 wird als 1234.50 gelesen.
  10. N/A in "Saldo" als leer gelesen (1 von 4 Werten).

Deine Datei wird auf diesem Computer umgewandelt und nie hochgeladen.

Weitere Beispiele:

Eine Excel-Datei, sechs Datenbanken

Das Beispiel oben, clientes_2024.xlsx, und der Typ, den jede seiner Spalten in jeder Datenbank bekommt.

In der DateiErster WertPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Nº Cliente00127textvarchar(8)varchar(8)TEXTnvarchar(8)VARCHAR2(8 CHAR)
NombrePeña Muñoztextvarchar(16)varchar(16)TEXTnvarchar(16)VARCHAR2(16 CHAR)
C.P.01234textvarchar(8)varchar(8)TEXTnvarchar(8)VARCHAR2(8 CHAR)
Alta03/02/2024datedatedateDATEdateDATE
Activosíbooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Saldo1.234,50numeric(6,2)decimal(6,2)decimal(6,2)NUMERIC(6,2)decimal(6,2)NUMBER(6,2)

Das Skript in deine Datenbank laden

Der Download ist eine einfache .sql-Datei. Jede Datenbank führt sie mit ihren eigenen Werkzeugen aus.

  • PostgreSQL

    psql -v ON_ERROR_STOP=1 -d mydb -f clientes_2024.postgresql.sql

    ON_ERROR_STOP lässt psql beim ersten Fehler anhalten. Das Skript läuft in einer Transaktion, ein fehlgeschlagener Import lässt die Datenbank also unverändert.

  • MySQL

    mysql --default-character-set=utf8mb4 mydb < clientes_2024.mysql.sql

    Das Skript setzt utf8mb4 selbst; das Flag sorgt dafür, dass der Client genauso sendet, damit Akzente unverändert ankommen.

  • MariaDB

    mariadb --default-character-set=utf8mb4 mydb < clientes_2024.mariadb.sql

    Das Skript setzt utf8mb4 selbst; das Flag sorgt dafür, dass der Client genauso sendet, damit Akzente unverändert ankommen.

  • SQLite

    sqlite3 clientes_2024.db < clientes_2024.sqlite.sql

    Die Datenbankdatei wird angelegt, falls sie nicht existiert. Der Konverter lädt auch eine fertige .sqlite-Datenbank herunter, ganz ohne Befehl.

  • SQL Server

    sqlcmd -S localhost -d mydb -f 65001 -i clientes_2024.sql_server.sql

    -f 65001 liest die Datei als UTF-8, damit Akzente und ñ so ankommen, wie sie geschrieben sind.

  • Oracle

    sqlplus user@//localhost/mydb @clientes_2024.oracle.sql

    Das Skript schaltet Substitutionsvariablen aus (SET DEFINE OFF), damit ein kaufmännisches Und in deinen Daten erhalten bleibt.

Die Kommandozeile lädt Dateien kostenlos direkt in eine SQLite-Datenbank. Mit IntoSQL Pro laden sie und die Desktop-App auch in PostgreSQL, MySQL und MariaDB. Für SQL Server und Oracle führst du das Skript aus.

Was du über Excel-Dateien und jede Datenbank wissen solltest

Was IntoSQL in Excel-Dateien liest

  • Die Kopfzeile wird auch gefunden, wenn Titel oder Notizen darüber stehen, und eine Summenzeile am Ende wird weggelassen.
  • Als Excel-Seriennummern gespeicherte Datumswerte werden zu echten Datumswerten, im 1900- wie im 1904-Datumssystem.
  • Codes mit führenden Nullen wie 00127 bleiben Text. Hat eine Arbeitsmappe mehrere Blätter, wählst du das Blatt aus.

Was du über jede Datenbank wissen solltest

  • Wähle die Datenbank, sobald die Datei geöffnet ist: Jede bekommt die Typen, die sie unterstützt.

Wie jede Art von Wert in jeder Datenbank gespeichert wird

WertPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Ja und neinbooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Ganze ZahlenintegerintintINTEGERintNUMBER(10)
Große ganze ZahlenbigintbigintbigintINTEGERbigintNUMBER(19)
Dezimalzahlennumeric(p,s)decimal(p,s)doubledecimal(p,s)doubleNUMERIC(p,s)TEXTdecimal(p,s)NUMBER(p,s)
Gleitkommazahlendouble precisiondoubledoubleREALfloatBINARY_DOUBLE
DatumswertedatedatedateDATEdateDATE
Uhrzeitentimetime(6)timetime(6)timeTIMEtimeINTERVAL DAY(0) TO SECOND
Datum mit Uhrzeittimestampdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetime2TIMESTAMP
Datum mit Uhrzeit und Zeitversatztimestamptzdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetimeoffsetTIMESTAMP WITH TIME ZONE
Texttextvarchar(n)textmediumtextlongtextvarchar(n)textmediumtextlongtextTEXTnvarchar(n)nvarchar(max)VARCHAR2(n CHAR)CLOB

Fragen zu Excel zu SQL

Keine Antwort gefunden? Schreib uns über die Kontaktseite, und ein Mensch antwortet. Kontaktseite

Wie konvertiere ich Excel zu SQL?

Leg deine Datei auf den Konverter oben auf dieser Seite und wähle deine Datenbank: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server oder Oracle. Jede bekommt die Typen, die sie unterstützt. Lade das Skript herunter und führe es in deiner Datenbank aus.

Welches Blatt der Arbeitsmappe wird konvertiert?

Das erste sichtbare Blatt. Hat eine Arbeitsmappe mehrere, erscheint die Option Blatt, mit der du ein anderes wählen kannst.

Welche Typen werden in jeder Datenbank verwendet?

Jede Datenbank bekommt ihre eigenen: Ja/Nein-Werte sind boolean in PostgreSQL, tinyint(1) in MySQL und MariaDB, bit in SQL Server und NUMBER(1) in Oracle. Die Tabelle auf dieser Seite listet jede Art von Wert.

Bleiben führende Nullen erhalten?

Ja. Ein Code wie 00127 bleibt in jeder Datenbank Text, geschrieben als '00127', damit keine Null verloren geht.

Kann es die Daten ohne Skript laden?

Ja. Die Kommandozeile lädt kostenlos in SQLite, und mit IntoSQL Pro laden die Desktop-App und die Kommandozeile in PostgreSQL, MySQL und MariaDB. Für SQL Server und Oracle führst du das Skript aus.

Wie groß darf die Excel-Datei sein?

Im Browser wird eine Arbeitsmappe vollständig gelesen, die Grenze ist also der Speicher, den der Browser dieser Seite gibt. Die Desktop-App und die Kommandozeile nehmen Arbeitsmappen jeder Größe; auf einem Apple-M4-Laptop konvertiert die Kommandozeile eine 117-MB-Arbeitsmappe mit einer Million Zeilen in etwa einer Sekunde.