Ir para conteúdo

POWERED BY:

Arquivado

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

etspaz

excel gerado no delphi não é elimminado quando fecha a planilha

Recommended Posts

bom dia pessoal, eu gerei uma planilha do excel com o codigo a seguir:

procedure Tfrm_listaClientes_Excel.BitBtn1Click(Sender: TObject);
var
Sheet		: Variant;
ColumnRange  : Variant;
i: Integer;
begin
  SDT_lista_cli_EXCEL.Open;
  try
  //cria o objeto para exportar para o excel
  FrmProgressoExport := TFrmProgressoExport.Create(Application);
  FrmProgressoExport.Show;
  XLApp:= CreateOleObject('Excel.Application');
  XLApp.Workbooks.Add(xlWBatWorkSheet);
  XLApp.Workbooks[1].WorkSheets[1].Name := 'Mapa De Vendedor';

  Sheet := XLApp.Workbooks[1].WorkSheets[1];
  ColumnRange := XLApp.Workbooks[1].WorkSheets[1].Columns;

  SDT_lista_cli_EXCEL.First;
  //insere os dados na planilha excel criada
  ColumnRange.Rows[1].Font.Bold := True;
  ColumnRange.Rows[1].Font.Italic := True;
  Sheet := XLApp.Workbooks[1].WorkSheets[1];
  Sheet.Cells[1, 1] := 'CODIGO';

funciona direito, fecho a planilha, beleza, mas percebi que fica executando um processo excel.exe no windows,

porque quando reinicio ou desligo a maquina aparece aquela mensagem: finalizar ....

observei pelo gerenciador que realmente ficam tantos processos abertos quantas planilhas gerar.

o problema é que depois que a planilha é gerada o sistema não tem mais nada a ver com ela, pois o sistema só cria o excel e depois é com o office, pode até fechar o sistema que a planilha já existe e quem cuida é o win.

alguém sabe me dizer se tem como fazer o sistema controlar as planilhas geradas por ele, sem fechar qualquer outra planilha que tenha sido aberta pelo usuario sem usar o sistema, direto pelo office sei lá...

dá pra nomear o objeto de alguma forma com que o sistema possa identificar que é uma planilha gerada por ele e matar?

se tiver algo assim, todas planilhas criadas pelo sistemas seriam fechadas quando ele fosse fechado e de repente o usuario

está trabalhando com planilha, não precisa do sistema mas tem que deiá-lo aberto, isto seria um inconveniente, ficou confuso pra mim :wacko: .

bom, quem tiver uma dica, por favor me ajude

Paz e Amor Para Todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom dia pessoal, este problema eu resolvi,

só faltava incluir alinha:

XLap.quit;

que coisa, tão facil..

 

agora quero aproveitar este post para tirar outra duvida:

quando o numero de registros é muito grande a planilha não é gerada e dá o seguinte erro:

OLEerror 800A03EC

 

pesquisando descobri que as versões do excel anteriores ao 2007 suportavam a até no maximo 65 mil e alguma coisa de linhas.

e por quando ultrapassa o limite o excel não consegue abrir(estora).

já apliquei alguns filtros, e realmente dependendo da condição gera a planilha tranquilo, mas ainda sim os outros filtros ainda não são suficientes para impedir o erro, porque continua com muitos registros e é o que o usuario precisa ver, entendeu.

então alguém sabe dizer o que posso fazer?

existe algum componente para o delphi 2007 que gera planilhas já para o office 2007, acho q não. mas quem sabe?

vlw, pessoal, e estou aguardando dicas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom dia pessoal, este problema eu resolvi,

só faltava incluir alinha:

XLap.quit;

que coisa, tão facil..

 

agora quero aproveitar este post para tirar outra duvida:

quando o numero de registros é muito grande a planilha não é gerada e dá o seguinte erro:

OLEerror 800A03EC

 

pesquisando descobri que as versões do excel anteriores ao 2007 suportavam a até no maximo 65 mil e alguma coisa de linhas.

e por quando ultrapassa o limite o excel não consegue abrir(estora).

já apliquei alguns filtros, e realmente dependendo da condição gera a planilha tranquilo, mas ainda sim os outros filtros ainda não são suficientes para impedir o erro, porque continua com muitos registros e é o que o usuario precisa ver, entendeu.

então alguém sabe dizer o que posso fazer?

existe algum componente para o delphi 2007 que gera planilhas já para o office 2007, acho q não. mas quem sabe?

vlw, pessoal, e estou aguardando dicas.

 

Seguite você precisa controlar a quantidade de registros que estao sendo adicionados, quando chegar a 65mil cria uma nova Sheet e continua adicionando nessa Sheet.

 

Espero ter ajudado.

Comigo funcionou.

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.