3

저는 Delphi 7을 사용하고 있습니다. 파일을 사용하는 대신 자동화를 사용하여 내 프로그램의 목록 내용을 OpenOffice Calc로 내보내고 싶습니다.Delphi에서 OpenOffice Calc로 목록 내보내기

작업은 간단합니다. 새 문서를 만들고 행/열을 반복하며 셀 데이터를 변경합니다.

일부 코드를 찾았지만 완전하지는 않습니다.이 간단한 작업을 수행 할 준비가 된 몇 가지 예제 코드가 있어야합니다. 노력하면 몇 시간 만 절약 할 수 있습니다.

미리 감사드립니다.


편집 : 위의 내용을 달성하기 위해 OpenOffice Calc를 자동화하고 싶습니다. 감사!

+0

OpenOffice Calc는 여러 형식 (HTML, 탭 구분, CSV 등)으로 데이터를 가져 오는 것을 지원합니다. 귀하의 질문은 정확히 무엇입니까? Delphi에서 가져 오기 데이터 파일을 작성하는 방법 또는 해당 데이터를 Calc로 가져 오는 방법 또는 Calc를 자동화하고 프로그래밍 방식으로 스프레드 시트를 작성하는 방법? –

+0

Calc를 자동화하고 스프레드 시트를 프로그래밍 방식으로 생성하는 방법 – Steve

+0

@steve 질문에 대한 문제는 사용자가 원하는 것을 말하지 않았다는 것입니다. –

답변

2

가장 쉬운 해결책은 CSV 파일 출력을 작성하고 OpenOffice에서 열어 보는 것입니다.

OpenOffice Calc 및 Excel에서 읽을 수있는 .XLS 파일을 쓸 라이브러리도 있습니다. CSV는 매우 간단합니다. 예제가 필요합니다. TStringList를 만들고 쉼표로 구분 된 형식으로 문자열을 추가하십시오. 파일에 저장하십시오.

소위 "프로그래밍 방식"방법에는 OLE 자동화가 포함됩니다.

uses 
    OleAuto; 

var 
mgr,calc,sheets,sheet1,dt,args:Variant; 
begin 
    args = VarArrayCreate(...);  
    mgr := CreateOleObject('com.sun.star.ServiceManager'); 
    dt := mgr.createInstance('com.sun.star.frame.Desktop') 
    calc = dt.loadComponentFromURL('private:factory/scalc', '_blank', 0, args) 
    sheets = calc.getSheets() 
    sheet1 = sheets.getByIndex(0) 
    ... 
+0

고맙지 만 저장하지 않고 내보내기 만하고 싶습니다. 내 프로그램은 Excel과 동일하게 작동하며 일관성을 유지하기 위해 OO와 동일한 작업을 수행하려고합니다. 사용자가 시트를 저장했는지 여부 - 그/그녀가 선택한 것입니다. – Steve

+0

그것은 훨씬 더 많은 작업입니다. 무엇 때문에? 임시 폴더를 만들고, 나중에 프로그램을 실행하고, 임시 파일을 삭제하십시오. OLE 자동화에 대한 OO 지원을 알지 못합니다. MS Excel에서이 작업을 수행하는 방법을 알고 있지만 OOCalc에서는 수행 할 수 없습니다. –