Newsgroup: it.comp.programmare
Titolo: Importare dati da TANTI da file di testo a uno o più fogli/file di excel

Scusate il cross post, ho provato a chiedere su
microsoft.public.it.office.excel
in quanto qlc di excel lo capisco, purtroppo non ho ottenuto nessun
risultato,
mi chiedevo quindi se quì vi fosse un anima pia disposta a mettermi assieme
un minisoftware o macro in grado di risolvermi il preblema...
----- Original Message ----- 
From: -= Luca =-
Newsgroups: microsoft.public.it.office.excel
Sent: Thursday, June 26, 2008 2:05 PM
Subject: Importare dati da TANTI da file di testo a uno o più fogli/file di
excel
Ciao, oggi avrei questa esigenza, ma prima un breve preambolo:
circa 25 anni fà, in azienda crearono un software gestionale in Qbasic
che scriveva i dati in file di "testo" senza estensione (quindi non
"file.txt", ma
solo "file" apribili con il notepad oltre che al gestionale)...
Qlc anno fà abbiamo abbandonato definitivamente il vecchio gestionale,
in quel momento trasferimmo quasi a mano tutti dati utili, trascurando i più
vecchi, ritenuti
obsoleti....
Oggi mi accorgo che alcuni di quei dati possono invece tornare utili....
Volevo sapere se con i potenti mezzi di excel e con l'aiuto dei più esperti
si possa riuscire a cavare qlc dato dal buco (eh eh eh ;-P).
I dati erano organizzati in questo modo:
Divisi per commesse, ad esempio la commessa 518/1997 sarebbe satati
contenuta in
\\server....\VECCHIOGESTIONALE\BM\Arc_rif\518_97\
mentre i file di ordini emessi, relativi alla commessa sarebbero stati in:
\\server....\VECCHIOGESTIONALE\BM\Arc_rif\518_97\ORDMP\OF6452
all'interno della cartella 518_97 troveremmo quindi tanti file tipo:
OF6452
OF6553
OF6466
...
ognuno dei quali aperto avrebbe mostrato i dati disposti nel seguente modo:
--------------------------------------
272
MVF 63/V RT=1/45 PAM 80
15/07/97
02/07/97
25/07/97
1790.08
S
X
99.45
18
1790.08
 2
3
5
17
1
7000
--------------------------------------
Ogni riga, anche le vuote possono contenere una informazione es. la 1°
SEMPRE il cod del fornitore, la 2° SEMPRE la descrizione e così via...
Ora io vorrei poter recuperare ed archiviare (basta anche raccoglierli e
buttarli in un colpo solo su uno o più fogli o file di excel e poi cercare i
dati con excel, e non "dinamicamente" ordine x ordine o commessa x commessa)
tutti quei dati archiviandoli su excel, eventualmente sostituendo
direttamente
il cod fornitore con il nome che si trova archiviato (con lo stesso
concetto) quì: \\server....\VECCHIOGESTIONALE\BM\DR5\P3\FO203
Secondo voi è una cosa fattibile?
^__^
Luca

 Secondo voi è una cosa fattibile?
Non ci ho capito molto, ma non mi sono neppure sforzato piu' di tanto per
capire, a dire il vero.
Provo a riassumere a grandi linee, correggimi se sbaglio.
Avete dei files di testo in un particolare tracciato.
Volete trasformarli in altri files di testo con un altro tracciato
interpretabile da una applicazione di foglio elettronico.
E volete effettuare questa trasformazione in modo automatico.
Giusto?
Naturalmente e' possibile farlo.
La prima cosa che mi viene in mente e' di utilizzare awk, visto che ho
gia' fatto qualcosa del genere usando awk.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Secondo voi è una cosa fattibile?
Si sia attraverso il VB di Excel, od anche di Word, che da altri
linguaggi di programmazione. Si tratta di un lavoro specifico
impegnativo, difficile trovare qualcosa di già fatto.

esperti si possa riuscire a cavare qlc dato dal buco (eh eh eh ;-P).
Perché proprio Excel? 
Tu hai una serie di file di etsto che vorresti interrogare. Hai pensato di
importarli come record di un database?
Magari Access (se proprio tieni all'integrazione tra tool MS Office).
Comunque, l'elaborazione di cui parli è fattibilissima (e semplicissima),
conoscendo il formato dei dati.


Hello, Andrea!
You wrote  on Fri, 11 Jul 2008 16:51:09 +0200:
 ??>> Volevo sapere se con i potenti mezzi di excel e con l'aiuto dei più
 ??>> esperti si possa riuscire a cavare qlc dato dal buco (eh eh eh ;-P).
 AL> Perché proprio Excel?
 AL> Tu hai una serie di file di etsto che vorresti interrogare. Hai pensato
 AL> di importarli come record di un database?
 AL> Magari Access (se proprio tieni all'integrazione tra tool MS Office).
 AL> Comunque, l'elaborazione di cui parli è fattibilissima (e
 AL> semplicissima), conoscendo il formato dei dati.
Ciao e grazie a tutti anzitutto, excel o access non cambia molto (excel lo
sò usicchiare, access molto meno)
il fatto è che io di programmazione ne sò zero.. :(
Mi riesci quindi a "guidare" nell'impresa di importare questi dati su access
(poi magari li importo nuovamente anche in excel)?
PS una volta importati tutti i dati, l'operazione non servirà più in quanto
il vecchio software non viene più usato.
^__^
Luca

 (poi magari li importo nuovamente anche in excel)?
Se non sai programmare la vedo molto dura.


 il fatto è che io di programmazione ne sò zero.. :(
Dovreste commissionare il lavoro a qualche consulente, in tal caso.


Come ti hanno già consigliato un linguaggio di scripting è la cosa 
migliore per questo tipo di problemi.
Partiamo da fondo. Hai un file in cui i campi di ogni record sono 
distribuiti uno per riga. Assumendo di sapere quanti campi (righe) ci 
sono, il seguente frammento in Lua trasforma il file in un csv che puoi 
importare in excel:
--- tocsv.lua ---
linee_x_record = tonumber(arg[1])
cont = 1
ln = io.read("*l")
while ln do
   io.write(ln)
   if (cont == linee_x_record) then
     io.write('\n')
     cont = 0
   else
     io.write(',')
   end
   cont = cont+1
   ln = io.read("*l")
end
-------------------
Usando il tuo esempio (che ha 24 righe per ogni record):
    lua tocsv.lua 24 < OF6466 > OF6466.csv
genera il file csv che ti interessa. Ho scelto Lua perche' l'interprete 
è molto piccolo ma si puo' usare qualunque altro linugaggio.
Visto che hai tanti file ti conviene generare la lista con DIR /S, 
manipolarla nel tuo editor di fiducia (o di nuovo con uno script) e 
trasformarla in un batch che provvederà a chiamare il programma di 
conversione su ciascun file.
Una volta ottenuti tutti i csv te li importi in excel. Se vuoi un solo 
CSV (ma devi essere sicuro che i record siano tutti uguali!) basta 
andare in append su un solo file.
    lua tocsv.lua 24 < OF6466 >> tutto.csv
Visto che è un lavoro che devi fare una sola volta ci saranno un po' di 
operazioni "manuali" e ci vorrà un po' di tempo ma non mi sembra una 
cosa complicata.
R.D.