Creare un unica tabella partendo da più file excel

sabato 31 ottobre 2009 - 19.18

MARCOC Profilo | Newbie

Ciao ragazzi,

Stò iniziando ad approfondire xml adesso.

Ho una cartella in cui sono contenuti i listini dei fornitori tutti in excel (.xls)

I listini sono uno diverso dall’altro.
All’interno della cartella excel i vari prodotti sono divisi sui diversi fogli in base alla tipologia di prodotto (es. un foglio tastiere,un foglio monitor, etc)

Il problema è che quando vai a fare un preventivo con 100 articoli di 5/6fornitori diversi , ti devi aprire listino x listino e cercare il singolo prodotto con la funzione trova di excel…

Avevo pensato ad una soluzione in xml che attraverso il mapping dei vari listini , che mi consentisse di riportare tutti gli articoli (di tutti i produttori) in una sola tabella con ad es : produttore,cod. prodotto, descrizione,gruppo (es tastiere,monitor) prezzo.

Poi confronterei la lista dei prodotti richiesti con la tabella creata… e il preventivo è fatto..
(per fare questo utilizzerei ACCESS)

Visto che i singoli fornitori mantengono sempre la stessa struttura del loro listino xls,ad ogni nuovo listino basterà inserirlo nella cartella.

Secondo voi è possibile ?

alx_81 Profilo | Guru

>Ciao ragazzi,
ciao

>Visto che i singoli fornitori mantengono sempre la stessa struttura
>del loro listino xls,ad ogni nuovo listino basterà inserirlo
>nella cartella.
>Secondo voi è possibile ?
se mantengono la stessa struttura, potresti pensare ad un processo di importazione diretto da excel ad un sql server 2008 express che è free. Una volta in tabella fai tutto ciò che vuoi. Con xml, è un po' più macchinoso, e visto che hai già excel, esso potrebbe essere una buona sorgente per popolare un db centralizzato su cui poi effettuare ricerche.
Che strumenti possiedi oltre ad access e considerato che sql express è disponibile sul web?

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

MARCOC Profilo | Newbie

Ciao,

avevo pensato ad xml per diversi motivi che per brevità non sto a riportare, e anche nella speranza che, alcuni dei fornitori mi forniscano listini in xml.
Ma nonostante si faccia un gran parlare di xml...nella pratica quando gli chiedo listini in xml (per poi tentare un importazione con Access)...non se ne parla affatto...

Comunque, latua risposta mi favenire in mente la possibilità di trovare un'altra soluzione , anche se gli "strumenti" a mia disposizione sono un po' scarsini purtroppo !

Quello che conosco io è Excel Access SQLserver express.(lo utilizzo da poco tempo)

In effetti potrei inserire collegamneti in un DB Access direttamente ai file excel.


L'output finale dovrebbe essere un'unica tabella che contiene tutti i listini:

nome fornitore (nome listino);gruppo prodotto (nome singolo foglio); codice prodotto;descrizione; prezzo


dato che ogni singolo listino di ogni fornitore è suddiviso in piu fogli es: foglio1 tastiere, foglio2 monitor,foglio3 mouse.
Ogni foglio contiene una colonna codice, una colonna descrizione, ed un'altra prezzo.

mi resta il problema di riportare detti dati in un unica tabella cosi:

gruppo (nome foglio1 tastiere); codice; descrizione;prezzo


In sostanza, come faccio ad unire piu fogli excel in unica tabella ?


Ciao e grazie.

Marco

alx_81 Profilo | Guru

