Excel

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
renan_pre
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 50
Registrado em: Ter, 10 Abr 2007 11:08 am
Localização: São Paulo - SP
M. Renan

E aí Galera!!!

Eu vi nesse tópico http://glufke.net/oracle/viewtopic.php? ... ight=excel sobre como exportar para o excel.... funciona perfeitamente!!!
Gostaria de saber se tem como auto-ajustar a largura da célula conforme o tamanho do texto contido nela... (no caso se ajustar ao maior tamanho)...

alguém sabe dizer??

Valeu
Abraços
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Eu creio que automaticamente não tenha como.
Mas, tem como você mudar a propriedade do OLE2, se não me engano columnwidth(Dê uma olhada no tópico que tem a sintaxe correta para o tamanho da coluna).

O que eu fiz foi o seguinte, na célula que estou preenchendo, vejo antes o MAX(LENGTH(DA_INFORMACAO)) e, mudo a propriedade.

Faça um teste ai.
qualquer coisa, manda pra gente, beleza?
Avatar do usuário
TBou
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 136
Registrado em: Qui, 05 Ago 2004 9:33 am
Localização: Campo Grande - MS
Thiago Bourscheidt
thiago.info@apoiorural.com.br
Analista de Sistemas

bom, eu montei uma macro no proprio excel e depois que terminei de implementar os valores pelo forms eu chamo esta macro para fazer todas as formatações que preciso.

não estou com o codigo aqui mas pelo que me lembro é

Selecionar tudo

DDE.Execute(docID, '[nome da macro]',10000);
DDE.Execute(docID, '[Save]',10000);

qualquer coisa só chamar
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Então, Thiago.

Falei do COLUMNWIDTH, pois o link que ele referenciou, é utilizado OLE2.

Se for realizar com OLE2, eu fiz isso...

1) Peguei o max(length(x)) da informação (no exemplo abaixo, a coluna ENDERECO) que vem da minha tabela e, alterei a seguinte propriedade:

Selecionar tudo

 ...
   SELECT MAX(LENGTH(ENDERECO))
      INTO V_TAM
     FROM TABELA;
 ...
 OLE2.SET_PROPERTY(CELL, 'COLUMNWIDTH', V_TAM); 
Acho q isso resolve o problema.
qualquer coisa, manda ai.
renan_pre
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 50
Registrado em: Ter, 10 Abr 2007 11:08 am
Localização: São Paulo - SP
M. Renan

Opa... beleza?

Trevisolli, funcionou sim! valeu pela dica.... esse negócio de macro que o Thiago falou ficaria mais complicado...
Mas o tamanho da COLUMNWIDTH não é exatamente igual à quantidade de caracteres da string..... então eu chutei um número e fiz assim:

Selecionar tudo

...
nTamanho := length(endereco) + 5;

OLE2.SET_PROPERTY(CELL, 'COLUMNWIDTH', nTamanho); 
Daí deu certo....

valeu galera pelas dicas!

Abraços
renan_pre
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 50
Registrado em: Ter, 10 Abr 2007 11:08 am
Localização: São Paulo - SP
M. Renan

Vixi... agora to com outro problema, relacionado a essa mesma rotina, de gerar arquivo xls, csv, etc.....

O problema que a maioria dos usuários da empresa usam terminais, e não tem excel, é o brOffice....... então dá problema no programa quando vai gerar o arquivo... bem na linha:

Selecionar tudo

Application := Client_Ole2.Create_Obj('Excel.Application'); 
E agora?! como fazer para gerar o arquivo e não dar pau???

Valeu
Joneto
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Seg, 25 Fev 2008 2:51 pm
Localização: Portugal

oi,

Selecionar tudo

ranger := OLE2.GET_OBJ_PROPERTY( MySheet,'UsedRange');
range_col := OLE2.GET_OBJ_PROPERTY( ranger,'Columns');
OLE2.INVOKE( range_col,'AutoFit' );
Joneto
renan_pre
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 50
Registrado em: Ter, 10 Abr 2007 11:08 am
Localização: São Paulo - SP
M. Renan

Joneto,

ranger, range_col e MySheet eu tenho que declarar como OLE2.OBJ_TYPE ???

como eu tenho que fazer pra isso funcionar?
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes