----- 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
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.
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.
??>> 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
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.
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.