Saltar al contenido

Convertir Excel a SQL Server

Suelta tu archivo Excel y obtén un script de SQL Server con sentencias CREATE TABLE e INSERT. Cada columna recibe un tipo, y cada corrección se detalla con su fila y columna.

Tu archivo
xlsxclientes_2024.xlsxArchivo de ejemplo, 7 kB
Tu base de datos

4 filas convertidas, 10 correcciones, ninguna rechazada

Mostrar
Las primeras filas de clientes_2024.xlsx, con cada corrección marcada
Fila
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 SQL Server.

SET NOCOUNT ON;
BEGIN TRANSACTION;

CREATE TABLE clientes_2024 (
    no_cliente nvarchar(8) NOT NULL, -- Nº Cliente
    nombre nvarchar(16) NOT NULL,
    c_p nvarchar(8) NOT NULL, -- C.P.
    alta date NOT NULL,
    activo bit NOT NULL,
    saldo decimal(6,2)
);

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

COMMIT TRANSACTION;

Correcciones

  1. El encabezado está en la fila 4; las filas de arriba se dejaron fuera.
  2. La fila 9 ("TOTAL") es un total, así que se dejó fuera.
  3. La columna "Nº Cliente" pasa a llamarse no_cliente para que SQL Server la lea sin comillas.
  4. La columna "C.P." pasa a llamarse c_p para que SQL Server la lea sin comillas.
  5. Se conservaron los ceros a la izquierda en "Nº Cliente": 00127 sigue siendo 00127, guardado como texto.
  6. Se conservaron los ceros a la izquierda en "C.P.": 01234 sigue siendo 01234, guardado como texto.
  7. 15/02/2024 demuestra que las fechas de "Alta" llevan el día primero, así que 03/02/2024 se lee como 2024‑02‑03.
  8. "Activo" contiene palabras de sí y no (sí, no); se guarda como booleano.
  9. Los números de "Saldo" usan coma decimal: 1.234,50 se lee como 1234.50.
  10. N/A en "Saldo" se leyeron como vacíos (1 de 4 valores).

Tu archivo se convierte en esta computadora y nunca se sube.

Otros ejemplos:

De Excel a SQL Server, columna por columna

El ejemplo de arriba, clientes_2024.xlsx, tal como IntoSQL lo escribe para SQL Server: qué contiene cada columna en el archivo, qué tipo recibe y cómo queda su primer valor en el script.

En el archivoPrimer valorColumnaTipo en SQL ServerEn el script
Nº Cliente00127no_clientenvarchar(8)N'00127'
NombrePeña Muñoznombrenvarchar(16)N'Peña Muñoz'
C.P.01234c_pnvarchar(8)N'01234'
Alta03/02/2024altadate'2024-02-03'
Activosíactivobit1
Saldo1.234,50saldodecimal(6,2)1234.50

Carga el script en SQL Server

La descarga es un archivo .sql simple. Ejecútalo con las herramientas propias de SQL Server.

Desde una terminal

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

-f 65001 lee el archivo como UTF-8, así que los acentos y la ñ llegan tal como están escritos.

Desde una herramienta de base de datos

En SQL Server Management Studio o Azure Data Studio, abre el archivo y elige Execute.

Qué saber sobre los archivos Excel y SQL Server

Qué lee IntoSQL en los archivos Excel

  • La fila de encabezado se encuentra aunque haya títulos o notas encima, y una fila de totales al final se deja fuera.
  • Las fechas guardadas como números de serie de Excel se vuelven fechas reales, tanto en el sistema de fechas 1900 como en el 1904.
  • Los códigos con ceros a la izquierda, como 00127, se quedan como texto. Si un libro tiene varias hojas, tú eliges la hoja.

Qué saber sobre SQL Server

  • El texto es nvarchar con valores N'...', así que los acentos se conservan; el texto de más de 4000 caracteres se vuelve nvarchar(max).
  • Los valores sí y no se vuelven bit, y las fechas con zona horaria se vuelven datetimeoffset.
  • Los valores largos se escriben en partes, así que sqlcmd y SQL Server Management Studio aceptan el script.

Cómo se guarda cada tipo de valor en SQL Server

ValorSQL Server
Sí y nobit
Números enterosint
Números enteros grandesbigint
Decimalesdecimal(p,s)
Números de punto flotantefloat
Fechasdate
Horas del díatime
Fechas con horadatetime2
Fechas con hora y zona horariadatetimeoffset
Textonvarchar(n)nvarchar(max)

Preguntas sobre Excel a SQL Server

¿No encuentras la respuesta? Escríbenos desde la página de contacto y te responde una persona. Página de contacto

¿Cómo convierto Excel a SQL Server?

Suelta tu archivo en el convertidor al inicio de esta página. Encuentra el encabezado, lee cada valor y escribe el script de SQL Server, con la lista de cada corrección que hizo. Descarga el script y ejecútalo con sqlcmd.

¿Qué hoja del libro se convierte?

La primera hoja visible. Cuando un libro tiene más de una, aparece la opción Hoja para que elijas otra.

¿Qué tipos de SQL Server usa?

Los valores sí y no pasan a bit, los enteros a int, los decimales a decimal(p,s), las fechas a date, las fechas con hora a datetime2 y el texto a nvarchar(n). Los tamaños salen del valor más largo de cada columna.

¿Conserva los ceros a la izquierda en SQL Server?

Sí. Un código como 00127 se queda como texto, así que SQL Server lo guarda como nvarchar(8) y el script lo escribe como N'00127'.

¿Puede cargar los datos en SQL Server sin un script?

No. Descarga el script y ejecútalo con sqlcmd. La carga sin script funciona con PostgreSQL, MySQL, MariaDB y SQLite, desde la app de escritorio o la línea de comandos.

¿Qué tan grande puede ser el archivo de Excel?

En el navegador, el libro se lee completo, así que el límite es la memoria que el navegador le da a esta página. La app de escritorio y la línea de comandos aceptan libros de cualquier tamaño; en una laptop con Apple M4, la línea de comandos convierte un libro de 117 MB con un millón de filas en cerca de un segundo.