Mettere Foglio EXCEL su DB

Chiedo se sapete come mettere un foglio excel su un db di mysql, utilizzando qualche programma o script? ;)

inviato 8 anni fa
EKELON77
X 0 X

salva il file excel in formato CSV e poi dalla console di MySQL puoi usare il comando LOAD DATA LOCAL INFILE

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

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

il probelma è proprio nel creare il csv, utilizzo una vecchia versione di excel la 97, che non mi prermette elasticità nel creare il file.  :tichedoff:

risposto 8 anni fa
EKELON77
X 0 X

Crealo come puoi e poi imposta la funzione LOAD DATA LOCAL INFILE in modo che lo possa riconoscere. Ci sono infatti diverse opzioni di quel comando che permettono di specificare il formato del CSV che gli stai passando.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Si  O0, ma se invece utilizzo odbc di Mysql e aggancio le tabelle mysql su access e poi copio le celle di excel a db; come la vedi la cosa? :bye:

risposto 8 anni fa
EKELON77
X 0 X
Si  O0, ma se invece utilizzo odbc di Mysql e aggancio le tabelle mysql su access e poi copio le celle di excel a db; come la vedi la cosa? :bye:

più laboriosa  :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Tanto deve essere fatto solo due volte, per la demo e in caso di migrazione.  :bye: ;)

P.S.: Comunque tengo aperto entrambe le ipotesi.

risposto 8 anni fa
EKELON77
X 0 X

Tanto deve essere fatto solo due volte, per la demo e in caso di migrazione.  :bye: ;)

P.S.: Comunque tengo aperto entrambe le ipotesi.

si Gianni forse ti faccio un quadro più chiaro della situazione e come voglio che sia il csv se è possibile,

attulamente in excel è cosi:

  • Colonna1(Descrizione Attivita)
  • Colonna2(PrioritàAttivita)

come faccio ad avere sul file csv Colonna1,Colonna2 in modo che con PHPMYADMIN possa mettere i record in tabella?  :bye:

risposto 8 anni fa
EKELON77
X 0 X

Crea un file excel con quelle 2 colonne e poi salvalo in un file CVS. Se non ricordo male Excel separa le colonne con un ; quindi se usi LOAD DATA LOCAL INFILE devi specificare, usando le opzioni corrette a riga di comando, che il separatore non è una virgola ma un punto e virgola.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Si Gianni ma la cosa sono n° colonne ti faccio un esempio + specifico:

Settore Sviluppi TP|   Prio   |Assegnato   |Situazione   |Dal   Data fine prevista   |Autore segnalazione   |Classe Java/Funzione XSL/Commenti Vari

Struttura Nuovo Portale| xxxx|   1|   xxxx | i pipe sarebbero le colonne.  :bye:

 

risposto 8 anni fa
EKELON77
X 0 X

non potresti fare questa trasformazione in Excel, prima di convertirlo in CSV?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X
non potresti fare questa trasformazione in Excel, prima di convertirlo in CSV?

quale trasformazione nn capisco?  :dunno:

risposto 8 anni fa
EKELON77
X 0 X

Gianni ho provato a metterlo sul db partendo da questo esempio http://www.phpnews.it/forum/index.php?topic=1912.0 ma non funziona non mi chiedere il codice che non l'ho più, faccio con i driver odbc di mysql

risposto 8 anni fa
EKELON77
X 0 X
Gianni ho provato a metterlo sul db partendo da questo esempio http://www.phpnews.it/forum/index.php?topic=1912.0 ma non funziona non mi chiedere il codice che non l'ho più, faccio con i driver odbc di mysql

vi posto un'example:

<?
include_once ('connect_db.php');

