Wie Daten aus Excel einfügen in cxGrid
-
08-10-2019 - |
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?
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.