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