AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Excel paste mutiple cellls from clipboard

Ein Thema von Detlev · begonnen am 21. Apr 2023 · letzter Beitrag vom 4. Mai 2023
Antwort Antwort
Detlev

Registriert seit: 16. Nov 2014
Ort: Hamburg
46 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Excel paste mutiple cellls from clipboard

  Alt 21. Apr 2023, 16:48
Delphi-Quellcode:
Excel := CreateOleObject('Excel.Application');
Excel.Workbooks.Add;
Excel.Cells[1,1].Paste; // ERROR 1
Excel.SaveAs(APath + AFilename + '.xlsx'); // ERROR 2
Excel.Workbook.Close;
Excel.Quit;
ERROR 1:
In der Zwischenablage befindet sich ein Text mit etlichen Tab-separierten Zellen und CR-separierten Zeilen. Manuell kann ich die Zelle A1 anclicken und Bearbeiten-Einfügen (Ctrl-V) machen und Excel fügt alles perfekt ein.

Wie lautet der passende Befehl, um dies per OLE zu machen?

ERROR 2:
Wie speichert man das aktuelle Workbook unter einem neuen Namen ab? "SaveAs" wäre naheliegend gewesen, geht aber leider nicht.

(beide Male die Fehlermeldung: 'Die Methode 'XXX' wird vom Automatisierungsobjekt nicht unterstützt'.)

Ich möchte nacheinander eine Vielzahl von Excel-Dateien automatisiert erzeugen. Dazu neue Workbook erzeugen, Daten von Delphi aus kopieren und abspeichern, dann schließen.

Bonusfrage: Kann man einfach feststellen, ob Excel schon vor Beginn offen ist und man dann das Quit sich spart, weil der Nutzer es vielleicht noch weiter offen haben will?

Danke im voraus!
Detlev
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
701 Beiträge
 
Delphi 12 Athens
 
#2

AW: Excel paste mutiple cellls from clipboard

  Alt 21. Apr 2023, 17:29
Sieh Dir die VBA-Hilfe von Excel an, da ist alles dokumentiert was das Objektmodell anbietet.

Neben CreateOLEObject gibt es auch ein GetActiveOleObject
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Excel paste mutiple cellls from clipboard

  Alt 21. Apr 2023, 23:00
Hallo,

Bonusfrage: Das kann man machen, sollte man aber nicht. Wenn Excel über ein Programm gesteuert wird, sollte ausschließlich die Steuerung beim Programm liegen, ohne das der Benutzer manuell eingreifen kann.

Delphi-Quellcode:
var
  DateiName: TFileName;
  oEXCEL: OLEVariant;
begin
  try
    oEXCEL := CreateOleObject('Excel.Application');
  except
    ShowMessage('Excel ist nicht geöffnet !');
    Exit;
  end;
  oEXCEL.Workbooks.add;
  oEXCEL.Visible:= TRUE;
  // Die Daten werden ab der Zelle B1 eingefügt
  oEXCEL.range['B1','B1'].Select;
  // Daten aus der Zwischenablage nach Excel importieren
  oEXCEL.ActiveSheet.Paste;
  // Neuer Dateiname; gegebenfalls sind Schreibrechte zu beachten
  DateiName:='C:\Users\Internet\Documents\KopieTest.xlsx';
  // Datei abspeichern
  oEXCEL.ActiveWorkbook.SaveAs(Filename:=DateiName);

  if NOT VarIsEmpty(oEXCEL) then
  begin
    oEXCEL.ActiveWorkBook.Saved:= TRUE;
    oEXCEL.Quit;
    oEXCEL:= Unassigned;
  end;
Mit diesem Code kann man die Zwischenablage nach Excel importieren.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Detlev

Registriert seit: 16. Nov 2014
Ort: Hamburg
46 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Excel paste mutiple cellls from clipboard

  Alt 4. Mai 2023, 18:20
Vielen lieben Dank! Das hat großartig funktioniert!

Klasse!
Detlev
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#5

AW: Excel paste mutiple cellls from clipboard

  Alt 4. Mai 2023, 18:39
Es gibt auch fertige Komponenten, die schön nach Excel exportieren.

DevExpress-Grids: direkt in eine Daen, ohne das Excel installiert sein muß (wenn ich mich nicht irre)
FastReports: aber da muß xcel installiert sein

OK, Delphi bringt auch alles mit. (nur den CSV-Import muß man nicht kopieren ... Delphi-Referenz durchsuchenSplitString bzw. siehe StringHelper )
https://learndelphi.org/de/what-you-...l-from-delphi/
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 4. Mai 2023 um 18:42 Uhr)
  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 05:56 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