Convertire XLSX in SQL

Qui converti XLSX in SQL gratis e senza account: trascina il file qui sopra e in un paio di secondi il risultato è pronto da scaricare. La conversione avviene dentro il tuo browser, quindi il file non viene mai caricato. Funziona allo stesso modo su Windows, macOS e Linux e anche su iPhone e Android, e continua a funzionare anche se stacchi la connessione.

  • Dove gira Nel tuo browser. Il file non viene mai caricato.
  • Ricostruito SQL funziona in modo diverso da XLSX. Non è quindi il degrado graduale di un codec con perdita: quello che SQL sa esprimere viene riprodotto fedelmente, e quello che lì non ha un equivalente non sopravvive affatto.
  • Limite di dimensione Fino a 100 MB per file, gratis e senza account.
  • Vale la pena saperlo Viene letto solo il primo foglio, e di quello solo i valori. Formule, formattazione, larghezza delle colonne e ogni foglio successivo restano fuori.

Fino a 100 file alla volta. Formati diversi insieme non sono un problema.

Ciò che ottenete sono righe, non uno schema

L’uscita è un file di istruzioni INSERT, una per riga del foglio, ognuna che nomina la tabella ed elenca le colonne dall’intestazione. Non c’è un CREATE TABLE in cima ed è deliberato: un foglio di calcolo non ha tipi, lunghezze, chiavi o vincoli, quindi qualsiasi schema derivato da esso sarebbe invenzione presentata come fatto.

Un’ipotesi sbagliata in una riga è un record cattivo. Un’ipotesi sbagliata in uno schema è un VARCHAR(50) che tronca indirizzi per due anni. L’assunzione qui è che abbiate già progettato la tabella, vero per quasi chiunque abbia bisogno di questa conversione, e ciò che volete è la parte noiosa scritta correttamente.

Il nome del file decide il nome della tabella

Il nome del foglio di calcolo, meno l’estensione, diventa la tabella in ogni istruzione. Viene sanificato prima: qualsiasi cosa non sia una lettera, cifra o underscore diventa un underscore, e un nome che inizia con una cifra ottiene un prefisso. Un file chiamato “2024 ordini.xlsx” inserisce quindi in _2024_ordini.

Il consiglio pratico segue direttamente. Rinominate il file esattamente come la tabella in cui state caricando prima di convertire, e l’uscita gira così com’è. Farlo al contrario significa una ricerca e sostituzione su cinquantamila righe, che funziona ed è un passo in più dove qualcuno sostituisce la stringa sbagliata.

Come viene scritto ogni valore

I numeri vengono scritti nudi. Il testo viene avvolto in virgolette singole con qualsiasi apostrofo interno raddoppiato, la forma ANSI che ogni motore importante capisce — O’Brien diventa O”Brien tra virgolette raddoppiate. L’escape con barra rovesciata non viene usato deliberatamente, perché è un’estensione MySQL.

Una cella vuota diventa la parola chiave NULL piuttosto che una stringa vuota, quasi sempre la lettura giusta di un vuoto in un foglio di calcolo. I valori stessi non vengono riformattati lungo il percorso. Un numero appare come lo memorizza il foglio di calcolo.

TRUE e FALSE non sono accettati ovunque

Una cella booleana viene scritta come il letterale TRUE o FALSE. Postgres lo accetta direttamente, MySQL li tratta come alias per 1 e 0, e SQLite li accetta da anni. SQL Server no: il suo tipo bit vuole 1 e 0, e un’istruzione contenente TRUE non si analizza.

È una correzione di due secondi una volta saputo — sostituite i letterali prima di eseguire lo script — e venti minuti fastidiosi se lo scoprite da un errore sulla quattrocentesima istruzione. Se la destinazione è SQL Server, fate prima la sostituzione.

Le colonne data sono dove questo caricamento va storto

Un foglio di calcolo contiene una data come conteggio di giorni con un formato di visualizzazione addosso, e la conversione scrive il valore piuttosto che l’aspetto. Il primo gennaio 2024 diventa 45292, contato dalla fine di dicembre 1899, e un timestamp diventa quel numero con una frazione attaccata.

Inserito in una colonna numerica atterra silenziosamente ed è sbagliato; inserito in una colonna data viene rifiutato, il che è almeno rumoroso. Correggetelo nel foglio di calcolo convertendo la colonna in testo con un formato non ambiguo, o caricate in una colonna di staging e convertite dentro il database.

Gli identificativi mantengono i loro zeri iniziali

Un codice memorizzato come testo nel foglio viene scritto come stringa tra virgolette, quindi 007 arriva come ’007’ e un riferimento account con zeri iniziali entra intatto in una colonna VARCHAR. È l’opposto di ciò che succede quando gli stessi dati passano per un CSV.

Il test utile per sapere se una colonna è un identificativo è se sommare due dei suoi valori significherebbe qualcosa. Codici postali, codici articolo, numeri di telefono e codici di riferimento falliscono tutti questo test e appartengono a una colonna di testo anche nella tabella di destinazione.

La lista delle colonne, e righe che non corrispondono tutte

Ogni istruzione nomina esplicitamente le sue colonne piuttosto che affidarsi all’ordine delle colonne della tabella, il che è ciò che fa sopravvivere il file a una tabella che nel frattempo ha guadagnato una colonna. L’insieme delle colonne è l’unione dei campi trovati in tutto il foglio.

