Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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; 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';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
>
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.
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.