etspaz 0 Denunciar post Postado Abril 1, 2008 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
etspaz 0 Denunciar post Postado Abril 7, 2008 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
klaid dias 0 Denunciar post Postado Junho 25, 2008 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