Mettere Foglio EXCEL su DB

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

inviato 10 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 10 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 10 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 10 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 10 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 10 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 10 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 10 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 10 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 10 anni fa
EKELON77
X 0 X

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

risposto 10 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 10 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 10 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 10 anni fa
EKELON77
X 0 X

prova a togliere solo CHARACTER SET LATIN1

 :bye:

risposto 10 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 10 anni fa
EKELON77
X 0 X

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

 :bye:

risposto 10 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 10 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 10 anni fa
EKELON77
X 0 X

togli la parola "columns"

 :bye:

risposto 10 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 10 anni fa
EKELON77
modificato 10 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 10 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 10 anni fa
EKELON77
modificato 10 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda