DevExpress cxGrid (데이터베이스에 연결됨)를 사용하는 Delphi 응용 프로그램이 있습니다.Excel에서 데이터를 cxGrid에 붙여 넣는 방법
Excel에서 그리드로 데이터를 복사하여 붙여 넣을 수 있어야합니다.
이것이 가능합니까? 그렇다면 어떻게해야합니까? 어떤 추가 구성 요소가 필요합니까?
DevExpress cxGrid (데이터베이스에 연결됨)를 사용하는 Delphi 응용 프로그램이 있습니다.Excel에서 데이터를 cxGrid에 붙여 넣는 방법
Excel에서 그리드로 데이터를 복사하여 붙여 넣을 수 있어야합니다.
이것이 가능합니까? 그렇다면 어떻게해야합니까? 어떤 추가 구성 요소가 필요합니까?
Clipboard.HasFormat(CF_TEXT)
으로 형식을 확인하십시오.
Clipboard.AsText
으로 텍스트를 추출하십시오.
행을 StringList.Text := Clipboard.AsText
으로 분할하십시오. 문자열 목록의 각 항목은 이제 클립 보드의 행입니다.
분할 스플릿 기능을 사용하여 개별 세포로 각 행 : 아마
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 바로 가기에서 클립 보드의 내용을 파싱하고 각각의 셀에 데이터를 설정합니다.
가장 쉬운 형식 갈 텍스트로 그것을 밖으로 끌어와 텍스트 속성을 통해 문자열리스트에 충실하는 것입니다. 목록의 각 항목은 ht 탭 문자로 표시된 열 경계에서 셀로 분리 할 수있는 전체 행이됩니다. –
그는 문제의 개발자이며, 자신의 직업입니다 ... – ComputerSaysNo
TStringList를 사용하고 구분 기호 문자를 할당 한 다음 배열의 길이를 TStringList 변수의 수로 설정하면 각 항목을 배열의 해당 문자열 항목에 복사하거나 문자열 목록의 각 항목에 액세스 할 수 있습니다. – ComputerSaysNo
@Dorin Duminica Excel 데이터는 2D이므로 제안을 1D 배열로 단순화하지 않습니까? –
@Dorin Duminica 당신이 구분 기호 속성을 참조하는 것으로 의심되지만 일반적으로 작동하지 않습니다. –