Come importre un file excel in un database MySQL

Può spiegare come importre un file di Microsoft Excel in un database MySQL?

Ad esempio, la mia tabella di Excel è simile a questa:

Country | Amount | Qty ---------------------------------- America | 93 | 0.60 Greece | 9377 | 0.80 Australia | 9375 | 0.80 

Grazie in anticipo.

Fero

  1. Esportrlo in un formato di text. Il più facile sarà probabilmente una versione delimitata da tabulazioni, ma CSV può anche funzionare.

  2. Utilizza la capacità dei dati di carico. Vedere http://dev.mysql.com/doc/refman/5.1/en/load-data.html

  3. Guardate a metà giù la pagina, in quanto fornirà un buon esempio per i dati separati da tabulazione:

    CAMPI TERMINATI DA '\ t' CONCLUSI DA '' ESCURSIONATO ''

  4. Controlla i tuoi dati. A volte la citazione o la fuga ha problemi, e devi regolare la fonte, il command di importzione – oppure può essere semplicemente più facile post-processare tramite SQL.

C'è un semplice strumento online che può fare questo chiamato sqlizer.io .

Schermata di sqlizer.com

Carica un file XLSX, inserisci un nome di foglio e un intervallo di celle e genera un'istruzione CREATE TABLE e un gruppo di istruzioni INSERT per importre tutti i tuoi dati in un database MySQL.

Ci sono in realtà diversi modi per importre un file excel in un database MySQL con vari gradi di complessità e successo.

  1. Utilità Excel2MySQL o Navicat . Full disclosure, io sono l'autore di Excel2MySQL. Queste 2 utilità non sono libere, ma sono l'opzione più semplice e hanno limitazioni minime. Essi includono anche funzionalità aggiuntive per facilitare l'importzione di dati Excel in MySQL. Ad esempio, Excel2MySQL crea automaticamente la tua tabella e ottimizza automaticamente i tipi di dati di field come le date, i tempi, i float, ecc. Se il tuo in fretta o non può get le altre opzioni per lavorare con i tuoi dati, allora queste utility possono soddisfare le vostre esigenze.

    screenshot di Excel2MySQL

  2. LOAD DATA INFILE : Questa opzione popolare è forse la più tecnica e richiede una certa comprensione dell'esecuzione di command di MySQL. È necessario creare manualmente la tabella prima di caricare e utilizzare tipi di field appropriati VARCHAR. Di conseguenza, i tipi di dati di field non sono ottimizzati. LOAD DATA INFILE ha difficoltà a importre file di grandi size che superano la dimensione 'max_allowed_packet'. Un'attenzione particolare è necessaria per evitare problemi di importzione di caratteri speciali e di caratteri unicode stranieri. Ecco un esempio recente che ho usato per importre un file csv denominato test.csv.

    immettere qui la descrizione dell'immagine

  3. phpMyAdmin : Seleziona prima il tuo database, quindi seleziona la scheda Import. phpMyAdmin creerà automaticamente la tabella e le size dei campi VARCHAR, ma non ottimizza i tipi di field. phpMyAdmin ha difficoltà a importre file di grandi size che superano la dimensione "max_allowed_packet".

    immettere qui la descrizione dell'immagine

  4. MySQL for Excel : Questo è un componente aggiuntivo gratuito di Excel da Oracle. Questa opzione è un po 'noiosa perché utilizza una procedura guidata e l'importzione è lenta e buggy con file di grandi size, ma questa può essere una buona opzione per i file di piccole size con dati VARCHAR. I campi non sono ottimizzati.

    immettere qui la descrizione dell'immagine

Di seguito è un altro metodo per importre i dati del foglio di calcolo in un database MySQL che non si basa su alcun software extra. Supponiamo che tu voglia importre la tua tabella di Excel nella tabella di sales di un database MySQL denominato database mydatabase .

  1. Seleziona le celle pertinenti:

    immettere qui la descrizione dell'immagine

  2. Incollare in Mr. Data Converter e select l'output come MySQL:

    immettere qui la descrizione dell'immagine

  3. Modificare il nome della tabella e le definizioni delle colonne per soddisfare le tue esigenze nell'output generato:

 CREATE TABLE sales ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Country VARCHAR(255), Amount INT, Qty FLOAT ); INSERT INTO sales (Country,Amount,Qty) VALUES ('America',93,0.60), ('Greece',9377,0.80), ('Australia',9375,0.80); 
  1. Se si utilizza MySQL Workbench o si è già registrato in mysql dalla row di command, è ansible eseguire direttamente le istruzioni SQL generate dal passaggio 3. In caso contrario, incollare il codice in un file di text (es. import.sql ) e eseguire questo command da una shell Unix:

    mysql mydatabase < import.sql

    Altri methods per l'importzione da un file SQL possono essere trovati in questa risposta di overflow dello stack .

Non sono sicuro se hai tutto questo setup, ma per me sto utilizzando PHP e MYSQL. Quindi uso una class PHP PHPExcel. Questo prende un file in quasi tutti i formati, xls, xlsx, cvs … e poi ti consente di leggere e / o inserire.

Quindi ciò che finisco per fare è caricare l'eccellenza in un object phpexcel e poi passare attraverso tutte le righe. Sulla base di ciò che voglio, scrivo un semplice command insert SQL per inserire i dati nel file excel nella mia tabella.

Sul lato anteriore è un piccolo lavoro, ma è solo una questione di modificare alcuni degli esempi di codice esistenti. Ma quando lo hai composto per apportre modifiche all'importzione è semplice e veloce.

il modo migliore e più semplice è usare l'app "MySQL for Excel" che sia un'applicazione gratuita da oracle. questa applicazione ha aggiunto un plugin per eccellere per esportre e importre i dati in mysql. puoi scaricare quello da qui

Per un esempio passo per passo per l' importzione di Excel 2007 in MySQL con la codifica corretta (UTF-8), cercare questo commento:

"Inserito da Mike Laird il 13 Ottobre 2010 12:50"

nell'URL seguente:

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

Quando utilizzavo i file di text per importre i dati, avevo problemi con le virgolette e come Excel formava i numbers. Ad esempio, la mia configuration di Excel utilizzava la virgola come separatore decimale anziché il punto.

Adesso uso Microsoft Access 2010 per aprire la mia tabella MySql come tabella collegata. Lì posso semplicemente copiare e incollare le celle da Excel a Access.

A tale scopo, installare prima il driver ODBC MySql e creare una connessione ODBC . Quindi, nell'accesso, nella scheda "Dati esterni", aprire "window di dialogo ODBC" e colbind a qualsiasi tabella utilizzando la connessione ODBC.

È ansible utilizzare DocChow , un GIU molto intuitivo per importre Excel in MySQL, ed è gratuito su piattaforms più comuni (incluso Linux).

Più particolarmente se si è preoccupati della data, tipi di dati datetime, DocChow gestisce facilmente i tipi di dati. Se si lavora con più fogli di calcolo Excel che si desidera importre in una tabella MySQL DocChow fa il lavoro sporco.