Erreur d'import Excel -> Delphi
Ola,
J'ai utilisé le code du FAQ sur Excel pour importer une fiche Excel dans une stringgrid...
J'ai meme repris le code que j'ai utilisé dans une autr eappli, où tout fonctionne bien...
Voila le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| //*************** Excel --> Delphi (import)
procedure TForm1.OuvrirFiche1Click(Sender: TObject);
var
vMSExcel , vXLWorkbooks, vXLWorkbook, vWorksheet , vCell : variant;
aFileName, aRange, aSheetName : AnsiString;
name, aValue : string;
i,j : integer;
lettre: char;
begin
if (opendialog1.execute)
then begin
// ouverture Excel
vMSExcel := CreateOleObject('Excel.Application');
vMSExcel.Visible := false;
// ouverture fichier
aFileName := opendialog1.FileName;
vXLWorkbooks := vMSExcel.Workbooks;
vXLWorkbook := vXLWorkbooks.Open(aFileName);
// accès feuille
// extraction du nom du fichier ouvert
name :=opendialog1.filename;
while pos('\',name)>0 do
begin
delete(name,1,1);
end;
while pos('.',name)>0 do
delete(name,pos('.',name),4);
// label1.Caption:='Fiche : '+name;
aSheetName := name;
vWorksheet := vXLWorkbook.WorkSheets[ Name];
end; // fin opendialog
end; |
Donc quand j'execute l'appli, avec mon opendialog, je sélectionne le fichier, et il me fait l'erreur :
Citation:
"classe exception d'EOleException avec le message 'index incorrect'"
Ca se bloque là :
Code:
vWorksheet := vXLWorkbook.WorkSheets[ Name];
J'ai fait du pas à pas, la variable name prend bien le nom du fichier sans l'extension après les 2 boucles while, et lorsque ca arrive à cette famuese loigne, j'ai
name =(d1:0,d2:0,d3:0,d3:0,d4:(0,0,0,0,0,0,0,0)
Après quelques tests, j'ai vu que je pouvais en fait ouvrir ceux que j'avais créés dans la stringgrid et exportés vers excel directement. Par contre, si je créé un fichier direct-t sous Excel, et que j'essaie de l'ouvrir, c'est là qu'arrive l'erreur.
Et je me suis aussi rendu compte que ca fait la meme erreur avec la 1ere appli dont j'ai repris le code...
Je sais pas d'ou ca vient!... aidez-moi