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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
procedure TForm1.LoadClick(Sender: TObject);
Var
openDialog : TOpenDialog;
vMSExcel : variant;
vXLWorkbooks, vXLWorkbook : variant;
aFileName : AnsiString;
MaFeuille : variant;
i, j : Integer;
Range : AnsiString;
vType:integer;
begin
// Create the open dialog object - assign to our open dialog variable
openDialog := TOpenDialog.Create(self);
// Set up the starting directory to be the current one
openDialog.InitialDir := GetCurrentDir;
// Only allow existing files to be selected
openDialog.Options := [ofFileMustExist];
// Allow only .dpr and .pas files to be selected
openDialog.Filter :=
'Fichier excel|*.xls|Fichier csv |*.csv';
// Select pascal files as the starting filter type
openDialog.FilterIndex := 1;
// Display the open file dialog
if openDialog.Execute then
begin
aFileName:= openDialog.FileName;
vMSExcel := CreateOleObject('Excel.Application');
vXLWorkbooks := vMSExcel.Workbooks;
vXLWorkbook := vXLWorkbooks.Open(aFileName);
Mafeuille := vXLWorkbook.Worksheets[1] ;
i:=1;
j:=1;
vType := VarTYpe(MAFeuille.Range['E3'].Value);
If (vType) = varNULL Then
StringGrid1.Cells[2,2] := 'Empty';
vType := VarTYpe(MAFeuille.Range['D3'].Value);
If vType = varOleStr Then
StringGrid1.Cells[1,1] := MAFeuille.Range['D3'].Value;
vType := VarTYpe(MaFeuille.Cells.Item[i,j].Value);
while vType = varOleStr do //les colonnes
begin
repeat
StringGrid1.Cells[j,i] := MaFeuille.Cells.Item[i,j].Value;
i:=i+1;
vType := VarTYpe(MaFeuille.Cells.Item[i,j].Value);
Until vType <> varOleStr;
j:=j+1;
i:=1;
vType := VarTYpe(MaFeuille.Cells.Item[i,j].Value);
end;
//On quitte Excel
vMSExcel.Quit;
vMSExcel := unassigned;
end
else ShowMessage('Vous n''avez rien sélectionné');
// Free up the dialog
openDialog.Free;
end; |
Partager