>Quello che conosco io è Excel Access SQLserver express.(lo utilizzo da poco tempo)
se vuoi usare excel e access, dovresti pensare ad importare i fogli excel in tabella (puoi fare append ad una tabella preesistente oppure creare una nuova tabella, o ancora linkare il foglio excel in access). Ad ogni modo poi puoi pensare di fare una queri che unisce con l'operatore UNION le tabelle che ogni "tot" vai a caricare.
Certo, se avessi un sql server non express potresti fare anche processi automatizzati di importazione tramite wizard utilizzando l'agent di sql server, ecc.
Ma se l'operazione di aggiornamento può essere manuale e poco frequente, caricare ogni volta i listini e fare la query che le unisce non dovrebbe essere così doloroso.
In caso alternativo, puoi pensare di usare la bcp utility di sql server (http://msdn.microsoft.com/en-us/library/aa174646(SQL.80).aspx) oppure di scriverti un programmino in .net. Ma da come mi dici non hai molti strumenti.


--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

MARCOC Profilo | Newbie

WOOOW !

Non conoscevo l'istruzione UNION.

oggi ci ho lavorato un po' sopra e sebra che sia proprio la soluzione del problema di creare un unica tabella a partire da più fogli excel !


In sostanza penso che collegherò i singoli fogli dei vari lisitini in Access.
Tramite l'istruzione UNION creerò una unica tabella.

Ogni volta che ci sarà una nuova versione dei singoli listini , basterà aggiornare il collegamento con la funzione "Gestione tabelle collegate".


Mi ci vorrà un po'di tempo per creare tutti i collegamenti e fare la query di UNION,ma questa sembra una buona soluzione con comunque poca fatica.

Il massimo sarebbe che riuscissi ad inserire a fianco di ogni singolo articolo anche il nome del file excel e del foglio da cui origina.
pensi che ci sia un comando anche per fare questo ?


Comunque, un garandissimo GRAZIE ALESSANDRO !!

(Questo è il forum n°1 su questi argomenti ! )

Ciao

alx_81 Profilo | Guru

>Il massimo sarebbe che riuscissi ad inserire a fianco di ogni
>singolo articolo anche il nome del file excel e del foglio da
>cui origina.
se importi il file, sai come si chiama, quindi nella select puoi aggiungere una stringa tua:
SELECT 'MioExcel1' As NomeFile , campo1 , campo2 FROM TabellaExcel1 UNION SELECT 'MioExcel2' As NomeFile , campo1 , campo2 FROM TabellaExcel2

>Comunque, un garandissimo GRAZIE ALESSANDRO !!
>(Questo è il forum n°1 su questi argomenti ! )
addirittura!! troppo gentile
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

MARCOC Profilo | Newbie



GRANDIOSO !!

Praticamnete mi hai risolto il problema.

Alessandro,di nuovo MILLE GRAZIE !

Marco

(PS. appoggiarsi troppo ad Access, anche se ti velocizza di molto nello scrivere query, ti fa perdere il conatatto con SQL.Constato sempre più che un sano studio/approfondimento si SQL è un must !)

alx_81 Profilo | Guru

>(PS. appoggiarsi troppo ad Access, anche se ti velocizza di molto
>nello scrivere query, ti fa perdere il conatatto con SQL.Constato
>sempre più che un sano studio/approfondimento si SQL è un must
>!)
Access ti dà quei wizard in più comodi (se riesci ad usarli ), essendoci un'ottima versione free, preferisco sempre consigliare sql express, e magari cercare applicativi (se proprio non si vogliono scrivere) che si aggrappino ad esso.

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

tagldani Profilo | Newbie

Ciao a Tutti io sono appena entrato a far parte del gruppo!!

Ho poca dimestichezza con le funzionalità avanzate. Ho iniziato con Pascal e li mi sono fermato.
Mi sono fatto qualche database in access ma nulla piu'. Sottopongo a chi ha le idee piu' chiare di cosa ho bisogno.
Sorgente: 30 o 40 file *xls in una precisa directory di windows (tutti formattati uguali). La discriminante perchè i file siano presenti nella directory sta nel fatto che sono commesse vs clienti ancora attive; quindi a rotazione escono ed entrano nuovi file.Questi file sono nient'altro che schede di fabbisogno per la singola commessa (c'è un'intestazione di 5 righe con indicato num commessa, capo commessa, ecc) che indentificano gli articoli da acquistare per ogni singolo fornitore. I campi sono: fornitore, numero di ordine, data di arrivo, ddt fornitore, descrizione articolo, q.tà, p.u, ecc, ecc
Ho gia un database di access che lavora sugli ordini emessi a fornitori per gestire gli arrivi della merce. L'elenco ordini è in excel (numero ordine, commessa, data ordine, fornitore, ogg ordine, data prevista di arrivo, data arrivo, numero ddt). Visto he questo file di excel non gestisce la commessa aperta o chiusa da DOS con un fle Batch lancio il comando dir/ b per creare il txt che opportunamento importato in access mi da la tabella con le commesse attive che non sono altro che i file che risiedono nella directory sorgente. Con una query visualizzo lo stato degli ordini per le sole commesse eattive.
Quest funzionalità gestisce il monitoraggio dei tempi di consegna dei fornitori. La difficoltà per me sta nel osare di piu' ovvero importare i file di excel in access in maniera automatica senza che all'inserimento di ogni file di excel nella directory di origine debba andare a spulciare quale sia.
In poche parole oltre che gestire gli arrivi vorrei poter vedere a quali fornitori non è stato emesso l'ordine lavorando sulla colonna di excel Numero Ordine; se alimentata ordine emesse o altrimenti ordine da emettere.
Quello che mi aspetto di poter avere due viste magari con dei report di access:
1) poter visualizzare per commessa la situazione degli ordini emessi e da emettere per poter sollecitare i capi commessa;
2) poter visualizzare per fornitori su quali commesse andranno a fornire aggregando i cantieri.

Spero che sfruttando la tabella di access generata dalla stringa txt delle commesse attive si possa ciclare l'import in access.
Qualcuno ha qualche idea?
Saluti a tutti!!






alx_81 Profilo | Guru

>Ciao a Tutti io sono appena entrato a far parte del gruppo!!
ciao e benvenuto in dotnethell.it!

>Spero che sfruttando la tabella di access generata dalla stringa
>txt delle commesse attive si possa ciclare l'import in access.
per l'import automatico prova a leggere questo link:
http://www.access-programmers.co.uk/forums/showthread.php?t=163138&highlight=import+excel

siccome il thread è chiuso ti consiglio di aprirne uno nuovo, avrai maggiori possibilità di risposta

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

tagldani Profilo | Newbie

Grazie. Ci lavoro sopra e ti faccio sapere.

Buona giornata.

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5