// Esecuzione di una query SQL 
$carica_db = "load data infile 'G:\\pdrive\\www\\egaweb\\import\ega_standby.csv'
replace into table ega
CHARACTER SET LATIN1
columns
(`DESCRIZIONE`,`PRIO`,`ASSEGNATARIO`,`SITUAZIONE,`DATAINIZ`,`DATAFINE`,`COMMVARI`)
terminated by ';'
enclosed by '\"'
escaped by '\\'
lines
starting by ''
terminated by '\n'
ignore 2 lines
SET DATAINIZ,DATFINE = '0000-00-00'"; 
$result_csv = mysql_query($carica_db)
or die("Query fallita per importare il file CSV l'errore è :".mysql_error()." controllare la sintassi");
mysql_close($connect_db);
?>

l'errore che mi da è

Query fallita per importare il file CSV l'errore è :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CHARACTER SET LATIN1 columns (`DESCRIZIONE`,`PRIO`,`ASSEGNATAR controllare la sintassi

risposto 8 anni fa
EKELON77
X 0 X

prova a togliere solo CHARACTER SET LATIN1

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

fatto ma mi da sempre errore:

Query fallita per importare il file CSV l'errore è :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(`DESCRIZIONE`,`PRIO`,`ASSEGNATARIO`,`SITUAZIONE,`DATAINIZ`,`DAT controllare la sintassi

altri consigli ?

risposto 8 anni fa
EKELON77
X 0 X

prova a mettere il nome della tabella nella forma nome_database.nome_tabella

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Mi da sempre per errore, ti riposto il codice:

<?
include_once ('connect_db.php');

// Esecuzione di una query SQL 
$carica_db = "load data infile 'G:\\pdrive\\www\\egaweb\\import\ega_standby.csv'
replace into table egaweb.ega
columns
(`DESCRIZIONE`,`PRIO`,`ASSEGNATARIO`,`SITUAZIONE,`DATAINIZ`,`DATAFINE`,`COMMVARI`)
terminated by ';'
enclosed by '\"'
escaped by '\\'
lines
starting by ''
terminated by '\n'
ignore 2 lines
SET DATAINIZ,DATFINE = '0000-00-00'"; 
$result_csv = mysql_query($carica_db)
or die("Query fallita per importare il file CSV l'errore è :".mysql_error()." controllare la sintassi");
mysql_close($connect_db);
?>
risposto 8 anni fa
EKELON77
X 0 X

Mi da sempre per errore, ti riposto il codice:

<?
include_once ('connect_db.php');

// Esecuzione di una query SQL 
$carica_db = "load data infile 'G:\\pdrive\\www\\egaweb\\import\ega_standby.csv'
replace into table egaweb.ega
columns
(`DESCRIZIONE`,`PRIO`,`ASSEGNATARIO`,`SITUAZIONE,`DATAINIZ`,`DATAFINE`,`COMMVARI`)
terminated by ';'
enclosed by '\"'
escaped by '\\'
lines
starting by ''
terminated by '\n'
ignore 2 lines
SET DATAINIZ,DATFINE = '0000-00-00'"; 
$result_csv = mysql_query($carica_db)
or die("Query fallita per importare il file CSV l'errore è :".mysql_error()." controllare la sintassi");
mysql_close($connect_db);
?>

, ho eseguito la query su phpmyadmin e mi da i seguenti errori:

Errore

Pare che ci sia un errore nella query SQL immessa. L'errore del server MySQL mostrato qui sotto, se c'è, può anche aiutare nella risoluzione del problema

ERROR: Virgolette Non Chiuse @ 185
STR: `
SQL: load data infile 'H:\\pdrive\\www\\egaweb\\import\ega_standby.csv'
replace into table egaweb.ega
columns
(`DESCRIZIONE`,`PRIO`,`ASSEGNATARIO`,`SITUAZIONE,`DATAINIZ`,`DATAFINE`,`COMMVARI`)
terminated by ';'
enclosed by '""'
escaped by '\\'
lines
starting by ''
terminated by '\n'
ignore 2 lines
SET DATAINIZ,DATFINE = '0000-00-00'

query SQL:

load data infile 'H:\\pdrive\\www\\egaweb\\import\ega_standby.csv' replace into table egaweb.ega columns (`DESCRIZIONE`,`PRIO`,`ASSEGNATARIO`,`SITUAZIONE,`DATAINIZ`,`DATAFINE`,`COMMVARI`) terminated by ';' enclosed by '""' escaped by '\\' lines starting by '' terminated by '\n' ignore 2 lines SET DATAINIZ,DATFINE = '0000-00-00'

Messaggio di MySQL: Documentazione
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(`DESCRIZIONE`,`PRIO`,`ASSEGNATARIO`,`SITUAZIONE,`DATAINIZ`,`DAT
risposto 8 anni fa
EKELON77
X 0 X

togli la parola "columns"

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

ah capsico non serve perchè gli passo le colonne, :P come al solito esaustivo.

ok ti faccio sapere...!!! 

risposto 8 anni fa
EKELON77
modificato 8 anni fa
X 0 X

Devi salvare il foglio exel  in csv eliminando le intestazioni di colonna.Dopo aggiungi una colonna a sinistra del foglio csv e sulla prima riga metti 0(zero).Il foglio in csv deve essere unico.Creati una tabella con lo stesso numero di campi delle colonne . la prima sarà naturalmente un id  (int)autoincrement.Poi importa il file csv con CSV usando LOAD DATA.

risposto 8 anni fa
lucignolo
X 0 X
Devi salvare il foglio exel  in csv eliminando le intestazioni di colonna.Dopo aggiungi una colonna a sinistra del foglio csv e sulla prima riga metti 0(zero).Il foglio in csv deve essere unico.Creati una tabella con lo stesso numero di campi delle colonne . la prima sarà naturalmente un id  (int)autoincrement.Poi importa il file csv con CSV usando LOAD DATA.

al momento non sto utiliozzando qesta funzione perchè ho dei problemi con altri topic sulla programmazione php, cmq. x tua info io gli passo il nome delle tablle da riempire saltando le righe. 

P.S.: Se mi vuoi dare una mano con gli altri topic sarei felice

GRAZIE :bye:

risposto 8 anni fa
EKELON77
modificato 8 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda