Jogando dados de uma Query para uma planilha do Excel
27/01/2016
0
Eu preciso jogar os dados de uma query de forma que a planilha fique da seguinte maneira:[img]http://arquivo.devmedia.com.br/forum/imagem/433267-20160127-093211.png[/img]
Porém, com a codificação que eu fiz ela está saindo assim:
[img]http://arquivo.devmedia.com.br/forum/imagem/433267-20160127-093537.png[/img]
O código que estou usando é esse:
Porém, com a codificação que eu fiz ela está saindo assim:
[img]http://arquivo.devmedia.com.br/forum/imagem/433267-20160127-093537.png[/img]
O código que estou usando é esse:
procedure TfrmRel_Gerenciador.Gerar_Excel_HsTrabalhadas; Var ObjExcel : Variant; cTitulo, func, a1, a2, a3, a4, a5, a6, aa1, aa2, aa3, aa4, aa5, aa6, b1, b2, b3, b4, b5, soma1: String; L,C: Integer; begin Try ObjExcel := CreateOleObject('Excel.Application'); ObjExcel.WorkBooks.Add; //Cabeçalho do Relatório ObjExcel.cells.range['a1.k100'].font.name := 'Arial'; objExcel.Cells[1,1] := 'Relatório de Horas Trabalhadas'; objExcel.Cells.Range['a1:c1'].MergeCells := true; objExcel.Cells.Range['a1:c1'].horizontalalignment := 1; ObjExcel.cells[1,1].Font.Bold := True; ObjExcel.cells[1,1].Font.Size := 12; objExcel.Cells[2,1] := 'Período: '+ DateToStr(DtDeInicio.Date) + ' a '+DateToStr(DtDeTermino.Date); objExcel.Cells.Range['a2:b2'].MergeCells := true; objExcel.Cells.Range['a2:b2'].horizontalalignment := 1; ObjExcel.cells[2,1].Font.Bold := True; ObjExcel.cells[2,1].Font.Size := 10; ObjExcel.cells[4,1].Font.Bold := True; ObjExcel.cells[4,2].Font.Bold := True; ObjExcel.cells[4,3].Font.Bold := True; ObjExcel.cells[4,4].Font.Bold := True; ObjExcel.cells[4,5].Font.Bold := True; ObjExcel.cells[4,6].Font.Bold := True; ObjExcel.cells[4,7].Font.Bold := True; ObjExcel.cells[4,8].Font.Bold := True; ObjExcel.cells[4,9].Font.Bold := True; ObjExcel.cells[4,10].Font.Bold := True; ObjExcel.cells[4,11].Font.Bold := True; objExcel.Cells[4,1] := 'Cartão'; objExcel.Cells[4,2] := 'Funcionário'; objExcel.Cells[4,3] := 'Cargo'; objExcel.Cells[4,5] := 'TB'; objExcel.Cells[4,6] := 'AN'; objExcel.Cells[4,7] := 'EX'; objExcel.Cells[4,8] := 'EN'; objExcel.Cells[4,9] := 'AB'; objExcel.Cells[4,10] := 'HF'; objExcel.Cells[4,11] := 'TOTAL'; L:= 5; dmDados.dbHsTrabalhadas.First; while not dmDados.dbHsTrabalhadas.Eof do begin objExcel.Cells[L,1] := dmDados.dbHsTrabalhadas.FieldByName('CODIGO_CRACHA').AsString; objExcel.Cells[L,1].numberformat := '0'; objExcel.Cells[L,2] := dmDados.dbHsTrabalhadas.FieldByName('NOME_FUNCIONARIO').AsString; objExcel.Cells[L,3] := dmDados.dbHsTrabalhadas.FieldByName('DESCRICAO_CARGO').AsString; objExcel.Cells[L,5].numberformat := '[h]:mm'; objExcel.Cells[L,5] := dmDados.dbHsTrabalhadas.FieldByName('HTA').AsString; a1:= objExcel.Cells[L,5]; objExcel.Cells[L,6].numberformat := '[h]:mm'; objExcel.Cells[L,6] := dmDados.dbHsTrabalhadas.FieldByName('ANO').AsString; a2:= objExcel.Cells[L,6]; objExcel.Cells[L,7].numberformat := '[h]:mm'; objExcel.Cells[L,7] := dmDados.dbHsTrabalhadas.FieldByName('HEX').AsString; a3:= objExcel.Cells[L,7]; objExcel.Cells[L,8].numberformat := '[h]:mm'; objExcel.Cells[L,8] := dmDados.dbHsTrabalhadas.FieldByName('ENO').AsString; a4:= objExcel.Cells[L,8]; objExcel.Cells[L,9].numberformat := '[h]:mm'; objExcel.Cells[L,9] := dmDados.dbHsTrabalhadas.FieldByName('ATR').AsString; a5:= objExcel.Cells[L,9]; objExcel.Cells[L,9] := dmDados.dbHsTrabalhadas.FieldByName('HFA').AsString; objExcel.Cells[L,11].numberformat := '#'; objExcel.Cells[L,11] := a1 + a2 + a3 + a4 + a5; Inc(L); dmDados.dbHsTrabalhadas.Next; end; dmDados.dbHsTrabalhadas.Next; Inc(L); //Totais objExcel.Cells[L,4] := 'TOTAIS'; objExcel.Cells[L,5] := dmDados.Filtro.FieldByName('TOTAL_TRABALHADA').AsString; b1 := objExcel.Cells[L,5]; objExcel.Cells[L,5].numberformat := '[h]:mm'; objExcel.Cells[L,6] := dmDados.Filtro.FieldByName('TOTAL_ADICIONAL').AsString; b2 := objExcel.Cells[L,6]; objExcel.Cells[L,6].numberformat := '[h]:mm'; objExcel.Cells[L,7] := dmDados.Filtro.FieldByName('TOTAL_EXTRA').AsString; b3 := objExcel.Cells[L,7]; objExcel.Cells[L,7].numberformat := '[h]:mm'; objExcel.Cells[L,8] := dmDados.Filtro.FieldByName('TOTAL_EXTRA_NOTURNA').AsString; b4 := objExcel.Cells[L,8]; objExcel.Cells[L,8].numberformat := '[h]:mm'; objExcel.Cells[L,9] := dmDados.Filtro.FieldByName('TOTAL_ATRASO').AsString; b5 := objExcel.Cells[L,9]; objExcel.Cells[L,9].numberformat := '[h]:mm'; objExcel.Cells[L,10] := dmDados.Filtro.FieldByName('TOTAL_FALTOSA').AsString; objExcel.Cells[L,10].numberformat := '[h]:mm'; objExcel.Cells[L,11].numberformat := '[h]:mm'; ObjExcel.cells[l,4].Font.Bold := True; ObjExcel.cells[l,5].Font.Bold := True; ObjExcel.cells[l,6].Font.Bold := True; ObjExcel.cells[l,7].Font.Bold := True; ObjExcel.cells[l,8].Font.Bold := True; ObjExcel.cells[l,9].Font.Bold := True; ObjExcel.cells[l,10].Font.Bold := True; ObjExcel.cells[l,11].Font.Bold := True; If not ObjExcel.Application.Visible then ObjExcel.Application.Visible := True; Except ShowMessage('Ocorreu Erro durante a criação'); End; ObjExcel.columns.Autofit; ObjExcel.columns.Range['e1:j1'].ColumnWidth:= 7.25; ObjExcel.columns.Range['c1'].ColumnWidth:= 12; objExcel.Columns.Range['c5:c100'].horizontalalignment := 4; end;
Oswaldo Souto
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)