如何将数据从Excel粘贴到cxGrid中
我有一个使用DevExpress cxGrid(连接到数据库)的Delphi应用程序。
我需要能够将数据从Excel复制粘贴到网格中。
这可能吗? 如果是这样,如何做到这一点,我需要哪些额外的组件?
用Clipboard.HasFormat(CF_TEXT)
检查格式。
用Clipboard.AsText
提取文本。
用StringList.Text := Clipboard.AsText
分割成几行StringList.Text := Clipboard.AsText
。 string列表中的每个项目现在都是剪贴板中的一行。
使用分割function将每一行分割成单独的单元格:
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;
从Excel应用程序复制内容后,可以检查剪贴板的内容。 然后在CTRL + V快捷键上parsing剪贴板的内容并将数据设置到它们各自的单元格。