![]() |
Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Hi !
Ich möchte gerne ein Textfeld, in meinem Fall Edit1.Text, in die Zelle in eine Exceltabelle suchen. Wichtig hierbei ist, ich will keine neue Exceldatei erstellen, sondern einfach eine Vorlage (Zum Beispiel eine Rechnung) an der nach bestimmten name oder producte suchen Geht das und wenn ja, kann mir jemand den Anstoß geben, wie es funktionieren könnte ? |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Es gibt verschiedene Möglichkeiten, mit Hilfe von OLE falls auf dem Rechner Excel installiert ist, oder aber mit ODBC, oder mit Fremdkomponenten.
Oder Du exportierst den Inhalt z.B. in eine .CSV-Datei und liest diese dann in deinem Programm. Was hast Du denn (schon). Gruß K-H |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Zitat:
|
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
auf meinem Rechner Excel installiert ist.
Ich habe eine vorgefertigte Excel Datei ,die Adressere und ihre kordinaten hat. ich möchte zu eine Adresse und koordinaten erreichen ,ohn die Excel Datei zu öffnen. Ich denke daran,dass es die adresse mit ihre kordinaten auf eine StringGird zeigt werden könnte. wie kann man so machen??? |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Zitat:
:spin2::spin2::spin2::spin2: |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Zitat:
Wenn Du an die Daten kommen willst, mußt Du die Datei öffnen. Wenn Du Excel installiert hast, dann ist OLE eine Möglichkeit. Ein Beispiel gibt es ![]() (Gib mal in der Suchfunktin OLE Excel ein!) Falls Deutsch nicht Deine Muttersprache ist, vielleicht geht es besser in Englisch? Gruß K-H |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Hallo,
falls es etwas kosten kann, bei TMS gibt es passende Komponenten. Die funktionieren auch ohne ein installiertes Excel. Und nein, auch dort muss die Excel-Datei geöffnet werden (von der jeweiligen Komponente). |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Oder spreche mit Bildern. Das gesagte in einen vernünftigen Kontext zu bringen ist mehr als schwer.
|
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
HaLLO;
das ist mein code.Ich hätte gerne eine (search function oder procedure),in der man die Excel-Datei nach einer bestimmten string (edit feld) durchsuchen könnte.
Code:
procedure TForm1.Button2Click(Sender: TObject);
var Workbook, Filename: OleVariant; OpenDialog: TOpenDialog; x,y:integer; maxcol,maxRow:integer; begin if OpenDialog.Execute then begin try excel := CreateOleObject('Excel.Application'); except ShowMessage('Excel konnte nicht gestartet werden !'); end; excel.workbooks.Open('C:\Users\qatrangi\Desktop\OSM neu\Mappe1.xlsx'); excel.visible := true; { für die testphase sinnvoll } excel.Sheets[1].select; maxcol := excel.columns.count; maxRow := excel.Rows.count; for x := 1 to maxcol - 1 do begin for y := 1 to maxRow - 1 do begin if excel.cells[y, x].Value = (Edit1.Text) then begin excel.cells[y,x].select; polydrow(edit1.text); StringGrid1.Cells [x-1,y-1]:=excel.Cells[y,x].Value ; end; end; end; end; end; |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Da hilft dem Kodezwerg sein Wörterbuch "Bilder - Deutsch / Deutsch - Bilder" auch nicht, wenn du unkommentierten Code postest...
|
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
(kommt mir in Teilen bekannt vor??)
a) Du solltest "Excel" definieren:
Delphi-Quellcode:
b) Excel zählt von 1..Col.Count wenn Du nicht die letzte Spalte/Zeile ignorieren willst, solltest Du das korrigieren.
Excel : variant;
c) Ich bin mir nicht mehr sicher, aber es sollte wohl
Delphi-Quellcode:
heißen?
Excel.activworkbook.
d) Du solltest Dein Stringgrid an die Größe des Excel-Sheets anpassen. Das ist, was ich auf die Schnelle gesehen habe. Gruß K-H P.S. Polydrow ? |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
ich habe ein feld text und vorhandener excel datei.meine ziel ist :wenn ich etwas in edit feld schreiben,soll mein program danach in excel datei suchen und mir eine z.b (showmessage) liefern
|
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Zitat:
ich habe Excel : variant; als global definiert |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Zitat:
Dieser Schnippsel könnte Dir helfen:
Delphi-Quellcode:
oExcel.Cells.Find('Suchbegriff', oExcel.Cells.Item[1,1], xlValues, xlWhole, xlByColumns, xlNext, False, False);
|
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Zitat:
was sind: (xlValues, xlWhole, xlByColumns, xlNext) bitte??? |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Zitat:
![]() |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Dieser Schnippsel functioniert,aber es sucht nicht in alle columns.
wenn ich es für maxcol=2 und maxrow=2 gemacht er hat mir vier mal showmessage gezeigt?? könnte jemand mir hilfen,wo meine Fehler ist??
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var WorkBook, sheet: OleVariant; X, Y: Integer; maxcol, maxRow: Integer; openDialog: TOpenDialog; begin if openDialog.Execute then begin try excel := CreateOleObject('Excel.Application'); except ShowMessage('Excel konnte nicht gestartet werden !'); exit; end; excel.Visible := true;{ für die testphase sinnvoll } excel.workbooks.open('C:\Users\qatrangi\Desktop\OSM neu\Marker1.xlsx'); excel.activeworkbook.sheets[1].activate; maxcol := excel.columns.count; maxRow := excel.rows.count; for X := 1 to maxcol do begin for Y := 1 to maxRow do begin if edit1.text = excel.cells.Item[y, x].Value then begin excel.Cells.Find(edit1.text,excel.Cells.Item[y,x], xlValues, xlWhole, xlByColumns, xlNext, False, False); excel.cells[y,x].select; showmessage('yes') ; exit; //polydrow(Edit1.Text); // StringGrid1.cells[X - 1, Y - 1] := excel.cells.Item[X, Y].Value end else showmessage('no'); end; end; excel.workbooks.close; excel := Unassigned; end; end; |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Du hast 2 Spalten und 2 Zeilen.
2 x 2 = 4 Die gehst alle 4 Felder in excel durch. Wenn du einen Treffer hast, machst du ein Showmessage('yes'). Hast du keinen Treffer, machst du Showmessage('no'). Bei 4 Feldern machst du dann 4 mal Showmessage. Das Programm macht also genau das, was du programmiert hast. Demnach liegt kein Fehler vor. Zitat:
Vielleicht solltest du mal den Debugger in Delphi verwenden, damit du siehst, was in deinem Programm passiert. |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Zitat:
xlValues: Bei berechneten Feldern soll im Ergebnis und nicht in der Formel gesucht werden xlPart/xlWhole: ist sowas wie das "ganze Wörter" beim Suchen in Texteditoren (nur wenn ganze Zelle oder wenn Teil von Zelle) xlNext: vorwärs oder rückwärs suchen, also vor oder nach der aktuellen Zelle ![]() ![]() ![]() ![]() ... |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Die gleichen Links (oder sind es dieselben?) in etwas "übersetzter" Form:
![]() ![]() ![]() ![]() |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Dank für eure Hilfe,
Ich habe noch ein problem und zwar: wie kann man zeigen,wie viel columns für jeder Row gibt? Ich habe eine Funktion,durch die man Anzahl der spalten von einer bestimmten Row sehen könnten: [DP] function TForm1.show(ad:string):integer; var x,y:integer; begin Result:=0; for X := 1 to 3 do begin for Y := 1 to 4 do begin if ad =excel.cells.Item[y, x].Value then Result:= Excel.Cells[y,x].row; end; end; end;[/DP] |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Hallo zeina,
eventuell ist UsedRange.Columns.count, was Du benötigst. VG ZYL |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Hallo ZYLAGON,
danke für deine Antwort. das funktioniert,aber zeigt wie viel max columns in Datei gibt.In meine Excel datei habe ich Rows mit Unterschiedliche Anzahl Spalten. Meine Aufgabe ist,dass ich die Anzahl Spalten in ein bestimmte Row zeigen muss??? |
AW: Ein Edit.Text in eine vorgefertigte Excel Datei suchen.
Hallo zeina,
Deine Angaben sind etwas konfus, aber ich habe mal ein kleines Beispielprogramm angehängt wie man die Anzahl Spalten in einer bestimmten Zeile und die Anzahl Zeilen in einer bestimmten Spalte ermitteln kann.
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var DateiName: TFileName; olevEXCELoffen: OLEVariant; AnzahlZeilen: integer; AnzahlSpalten: integer; SpaltenNr: integer; ZeilenNr: integer; begin try olevEXCELoffen := CreateOleObject('Excel.Application'); except ShowMessage('Excel ist nicht geöffnet !'); Exit; end; olevEXCELoffen.Visible:= TRUE; olevEXCELoffen.Workbooks.Open('C:\Users\Public\Documents\EXCEL-Daten\AnzahlMappe1.xlsx'); // Anzahl Zeilen ermitteln, in der Spalte die in SpaltenNr angegeben ist. SpaltenNr:= 2; AnzahlZeilen:= olevEXCELoffen.Cells[olevEXCELoffen.Rows.Count,SpaltenNr].End[xlUp].Row; showmessage(AnzahlZeilen.tostring); // Anzahl Spalten ermitteln, in der Zeile die in ZeilenNr angegeben ist. ZeilenNr:= 24; AnzahlSpalten:= olevEXCELoffen.Cells[ZeilenNr,olevEXCELoffen.Columns.Count].End[xlToLeft].Column; showmessage(AnzahlSpalten.tostring); olevEXCELoffen.Quit; olevEXCELoffen:= Unassigned; end; Bis bald Chemiker |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:11 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