Jogando dados de uma Query para uma planilha do Excel
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
Curtidas 0