Convertire Excel in SQL Server
Trascina il tuo file Excel per ottenere uno script SQL Server con istruzioni CREATE TABLE e INSERT. Ogni colonna riceve un tipo e ogni correzione è elencata con la sua riga e colonna.
4 righe convertite, 10 correzioni, nessuna rifiutata
| Riga | ||||||
|---|---|---|---|---|---|---|
| 5 | 00127 | Peña Muñoz | 01234 | 03/02/2024 | sí | 1.234,50 |
| 6 | 00128 | José Ángel | 09870 | 15/02/2024 | no | N/A |
| 7 | 00129 | Zoë Ortíz | 44100 | 29/02/2024 | sí | -12,00 |
| 8 | 00130 | Ñuño Castañeda | 06700 | 11/03/2024 | no | 980,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;
Correzioni
- L'intestazione è alla riga 4; le righe sopra sono state escluse.
- La riga 9 ("TOTAL") è un totale, quindi è stata esclusa.
- La colonna "Nº Cliente" ora si chiama no_cliente, così SQL Server la legge senza virgolette.
- La colonna "C.P." ora si chiama c_p, così SQL Server la legge senza virgolette.
- Zeri iniziali mantenuti in "Nº Cliente": 00127 resta 00127, salvato come testo.
- Zeri iniziali mantenuti in "C.P.": 01234 resta 01234, salvato come testo.
- 15/02/2024 dimostra che le date in "Alta" hanno prima il giorno, quindi 03/02/2024 si legge come 2024‑02‑03.
- "Activo" contiene parole sì e no (sí, no), salvate come booleano.
- I numeri in "Saldo" usano la virgola decimale: 1.234,50 si legge come 1234.50.
- N/A in "Saldo" letti come vuoti (1 su 4 valori).
Il tuo file viene convertito su questo computer e non viene mai caricato.
Altri esempi:
Da Excel a SQL Server, colonna per colonna
L'esempio qui sopra, clientes_2024.xlsx, come IntoSQL lo scrive per SQL Server: cosa contiene ogni colonna nel file, il tipo che riceve e come il suo primo valore finisce nello script.
| Nel file | Primo valore | Colonna | Tipo SQL Server | Nello script |
|---|---|---|---|---|
| Nº Cliente | 00127 | no_cliente | nvarchar(8) | N'00127' |
| Nombre | Peña Muñoz | nombre | nvarchar(16) | N'Peña Muñoz' |
| C.P. | 01234 | c_p | nvarchar(8) | N'01234' |
| Alta | 03/02/2024 | alta | date | '2024-02-03' |
| Activo | sí | activo | bit | 1 |
| Saldo | 1.234,50 | saldo | decimal(6,2) | 1234.50 |
Carica lo script in SQL Server
Il download è un semplice file .sql. Eseguilo con gli strumenti di SQL Server.
Da un terminale
sqlcmd -S localhost -d mydb -f 65001 -i clientes_2024.sql_server.sql-f 65001 legge il file come UTF-8, così accenti e ñ arrivano come sono scritti.
Da uno strumento per database
In SQL Server Management Studio o Azure Data Studio, apri il file e scegli Execute.
Cosa sapere sui file Excel e su SQL Server
Cosa legge IntoSQL nei file Excel
- La riga di intestazione viene trovata anche se sopra ci sono titoli o note, e una riga dei totali alla fine viene esclusa.
- Le date salvate come numeri seriali di Excel diventano date vere, sia nel sistema di date 1900 sia nel 1904.
- I codici con zeri iniziali, come 00127, restano testo. Se una cartella di lavoro ha più fogli, scegli tu il foglio.
Cosa sapere su SQL Server
- Il testo è nvarchar con valori N'...', così gli accenti restano intatti; il testo oltre 4000 caratteri diventa nvarchar(max).
- I valori sì e no diventano bit, e le date con fuso diventano datetimeoffset.
- I valori lunghi vengono scritti a pezzi, così sqlcmd e SQL Server Management Studio accettano lo script.
Come viene salvato ogni tipo di valore in SQL Server
| Valore | SQL Server |
|---|---|
| Sì e no | bit |
| Numeri interi | int |
| Numeri interi grandi | bigint |
| Decimali | decimal(p,s) |
| Numeri in virgola mobile | float |
| Date | date |
| Orari | time |
| Date con ora | datetime2 |
| Date con ora e fuso | datetimeoffset |
| Testo | nvarchar(n)nvarchar(max) |
Domande su Excel in SQL Server
Non trovi la risposta? Scrivici dalla pagina dei contatti e ti risponde una persona. Pagina dei contatti
Come converto Excel in SQL Server?
Trascina il file sul convertitore in cima a questa pagina. Trova l'intestazione, legge ogni valore e scrive lo script SQL Server, elencando ogni correzione fatta. Scarica lo script ed eseguilo con sqlcmd.
Quale foglio della cartella di lavoro viene convertito?
Il primo foglio visibile. Se la cartella di lavoro ne ha più di uno, compare l'opzione Foglio per sceglierne un altro.
Quali tipi SQL Server usa?
I valori sì e no diventano bit, i numeri interi int, i decimali decimal(p,s), le date date, le date con ora datetime2 e il testo nvarchar(n). Le dimensioni dipendono dal valore più lungo di ogni colonna.
Mantiene gli zeri iniziali in SQL Server?
Sì. Un codice come 00127 resta testo, quindi SQL Server lo salva come nvarchar(8) e lo script lo scrive come N'00127'.
Può caricare i dati in SQL Server senza uno script?
No. Scarica lo script ed eseguilo con sqlcmd. Il caricamento senza script funziona per PostgreSQL, MySQL, MariaDB e SQLite, dall'app desktop o dalla riga di comando.
Quanto può essere grande il file Excel?
Nel browser la cartella di lavoro viene letta per intero, quindi il limite è la memoria che il browser concede a questa pagina. L'app desktop e la riga di comando accettano cartelle di lavoro di qualsiasi dimensione; su un portatile Apple M4 la riga di comando converte una cartella di lavoro di 117 MB con un milione di righe in circa un secondo.