Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcio.theis

[Resolvido] Exportar para OpenOffice e BrOffice

Recommended Posts

Bom, abaixo vou colocar um pequeno exemplo de como pode ser esta exportação, para mais informações de comandos, formatações, pode-se acessar o site do open office, onde consta uma API para desenvolvedores, com os comandos...

 

Primeiramente declare no uses ComObj

 

Adicione um botão, e no OnClick faça:

 

procedure TForm1.BitBtn1Click(Sender: TObject);
var
	parametro, OpenOffice, OpenDesktopOpenOffice, CalcOpenOffice, SheetsOpenOffice, SheetOpenOffice: Variant;
	x, y: integer;
	arquivo: string;

	function CriaParametroOpenOffice(nome: string; tipoData: variant): variant;
	var
		reflection: variant;
	begin
	reflection:=OpenOffice.CreateInstance('com.sun.star.reflection.CoreReflection');
	reflection.forName('com.sun.star.beans.PropertyValue').createObject(result);
	result.Name:=nome;
	result.Value:=tipoData;
	end;

	function FileName2URL(FileName: string): string;
	begin
	result:='';
	if (LowerCase(copy(FileName,1,8)) <> 'file:///') then
		result:='file:///';
	result:=result + StringReplace(FileName, '\', '/', [rfReplaceAll, rfIgnoreCase]);
	end;
begin
arquivo:=FileName2URL('c:\teste.ods');

OpenOffice:=CreateOleObject('com.sun.star.ServiceManager');
OpenDesktopOpenOffice:=OpenOffice.CreateInstance('com.sun.star.frame.Desktop');
parametro:=VarArrayCreate([0, 0], varVariant);
parametro[0]:=CriaParametroOpenOffice('Hidden',True);
CalcOpenOffice:=OpenDesktopOpenOffice.LoadComponentFromURL('private:factory/scalc', '_blank', 0, parametro);
SheetsOpenOffice:=CalcOpenOffice.Sheets;
SheetOpenOffice:=SheetsOpenOffice.getByIndex(0);

for x:=0 to 9 do
	for y:=0 to 9 do
		SheetOpenOffice.GetCellByPosition(x,y).SetString(IntToStr(x + 1) + ' X ' + IntToStr(y + 1));

parametro:=VarArrayCreate([0, 0], varVariant);
parametro[0]:=CriaParametroOpenOffice('Hidden',False);
CalcOpenOffice.StoreToURL(arquivo, parametro);
OpenDesktopOpenOffice.LoadComponentFromURL(arquivo, '_blank', 0, parametro);
OpenOffice:=Unassigned;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.