![]() |
Excel-Datei in TStringGrid importieren
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 ? :cry: MfG allarich |
Re: Excel-Datei in TStringGrid importieren
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. |
Re: Excel-Datei in TStringGrid importieren
Hai allarich,
von welchem Tutorial ist denn der Quellcode? Ist auf dem Rechner auch Excel installiert? |
Re: Excel-Datei in TStringGrid importieren
Liste der Anhänge anzeigen (Anzahl: 1)
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:
Die EXE in der Anlage öffnet die Datei Muster.txt und schiebt die ca. 1420 Datensätze in
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 Datei Test.xls. [Edit] :oops: 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] |
Re: Excel-Datei in TStringGrid importieren
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz