Automação Delphi7 -gt; ExcelXP

18/01/2006

Pessoal, tudo certo?
Bem, estou tentando exportar um relatório para Excel. O arquivo está sendo gerado corretamente não fosse pelos seguintes fatores:

1) Não estou conseguindo alterar o nome da planilha. Por causa disso depois que eu gero o arquivo os nomes ainda ficam Plan1, Plan2, Plan3, etc. Na internet achei o seguinte comando:

Workbooks[1].Worksheets[1].Name := ´Nome´;

Mas o delphi aponta para um erro dizendo que a propriedade Name não existe.

2) Não consigo alterar a planilha para Landscape. Ela vem padrão Portrait. Encontrei na internet o comando:

ActiveSheet.PageSetup.Orientation := xlLandscape;

mas a propriedade PageSetup para mim é inválida. Como fazer então?

3) E queria fazer também com que após a inserção de todas as planilhas, que a primeira fosse ativada antes salvar o arquivo.

Inicialmente era só isso.

Até!


Delphi32

Respostas

18/01/2006

Delphi32

putz... acho que descobri!

é o seguinte: muitos dos códigos que têm na internet usam códigos como por exemplo:

Workbooks[1].Worksheets[1].Name := ´Nome´;

Estava dando uma olhada pelos componentes da palheta Servers e lembrei que tinha um componente TExcelWorkSheet. Verifiquei que nesse componente havia a propriedade Name e tantas outras que eu estava procurando como por exemplo PageSetup. Mas pelo meu código que usa apenas um TExcelApplication não funcionava porque Worksheets.Item[´1´] não retorna um TExcelWorkSheet, mas sim uma interface IDispatch. Então eu fiz o seguinte:

with Worksheets.Item[´1´&93; as ExcelWorkSheet do
begin
   Name := ´blablabla´;
   PageSetup.Orientation := xlLandscape;
end;


funcionou blz![/code]


Responder Citar