delphiexceldelphi-7paradox

Import data from Excel


How can I to import data from Excel into a Paradox database using Delphi 7?


Solution

  • Well, if you have the question tagged as Delphi 7 I assume you have BDE. This will enable you to do the whole process in Delphi.

    You can modify and use this untested code (you will need to add the exception handling):

    procedure TForm1.Button2Click(Sender: TObject);
    var
      Cols: integer;
      Rows: integer;
      IntCellValue: integer;
      Excel, XLSheet: Variant;
      failure: Integer;
    
    begin
      failure:=0;
      try
        Excel:=CreateOleObject('Excel.Application');
      except
        failure:=1;
      end;
      if failure = 0 then
      begin
        Excel.Visible:=False;
        Excel.WorkBooks.Open(<Excell_Filename>);
        XLSheet := Excel.Worksheets[1];
        Cols := XLSheet.UsedRange.Columns.Count;
        Rows := XLSheet.UsedRange.Rows.Count;
    
        // Value of the 1st Cell
        IntCellValue:=Excel.Cells[1, 1].Value;
        // Iterate Cals/Rows to read the data section in your worksheet
        // and you can write it in Paradox using the BDE by iterating all cells
        // somthing like this pseudo code:
    
          try            
            Query := TQuery.Create(nil)            
            Query .Databasename := PdxDBName; // must be configured in the BDE
            while Rows > 0
            begin
              while Cols > 0
              begin
                IntCellValue:=Excel.Cells[Cols,Rows].Value;
                Query .SQL.text := // SQLStmt including the IntCellValue
                ExecSQL;
                dec(Cols);               
              end;
              Cols := XLSheet.UsedRange.Columns.Count;
            Dec(Rows);
            end;
          finally
            Query.Free;
          end;
    
        Excel.Workbooks.Close;
        Excel.Quit;
        Excel:=Unassigned;
      end;
    end;