Clipper On Line • Ver Tópico - Como liberar o Excel da memória

Como liberar o Excel da memória

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Como liberar o Excel da memória

Mensagempor Adson » 30 Out 2020 15:32

Boa tarde, senhores(as):

Tenho uma situação no sistema em que preciso gerar uma planilha Excel. O problema é que, mesmo executando os comandos de liberação do objeto, o Excel continua em execução em segundo plano.

Alguém tem uma dica de como fazer?

Meu código está assim:

FUNCTION gerEnvXMLExcel()

  #DEFINE AUT "Autorizadas"
  #DEFINE CAN "Canceladas"
  #DEFINE AAU "Aguardando Autorização"
  #DEFINE INU "Inutilizadas"
  #DEFINE DEN "Denegadas"
  #DEFINE ENT "Notas de Entradas"
  #DEFINE OUT "Outras"

  TRY
    oExcel := CreateObject( "Excel.Application" )
  CATCH
    Msginfo("Falha na criação do arquivo excel. Favor verificar se o excel está instalado!",'Atenção')
   Return .F.
  END   

  oExcel:Visible       := .F.   
  oExcel:DisplayAlerts := .F.
  oExcel:WorkBooks:Add()

  // Cria uma aba para cada tipo de documento
  oExcel:Sheets:Add()
  oSheet := oExcel:ActiveSheet
  oSheet:Name := OUT
  oExcel:Sheets(OUT):Tab:Color := 0xFF00FF   && Magenta
  oExcel:Sheets(OUT):Select()
  MontaCabecalho("RELAÇÃO DE OUTROS TIPOS DE NOTAS NO PERÍODO: "+DTOC(pDtInicio)+' A '+DTOC(pDtFim))
  ...
  ...
  ...
  oExcel:WorkBooks:Close()
  oExcel:Quit()
  oExcel := nil // Libera o Excel
  Release oExcel


Mesmo executando o método Quit(), atribuindo nil e executando o Release no objeto, o Excel continua em execução.

xHarbour 1.2.3 + HWGUI
Nota de Moderação:
Itamar M. Lins Jr.: O presente tópico foi movido da seção HwGui, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com a HwGui.
Avatar de usuário

Adson
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 33
Data de registro: 05 Mar 2019 10:36
Cidade/Estado: GOIANIA/GO
Curtiu: 38 vezes
Mens.Curtidas: 4 vezes

Como liberar o Excel da memória

Mensagempor asimoes » 30 Out 2020 20:23

oWorkBook := oExcel:WorkBooks:Add()

No final:

oWorkBook:Close()

oExcel:Quit()

oWorkBook := Nil

oExcel := Nil
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Como liberar o Excel da memória

Mensagempor Adson » 03 Nov 2020 09:12

asimoes escreveu:oWorkBook := oExcel:WorkBooks:Add()

No final:

oWorkBook:Close()

oExcel:Quit()

oWorkBook := Nil

oExcel := Nil


Obrigado, asimoes, só tive que acrescentar oSheet := Nil na sua sugestão. Aí funcionou 100%

Valewwww!!!!!
Avatar de usuário

Adson
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 33
Data de registro: 05 Mar 2019 10:36
Cidade/Estado: GOIANIA/GO
Curtiu: 38 vezes
Mens.Curtidas: 4 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro