AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Excel-Datei in TStringGrid importieren
Thema durchsuchen
Ansicht
Themen-Optionen

Excel-Datei in TStringGrid importieren

Ein Thema von allarich · begonnen am 28. Mai 2004 · letzter Beitrag vom 28. Mai 2004
Antwort Antwort
allarich

Registriert seit: 9. Jul 2003
Ort: Erlensee
66 Beiträge
 
Delphi 7 Enterprise
 
#1

Excel-Datei in TStringGrid importieren

  Alt 28. Mai 2004, 09:50
Hallo Forumsmitglieder,

wer kann helfen ?

Habe Quellcode von Tutorial übernommen;kann Anwendung compilieren und starten.
Wenn ich dann die Excel-Datei importieren möchte,stoppt Programm mit der Meldung:
Project Project1.exe raised exception class EOleError with message
'Method' Aktivate 'not supportrd by automation object'. Process stopped.

Im Quellcode wird per Zeiger folgende Zeile markiert:
Sheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyP aram).Aktivate;//Get the value of the last row

Wo liegt der Fehler ?

MfG
allarich
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Excel-Datei in TStringGrid importieren

  Alt 28. Mai 2004, 09:52
Hallo
Sheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyP aram).Activate;//
Wird mit c geschrieben

Da der Fehler erst zur Laufzeit auftritt gehe ich davon aus, dass Sheet ein OleVariant ist und Du somit die späte Bindung nutzt. Wenn Du auf die frühe Bindung verwendest (immer zu empfehlen) hast Du auch die Unterstützung der IDE und es werden Dir die verfügbaren Methode angezeigt.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Excel-Datei in TStringGrid importieren

  Alt 28. Mai 2004, 09:52
Hai allarich,

von welchem Tutorial ist denn der Quellcode?
Ist auf dem Rechner auch Excel installiert?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Excel-Datei in TStringGrid importieren

  Alt 28. Mai 2004, 10:03
Hallo,
ich weiss nicht was das Tutorial empfiehlt. Ich empfehle die Daten aus
einem StringGrid über ein variantes Array nach Excel zu schieben. Geht
erheblicher schneller als jede Zelle einzeln anzusprechen.
Delphi-Quellcode:
procedure TForm1.CopyToExcel;
var
  Tmp : TStringList;
  ArrV : Variant; // Das ist das variante Array
  Row : Integer;
  Col : Integer;
  Cell : Range;
begin
  Screen.Cursor:=crHourGlass;
  Tmp:=tStringList.Create;
  OpenExcel;
  Try
    Tmp.LoadFromFile(FApplicationPath+'Muster.txt');
    ArrV:=VarArrayCreate([0,Tmp.Count-1,0,2],varVariant); // Größe der Array festlegen
    VarArrayLock(ArrV);
    For Row:=0 to TMp.Count-1 do // Daten ins Array übertragen
      begin // Hier könnte man Daten aus einem StringGrid
      For Col:=1 to 3 do // ins Array schieben
        ArrV[Row,Col-1]:=GetToken(Tmp[Row],#9,Col);
      end;
    VarArrayUnLock(ArrV);

    ExcelApplication.Workbooks.Open(FApplicationPath+'Test.xls',EmptyParam,EmptyParam,EmptyParam,
                                    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                                    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                                    EmptyParam,FLCID);
    ExcelWorkbook.ConnectTo(ExcelApplication.ActiveWorkbook);
    ExcelWorksheet.ConnectTo(ExcelWorkbook.Sheets.Item['Tabelle1'] as _WorkSheet);

    Cell:=ExcelWorksheet.Cells.Range_['A1','A1'];
    ExcelWorksheet.Range[Cell,Cell.Offset[Tmp.Count-1,2]].Value:=ArrV; // Array nach Excel schieben

    ExcelWorkbook.Save;
    ExcelWorkbook.Close(False);
  Finally
    CloseExcel;
    Tmp.Free;
    Screen.Cursor:=crDefault;
    end;
end;
Die EXE in der Anlage öffnet die Datei Muster.txt und schiebt die ca. 1420 Datensätze in
die Datei Test.xls.

[Edit] habe gerade erst gelesen, dass die Exceltabelle ins StringGrid soll.
Ob es reicht in meinem vorgeschlagenen Source die Richtung zu ändern müsste man ausprobieren. [/Edit]
Angehängte Dateien
Dateityp: zip zip_163.zip (198,5 KB, 23x aufgerufen)
I come from outer space to save the human race
  Mit Zitat antworten Zitat
allarich

Registriert seit: 9. Jul 2003
Ort: Erlensee
66 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Excel-Datei in TStringGrid importieren

  Alt 28. Mai 2004, 12:24
Hallo Jens Schumann,
danke für deinen Hinweis;immer diese Tipfehler. Funktioniert jetzt einwandfrei !!

Hallo Sharky,
habe de Quellcod von SwissDelphiCenter.ch heruntergeladen !!

MfG
allarich
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz