Conversor de Excel a SQL
Suelta un libro de Excel o pega un rango de celdas y obtén una sentencia CREATE TABLE con tipos de columna deducidos, además de sentencias INSERT por lotes para MySQL, PostgreSQL, SQLite o SQL Server. Las fechas, los números y las celdas TRUE/FALSE conservan sus tipos reales de Excel, y nada sale de tu dispositivo.
Última actualización:
Columnas
Cambia el nombre de una columna o sustituye su tipo detectado. Los cambios se aplican al instante a la hoja actual.
| Celda | Nombre de columna | Tipo | Detectado | Vacías | Ejemplo |
|---|
Cómo usar Conversor de Excel a SQL
- Suelta tu libro (.xlsx, .xls u .ods) o cambia a la pestaña de pegar y pega un rango copiado.
- Elige la hoja y la fila de encabezado. Haz clic en un número de fila de la vista previa para usar esa fila como nombres de columna.
- Elige el dialecto SQL, el nombre de la tabla, las filas por INSERT y la opción de clave primaria.
- Revisa las columnas: cámbiales el nombre, sustituye un tipo detectado u omite las columnas que no necesites.
- Copia o descarga el archivo .sql y ejecútalo en tu cliente de base de datos.
Cómo se asignan los tipos de celda de Excel a SQL
| Celdas de Excel en la columna | MySQL | PostgreSQL | SQLite | SQL Server |
|---|---|---|---|---|
| Números enteros (42, -7) | INT | INTEGER | INTEGER | INT |
| Números enteros mayores que 2,147,483,647 | BIGINT | BIGINT | INTEGER | BIGINT |
| Números con decimales (19.95) | DECIMAL(p,s) | NUMERIC(p,s) | REAL | DECIMAL(p,s) |
| TRUE / FALSE | BOOLEAN | BOOLEAN | INTEGER (1/0) | BIT (1/0) |
| Celdas con formato de fecha | DATE | DATE | TEXT (ISO) | DATE |
| Celdas de fecha y hora | DATETIME | TIMESTAMP | TEXT (ISO) | DATETIME2 |
| Celdas solo con hora (09:30) | TIME | TIME | TEXT | TIME |
| Texto de hasta 255 caracteres | VARCHAR(n) | VARCHAR(n) | TEXT | NVARCHAR(n) |
| Texto más largo | TEXT | TEXT | TEXT | NVARCHAR(MAX) |
En DECIMAL(p,s), p es el número total de dígitos y s los dígitos después del punto decimal, ambos tomados del valor más ancho de la columna. Excel guarda los números en coma flotante de 64 bits, así que un valor como 0.1 + 0.2 se redondea a 15 dígitos significativos (0.3) antes de escribirse, la misma precisión que muestra Excel.
Las fechas de Excel y el sistema de fechas 1900
En Excel una fecha es un número: 1 es el 1 de enero de 1900 y 45,306 es el 15 de enero de 2024. La fracción es la hora del día, así que 45,306.5 es el mediodía. Excel también cuenta un 29 de febrero de 1900 que nunca existió, una herencia de la compatibilidad con las primeras hojas de cálculo, por lo que los números de serie del 1 al 60 están desplazados un día. Los libros guardados con el sistema de fechas 1904 de Mac empiezan a contar el 1 de enero de 1904. El conversor gestiona los tres casos y escribe las fechas como 'YYYY-MM-DD' y las fechas con hora como 'YYYY-MM-DD HH:MM:SS', formatos que MySQL, PostgreSQL, SQLite y SQL Server interpretan.
Consejos para una importación limpia
- Una fila de encabezado, una tabla. Quita los títulos, notas y totales por encima o por debajo de los datos, o indica el número de fila de encabezado para que se omitan.
- Las celdas combinadas solo conservan un valor en su celda superior izquierda; las demás celdas de la combinación pasan a NULL. Si te importa, descombínalas y rellénalas primero en Excel.
- Las columnas mixtas (números y texto en la misma columna) se tipan como VARCHAR para que ninguna fila falle al insertarse. Sustituye el tipo en la lista de columnas si los valores de texto son errores que vas a corregir.
- Las hojas muy grandes se importan más rápido con el cargador masivo de la base de datos. Guarda la hoja como CSV y usa
LOAD DATA INFILE(MySQL),\copy(PostgreSQL),.import --csv(SQLite) oBULK INSERT(SQL Server); aun así puedes usar esta página para generar la sentencia CREATE TABLE. - Envuelve el script en una transacción para que una sola fila incorrecta revierta toda la importación en lugar de dejar media tabla.
Preguntas frecuentes
¿Cómo decide el conversor el tipo de cada columna?
Revisa cada celda no vacía de la columna. Los números enteros pasan a INT (BIGINT por encima de 2,147,483,647), los números con decimales pasan a DECIMAL dimensionado según el valor más ancho, las celdas con formato de fecha pasan a DATE o DATETIME, las celdas solo con hora pasan a TIME, las celdas TRUE/FALSE pasan a BOOLEAN y todo lo demás pasa a VARCHAR dimensionado según el valor más largo, o a TEXT por encima de 255 caracteres.
¿Por qué mis fechas de Excel salen como fechas y no como números?
Excel guarda las fechas como números de serie (días desde el 1 de enero de 1900) y solo el formato de número de la celda las marca como fechas. El conversor lee ese formato y convierte el número de serie en una fecha ISO como 2024-01-15, que todos los dialectos SQL aceptan como literal de fecha.
¿Puedo convertir todas las hojas de un libro a la vez?
Sí. Marca "Todas las hojas" y el script contendrá un bloque CREATE TABLE e INSERT por cada hoja de cálculo, con nombres de tabla tomados de los nombres de las hojas. Los cambios de nombre de columna y de tipo se aplican a la hoja seleccionada; las demás hojas usan los tipos detectados.
¿Qué pasa con las celdas vacías y los errores de Excel?
Las celdas vacías pasan a NULL. Los valores de error como #N/A, #DIV/0! o #REF! también se escriben como NULL y se cuentan en la línea de estado para que puedas encontrarlos y corregirlos en el libro. Las filas completamente vacías se omiten salvo que desactives esa opción.
¿Conserva los ceros a la izquierda en códigos como los códigos postales?
Sí, siempre que Excel los haya guardado como texto (por ejemplo 02134 escrito en una celda con formato Texto). Esas columnas siguen siendo VARCHAR para que no se pierdan los ceros. Si la celda se guardó como número, Excel ya eliminó el cero antes de guardar el archivo.
¿Se convierten las fórmulas?
El conversor usa el valor que Excel guardó con el archivo (el último resultado calculado), no la fórmula en sí. SQL no tiene equivalente a una fórmula de celda, así que los valores calculados son lo que normalmente quieres en una tabla.
¿Se sube mi hoja de cálculo?
No. El libro se abre con JavaScript dentro de la pestaña de tu navegador y el SQL también se genera allí. Los archivos antiguos .xls y .ods necesitan el lector de código abierto SheetJS, que se descarga de una CDN la primera vez; tu archivo sigue quedándose en tu dispositivo.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.
Herramientas relacionadas
Ver todas las de Conversores de datos y formatos de archivo →