Frage

Ich habe eine Delphi-Anwendung mit DevExpress cxGrid (der Datenbank verbunden ist).

Ich benötige der Lage sein, Daten aus Excel in das Netz kopieren und einfügen.

Ist das möglich? Wenn ja, wie es zu tun, die zusätzlichen Komponenten brauche ich?

War es hilfreich?

Lösung

Überprüfen Sie das Format mit Clipboard.HasFormat(CF_TEXT).

Extrahieren Sie den Text mit Clipboard.AsText.

Split in Reihen mit StringList.Text := Clipboard.AsText. Jedes Element in der Stringliste ist jetzt eine Zeile aus der Zwischenablage.

Split jede Zeile in einzelne Zellen, die eine Split-Funktion:

function Split(const s: string; Separator: char): TStringDynArray;
var
  i, ItemIndex: Integer;
  len: Integer;
  SeparatorCount: Integer;
  Start: Integer;
begin
  len := Length(s);
  if len=0 then begin
    Result := nil;
    exit;
  end;

  SeparatorCount := 0;
  for i := 1 to len do begin
    if s[i]=Separator then begin
      inc(SeparatorCount);
    end;
  end;

  SetLength(Result, SeparatorCount+1);
  ItemIndex := 0;
  Start := 1;
  for i := 1 to len do begin
    if s[i]=Separator then begin
      Result[ItemIndex] := Copy(s, Start, i-Start);
      inc(ItemIndex);
      Start := i+1;
    end;
  end;
  Result[ItemIndex] := Copy(s, Start, len-Start+1);
end;

Andere Tipps

Sie können den Inhalt der Zwischenablage überprüfen, nachdem Sie Inhalte aus dem Excel-App kopieren. und dann auf STRG + V Verknüpfung Sie den Inhalt der Zwischenablage und eingestellten Daten an ihre jeweiligen Zellen analysieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top