Quella prolissità ha un costo da sapere. La lista delle colonne si ripete su ogni riga, quindi il file è più grande dei dati che contiene: cinquantamila righe di sei colonne sono uscite a circa 5,7 MB di SQL, contro circa 4,3 MB per il .xlsx da cui è stato fatto.

Cinquantamila istruzioni separate, e cosa farci

Le istruzioni vengono emesse una per riga senza transazione attorno e senza raggruppamento VALUES multi-riga. Eseguito così com’è contro Postgres o MySQL, sono cinquantamila viaggi di andata e ritorno e cinquantamila commit impliciti, abbastanza lento da essere notabile.

Avvolgere il file in BEGIN e COMMIT risolve entrambi i problemi e costa due righe. Per caricamenti genuinamente grandi lo strumento migliore è il percorso bulk — COPY in Postgres, LOAD DATA in MySQL, .import in SQLite — che legge un file delimitato direttamente ed è di un ordine di grandezza più veloce.

Un foglio, nel vostro browser, senza nulla inviato da nessuna parte

Il primo foglio del file di calcolo è quello che viene convertito, perché una serie di istruzioni INSERT si indirizza a una tabella. Se il foglio che volete non è il primo, spostatelo e convertite di nuovo.

Tutto avviene localmente: il foglio di calcolo viene analizzato e le istruzioni scritte nella pagina, senza caricamento e senza richiesta che porti il file. Conta più per questa coppia che per la maggior parte, dato che un foglio di calcolo diretto verso un database è di solito record clienti o transazioni.

Quando caricare invece un file delimitato

Se la tabella di destinazione è vuota e il volume è grande, generare SQL è la via lenta. Ogni database ha un loader bulk che legge un file delimitato direttamente, applica i tipi una volta e scrive a blocchi, e batterà comodamente uno script di istruzioni INSERT su qualsiasi cosa oltre qualche migliaio di righe.

Le istruzioni INSERT si guadagnano il loro posto quando il caricamento è piccolo, quando deve essere revisionato o depositato nel controllo versione prima di girare, quando verrà riprodotto contro diversi ambienti, o quando l’unico accesso che avete è una finestra di query.

Come convertire XLSX in SQL

  1. Trascina il tuo file XLSX su questa pagina, oppure fai clic per sceglierne uno.
  2. Scegli SQL come destinazione. La conversione avviene nel tuo browser e il file non viene caricato.
  3. Scarica il file SQL finito.

XLSX o SQL: cosa cambia

XLSX a confronto con SQL
XLSXSQL
Nome completoCartella di lavoro di ExcelIstruzioni INSERT SQL
Estensione del file.xlsx.sql
Tipo di mediaapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/sql
Prima pubblicazione20071986
Pubblicato daMicrosoft
SpecificaECMA-376ISO/IEC 9075
LicenzaStandard apertoStandard aperto
Situazione attualeAttualeAttuale
Si apre nel browserNessun browserNessun browser
Valutato al suo postoCSV, ODS, ParquetCSV, Parquet

Aprire il risultato

I programmi di sempre non coincidono: XLSX si apre in Microsoft Excel, LibreOffice Calc e Google Sheets, SQL in PostgreSQL, MySQL e DBeaver, quindi chi riceve il risultato ha bisogno di uno del secondo gruppo.

A che cosa serve ciascun formato

I due puntano a lavori diversi: XLSX a la modifica, SQL a spostare dati fra programmi e l'archiviazione. Vale la pena valutarlo prima, perché il motivo per cui esiste uno è di solito il motivo per cui l'altro risulta scomodo.

XLSX è il formato di Microsoft, pubblicato nel 2007. È descritto in ECMA-376, e vale la pena conoscerlo se il file deve sopravvivere allo strumento che lo ha scritto.

SQL risale al 1986, descritto in ISO/IEC 9075. PostgreSQL, MySQL e DBeaver lo leggono.

SQL è stato pubblicato nel 1986 e XLSX nel 2007. Il più vecchio è in genere il file più sicuro da consegnare; il più recente fa lo stesso lavoro con meno byte.

Da XLSX a SQL: domande frequenti

Il mio file XLSX viene caricato da qualche parte?

No. Questa conversione avviene interamente nel tuo browser, quindi il file non esce dal tuo dispositivo. Puoi controllarlo da solo: apri la scheda di rete degli strumenti per sviluppatori e converti qualcosa. Vedrai la pagina stessa e le richieste di statistica e di pubblicità con cui questo servizio si paga, e nemmeno una che porti il tuo file. Il motore di questa coppia è SheetJS, un lettore e scrittore di fogli di calcolo in JavaScript; il browser lo scarica una volta e lo tiene in cache.

Convertire XLSX in SQL è gratis?

Sì. Senza account, senza filigrana e senza una quota giornaliera da consumare: gira sulla tua macchina, quindi puoi tornare quante volte vuoi. Il browser lavora file fino a 100 MB, 100 per volta. SheetJS viene scaricato sulla tua macchina e gira lì, ed è per questo che non c’è un contatore.

Si perde qualità convertendo XLSX in SQL?

XLSX e SQL descrivono il contenuto in modi radicalmente diversi. La conversione è quindi una ricostruzione e non una copia: fedele, ma non identica byte per byte. Viene letto solo il primo foglio, e di quello solo i valori. Formule, formattazione, larghezza delle colonne e ogni foglio successivo restano fuori.

Devo installare qualcosa per aprire un file SQL?

Per la conversione no: avviene nel browser che hai già aperto. Per aprire il risultato ti serve poi il programma con cui il tuo dispositivo mostra di solito SQL Insert Statements.

Altro su questi formati