Newsgroup: it.comp.lang.delphi
Titolo: [ADO/Excel] Solo per chi ha tempo e voglia

Ciao,
ho scritto una applicazione per un negozio
che riceve quotidianamente un foglio Excel con dei dati.
In automatico la mia applicazione interpreta il foglio excel
e smista i dati in un db.
Funzionava tutto piuttosto bene fino a quando chi spediva i file excel
non ha cominciato a spedire i file xls con una versione di excel
diversa da quella che ho io.
Ora se tento di caricare il foglio Excel mi da' errore.
Cio' non accade se apro prima il file xls e lo salvo con
la mia versione di excel.
Qui trovate il programmino con i due fogli xls.....
(ps e' solo il codice che carica i dati in un ADOdataset)
http://www.angelfire.com/alt/miyomo/ADOExcel.zip
Qualcuno mi puo' aiutare?
Ciao
  Miyomo

 diversa da quella che ho io.
Ma senza complicarti la vita, non è che quello che ti spedisce i dati può
spedirteli salvandoli in un formato "compatibile"? Non è una cosa molto
problematica per lui.
--
Jax
Journeying Artificial Xenomorph

Jax
Magari fosse cosi' semplice. Quelli che spediscono i file sono
in realta' delle banche e da quello che mi sembra di aver capito
utilizzano un applicativo scritto in VB che genera sto' cavolo di foglio
excel in chissa' quale
versione.
Mi risulta difficile andare dal signor BancaInQuestione e dirgli
"scusi, puo' cambiare la sua versione di Excel?"
:-)
Per ora utilizzo il metodo di risalvare il file excel con
l'ultima versione di access.... ma vorrei evitare quest'ultimo passaggio...
Grazie per l'interessamento, Jax
Miyomo

 :-)
Hai ragione :)
Però non hai detto che versione ha la banca e che versione hai tu.
In ogni caso, in giro c'è una unit, ads_excel.pas, che apre un file di excel
con OLE, e l'ho testata: apre sia i file di XL XP che quelli di 97 (ma io ho
XP installato, non so se funzionerebbe al contrario); se te la senti di
riscrivere la parte di lettura del file...
Comunque è molto semplice da usare, e se vuoi ho appena sviluppato un'app di
importazione XL->Access e quindi ti potrei essere di aiuto.


 importazione XL->Access e quindi ti potrei essere di aiuto.
Riesci ad importare anche quel file: FoglioConErrore.xls??
Magari....!!!!! Se ci riesci mandami un pezzo di codice se puoi!
Thanks
Miyomo

On Mon, 26 May 2003 12:57:19 GMT, miyomo wrote:
scusa ma visto che lo apri tramite ado e non tramite ole, hai provato ad
aggiornare semplicemente il MDAC e il Jet engine?
http://www.microsoft.com/data/
io penso sia un problema solo di ado. 
adesso per curiosita faccio una prova con un foglio excel xp, io ho ado 2.6
sp qualchecosa
ciao fabrizio

 Magari....!!!!! Se ci riesci mandami un pezzo di codice se puoi!
Scusami, non avevo capito che era solo un foglio l'errore.
Adesso lo scarico e provo.


 Adesso lo scarico e provo.
Provando a fare una semplice Open e leggendo la cella A1 non ho problemi su
nessuno dei due file, usando quella unit (è proprio quella che hai visto).
var
 Excel: Variant;
begin
  Excel := UnAssigned;
  Excel := CreateOleObject('Excel.Application');
  Excel.Visible := False;
  ExcelOpenFile(Excel, Edit1.Hint);
  Caption := Trim(ExcelGetCellValue(Excel, 1, 1));
  ExcelClose(Excel, False);
end;


On Mon, 26 May 2003 16:28:04 +0200, Fabrizio Mancini wrote:
come non detto, il file è salvato in formato excel 2.1!!!! miiii ma di
quando è? dell'età del win 3.11?!?!? =)))
boh non saprei dirti come importarlo, provato gia a dare un occhiata sul
sito microsoft per vedere la stringa di connessione per quel "rudere"? 
ciao fabrizio

 sito microsoft per vedere la stringa di connessione per quel "rudere"?
Infatti, che era stato salvato in Excel 2.1 lo avevo immaginato
solo che nelle Extended Properties di ADO tale versione non
e' implementata. Credo, non vorrei dire una cavolata.
Ciao

 nessuno dei due file, usando quella unit (è proprio quella che hai visto).
Jax,
non e' che potresti modificare il mio
programmino implementando la unit ads_excel.pas
e postarmelo su 
miyomo...@hotmail.com
?
Non vorrei approfittare troppo di te, sei stato gia' cosi gentile!
Miyomo

 Non vorrei approfittare troppo di te, sei stato gia' cosi gentile!
Se potessi giuro che lo farei subito, ma adesso sono al lavoro e stasera a
casa devo lavorare (devo consegnare un programma in tempi ristretti - leggi:
ieri)...
Se hai pazienza, uno di questi giorni gli do' un'occhiata, altrimenti ti
conviene provarci tu stesso, visto che l'uso è elementarissimo, e il sito
spiega molto bene cosa fanno le varie funzioni.


Ok, provero'.
Grazie!