Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Excel - markierte Zeile auslesen (https://www.delphipraxis.net/151393-excel-markierte-zeile-auslesen.html)

nezumi77 16. Mai 2010 08:04


Excel - markierte Zeile auslesen
 
Hallo,

ich möchte in einem schon geöffneten Excel-Dokument die gerade markierte Zeile auslesen, ohne die Zeilennummer angeben zu müssen und wenn möglich auch ohne Keybd_event.

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
var
WS: OleVariant;
neu: String;
begin
ExcelApplication1.Connect;
ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);
ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveSheet as _Worksheet);
WS := ExcelApplication1.ActiveSheet as _Worksheet;

neu := WS.Selection.text; //so ungefähr, aber das geht nicht
Memo1.Lines.Add(neu);

ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
end;
Kann mir jemand weiterhelfen?

Chemiker 16. Mai 2010 08:24

Re: Excel - markierte Zeile auslesen
 
Hallo nezumi77,

wie steuerst Du denn die grade markierte Zeile an?

Bis bald Chemiker

nezumi77 16. Mai 2010 08:29

Re: Excel - markierte Zeile auslesen
 
Hallo Chemiker,

ich habe die Zeile manuell markiert.
Ich muss ein großes Excel Dokument nachbearbeiten und immer dann, wenn ein Zeilen-Eintrag einen bestimmten Inhalt hat, diesen auslesen.

Also: Zeile in Excel markieren und auf den Knopp meines Programms drücken (dann sollte die Zeile dort im Memo abgelegt sein).

nezumi77 16. Mai 2010 08:41

Re: Excel - markierte Zeile auslesen
 
PS:

Wahrscheinlich muss ich meinem Programm doch mitteilen, welche Zeile ich meine. Das möchte ich aber nicht, weil es zu umständlich ist.

Also hab ich versucht:

Delphi-Quellcode:
...
Keybd_event($11, 0, 0, 0);  //Strg+C (kopieren)
Keybd_event($43, 0, 0, 0);
Keybd_event($43, 0, KEYEVENTF_KEYUP, 0);
Keybd_event($11, 0, KEYEVENTF_KEYUP, 0);
delay(20);
neu := Clipboard.AsText;
Memo1.Lines.Add(neu);
...
aber das liefert mir nicht den Zeileneintrag, sondern irgendwas, das vorher schon in der Zwischenablage war...

toms 16. Mai 2010 09:20

Re: Excel - markierte Zeile auslesen
 
ExcelApplication1.ActiveCell liefert dir die Zelle(n) mit dem Fokus.
ExcelApplication1.ActiveCell.Value sollte dir den Text liefern.

nezumi77 16. Mai 2010 09:32

Re: Excel - markierte Zeile auslesen
 
Hallo Toms,

das liefert mir zwar nur den Wert der ersten Zelle, aber für meinen Zweck reichts.

Vielen Dank!

Chemiker 16. Mai 2010 10:04

Re: Excel - markierte Zeile auslesen
 
Hallo nezumi77,

mit dem Clipbord könnte man es so machen die Bezeichnungen müssen noch auf Deine Bedürfnisse angepasst werden:
Delphi-Quellcode:
MemoExcelZeile.Clear;
  cl:= Clipboard();
  olevEXCEL.Selection.Copy;
  MemoExcelZeile.Lines.Add(cl.AsText);
  olevEXCEL.CutCopyMode:= FALSE;
Bis bald Chemiker


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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