Página 1 de 1

Como liberar o Excel da memória

Enviado: 30 Out 2020 15:32
por Adson
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:

Código: Selecionar todos

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

Como liberar o Excel da memória

Enviado: 30 Out 2020 20:23
por asimoes
oWorkBook := oExcel:WorkBooks:Add()

No final:

oWorkBook:Close()

oExcel:Quit()

oWorkBook := Nil

oExcel := Nil

Como liberar o Excel da memória

Enviado: 03 Nov 2020 09:12
por Adson
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!!!!!