Delphi XE에서 som 자동화를 수행하는 동안 두 개의 문서가 동시에 열립니다. 한 문서의 주어진 범위의 내용을 다른 문서의 다른 범위로 복사하고 싶습니다. 어떻게해야합니까? 나는 목차를 대체 할 수있는 일이OLE 자동화 : 클립 보드를 사용하지 않고 Word 문서간에 텍스트를 복사하는 방법
procedure TForm1.ManipulateDocuments;
var
vDoc1,vDoc2 : TWordDocument;
vFilename : olevariant;
vRange1,vRange2 : Range;
begin
vDoc1 := TWordDocument.Create(nil);
vDoc2 := TWordDocument.Create(nil);
try
vFilename := 'c:\temp\test1.doc';
vDoc1.ConnectTo(FWordApp.Documents.Open(vFilename,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam));
vFilename := 'c:\temp\test2.doc';
vDoc2.ConnectTo(FWordApp.Documents.Open(vFilename,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam));
vRange1 := GetSourceRange(vDoc1);
vRange2 := GetDestinationRange(vDoc2);
vRange2.CONTENTS := vRange1.CONTENTS; //What should I substitute for CONTENTS?
finally
vDoc1.Free;
vDoc2.Free;
end;
end;
있습니까 :
다음 코드를 고려? 포맷팅, 북마크, 필드 코드 등을 복사하고자하므로 텍스트를 사용할 수 없습니다. 다른 방법으로해야합니까? 어떤 제안?
나는이 함수들 (exportfragment/importfragment)을 알아 채었고, 그들은 나의 필요에 완벽 할 것이다. 불행히도, Word 2007 나를위한 옵션이 아닙니다. 우리의 솔루션은 이러한 기능을 사용할 수 없었던 Word 2003을 실행하는 사용자 (어쩌면 이전 버전)에게도 제공되어야합니다. 그러나 어쨌든 고마워. 지금까지의 가장 좋은 제안 :-) –
업데이트 : 다른 답변이 없으므로이 질문을 최고로 받아 들일 것입니다. 그래도 클립 보드를 사용하거나 외부 파일을 사용하지 않고이 작업을 수행하는 것은 좋지 않습니다. 그것은 매우 기본적인 것처럼 보입니다 : -/ –
@Svein - 저는 대안으로 답변을 업데이트했습니다. 그래도 여전히 만족스럽지 않다면, 태그에'msword '를 추가하고 잠시 질문을 대답하지 않는 것이 좋습니다. –