Fórum Exportando dados para Excel #430370

04/12/2012

0

Boa noite a todos
Tenho uma rotina que exporta dados de um banco para um relatório Excel. Quando a criei funcionou perfeitamente porem somente agora pude observar
do dia 01 ate o dia 13 a data fica no formato yyyy/mm/dd do dia 14 em diante dd/mm/yyyy que seria o correto.
Alguém poderia me dar uma ajudar o que esta errado no codigo abaixo

procedure TfrmMovimentacaoConvenios.ExportExcel(DataSet: TDataSet);
var
j, I: Integer;
MSExcel: Variant;
begin

if not dsconveniosMovEmpresa.DataSet.IsEmpty then
begin

MSExcel := CreateOleObject('Excel.Application');
MSExcel.WorkBooks.Add;
for I := 0 to DataSet.Fields.Count - 1 do
begin
MSExcel.ActiveSheet.Cells[1, I + 1].Value := DataSet.Fields[I].DisplayLabel;
MSExcel.ActiveSheet.Cells[1, I + 1].Font.Bold := True;
MSExcel.ActiveSheet.Cells[1, I + 1].Interior.Color := ColorToRGB(clYellow);
MSExcel.ActiveSheet.Cells[1, I + 1].Borders.LineStyle := 1
end;

DataSet.First;
for j := 0 to DataSet.RecordCount - 1 do
begin
for I := 0 to DataSet.Fields.Count - 1 do
begin
MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := DataSet.Fields[I].AsString;
// MSExcel.ActiveSheet.Cells[j + 2, i + 1].Interior.Color := ColorToRGB(clInfoBk);
// MSExcel.ActiveSheet.Cells[j + 2, i + 1].Borders.LineStyle := 1
end;
DataSet.Next;
end;
MSExcel.Visible := True;
end
else
begin
Application.MessageBox('Não Existem dados para geração do relatório.', 'Aviso ',
MB_OK + MB_ICONWARNING);

end;

end;
Carlos Faria

Carlos Faria

Responder

Posts

04/12/2012

Joel Rodrigues

Bem, o código é um só para todos os campos, então você precisará formatar esse campo de data direto no DataSet, para que quando acessar seu valor, já esteja no formato correto.
Responder

Gostei + 0

05/12/2012

Carlos Faria

Fiz isso , mas ficou do mesmo jeito. Mesmo com o campo formatado no clientdataset ele traz dois padroes de datas yyyy/mm/dd entre 01 e 13 e dd/mm/yyyy entre dia 14 e ultimo do mes.

Responder

Gostei + 0

05/12/2012

Carlos Faria

O resultset no sqlserver está perfeito , para dados exibidos no dbgrid tudo ok mas para exportação no excel aparece como mostra abaixo

Id Data
873908 30/11/2012 23:17:00
873909 30/11/2012 23:17:00
873905 30/11/2012 23:13:00
873847 30/11/2012 21:31:00
873393 29/11/2012 19:30:00
873481 30/11/2012 00:14:00
873479 29/11/2012 23:58:00
873478 29/11/2012 23:58:00
873477 29/11/2012 23:58:00
873470 29/11/2012 23:49:00
873458 29/11/2012 23:11:00
873193 29/11/2012 00:39:00
873183 29/11/2012 00:01:00
873182 29/11/2012 00:01:00
873176 28/11/2012 23:41:00
873177 28/11/2012 23:41:00
873167 28/11/2012 23:35:00
873154 28/11/2012 23:01:00
873035 28/11/2012 11:07:00
872990 28/11/2012 06:30:00
872954 28/11/2012 01:06:00
872953 28/11/2012 01:06:00
872945 28/11/2012 00:31:00
872943 28/11/2012 00:31:00
872944 28/11/2012 00:31:00
872938 28/11/2012 00:13:00
872928 27/11/2012 23:57:00
872919 27/11/2012 23:30:00
872909 27/11/2012 23:05:00
872713 27/11/2012 07:27:00
872669 27/11/2012 00:30:00
872668 27/11/2012 00:18:00
872658 26/11/2012 23:30:00
872660 26/11/2012 23:48:00
872661 26/11/2012 23:49:00
872650 26/11/2012 23:19:00
872618 26/11/2012 19:07:00
872480 26/11/2012 07:52:00
872387 25/11/2012 23:50:00
872388 25/11/2012 23:50:00
872377 25/11/2012 23:32:00
872376 25/11/2012 23:32:00
872375 25/11/2012 23:32:00
872368 25/11/2012 23:15:00
872172 25/11/2012 09:47:00
872002 25/11/2012 00:04:00
872003 25/11/2012 00:04:00
871775 24/11/2012 11:58:00
871612 24/11/2012 01:04:00
871602 24/11/2012 00:44:00
871577 23/11/2012 23:57:00
871576 23/11/2012 23:57:00
871549 23/11/2012 23:01:00
871511 23/11/2012 21:43:00
871310 23/11/2012 08:29:00
871220 23/11/2012 00:22:00
871217 23/11/2012 00:09:00
871207 22/11/2012 23:42:00
871195 22/11/2012 23:15:00
871196 22/11/2012 23:15:00
870979 22/11/2012 05:47:00
870929 22/11/2012 00:38:00
870920 22/11/2012 00:14:00
870909 21/11/2012 23:50:00
870906 21/11/2012 23:40:00
870905 21/11/2012 23:40:00
870904 21/11/2012 23:40:00
870903 21/11/2012 23:38:00
870732 21/11/2012 08:02:00
870654 20/11/2012 23:38:00
870663 21/11/2012 00:02:00
870656 20/11/2012 23:47:00
870646 20/11/2012 23:13:00
870645 20/11/2012 23:13:00
870647 20/11/2012 23:13:00
870636 20/11/2012 23:03:00
870581 20/11/2012 18:57:00
870441 20/11/2012 07:44:00
870394 20/11/2012 00:30:00
870393 20/11/2012 00:30:00
870374 20/11/2012
870372 19/11/2012 23:54:00
870371 19/11/2012 23:54:00
870287 19/11/2012 17:32:00
870147 19/11/2012 07:59:00
870053 18/11/2012 23:47:00
870049 18/11/2012 23:36:00
870043 18/11/2012 23:17:00
870048 18/11/2012 23:33:00
869870 18/11/2012 11:05:00
869930 18/11/2012 14:19:00
869898 18/11/2012 12:28:00
869841 18/11/2012 07:01:00
869841 18/11/2012 07:01:00
869702 17/11/2012 23:31:00
869701 17/11/2012 23:31:00
869695 17/11/2012 23:22:00
869491 17/11/2012 11:35:00
869433 17/11/2012 06:08:00
869324 16/11/2012 23:58:00
869320 16/11/2012 23:41:00
869315 16/11/2012 23:27:00
869310 16/11/2012 23:12:00
869263 16/11/2012 19:19:00
869035 16/11/2012 00:11:00
869022 15/11/2012 23:33:00
869021 15/11/2012 23:33:00
869020 15/11/2012 23:33:00
869015 15/11/2012 23:30:00
869011 15/11/2012 22:56:00
868819 15/11/2012 08:46:00
868688 15/11/2012 00:03:00
868672 14/11/2012 23:34:00
868670 14/11/2012 23:24:00
868671 14/11/2012 23:24:00
868399 14/11/2012 06:49:00
868337 13/11/2012 23:54:00
868335 13/11/2012 23:47:00
868329 13/11/2012 23:36:00
868350 14/11/2012 00:26:00
868328 13/11/2012 23:36:00
868319 13/11/2012 23:01:00
868152 13/11/2012 08:08:00
868151 13/11/2012 08:03:00
868097 11/12/2012 23:56
868083 11/12/2012 23:27
868087 11/12/2012 23:33
868082 11/12/2012 23:27
868084 11/12/2012 23:27
868080 11/12/2012 23:11
867785 11/12/2012
867776 11/11/2012 23:55
867766 11/11/2012 23:33
867765 11/11/2012 23:33
867763 11/11/2012 23:22
867758 11/11/2012 23:13
867597 11/11/2012 11:53
867399 11/11/2012 00:11
867400 11/11/2012 00:11
867398 11/11/2012 00:11
867386 11/11/2012 00:04
867366 11/10/2012 23:44
867365 11/10/2012 23:44
867357 11/10/2012 23:32
867043 11/10/2012 03:21
867032 11/10/2012 02:36
867018 11/10/2012 01:36
867017 11/10/2012 01:36
867011 11/10/2012 01:11
866653 11/09/2012 00:05
866651 11/09/2012
866639 11/08/2012 23:30
866637 11/08/2012 23:26
866630 11/08/2012 23:18
866633 11/08/2012 23:20
866629 11/08/2012 23:15
866628 11/08/2012 23:15
866334 11/07/2012 23:57
866325 11/07/2012 23:31
866320 11/07/2012 23:22
866316 11/07/2012 23:17
866315 11/07/2012 23:17
866314 11/07/2012 23:16
866265 11/07/2012 19:32
866037 11/06/2012 23:49
866034 11/06/2012 23:38
866031 11/06/2012 23:30
866030 11/06/2012 23:28
866025 11/06/2012 23:14
866024 11/06/2012 23:06
866026 11/06/2012 23:14
865979 11/06/2012 19:08
865859 11/06/2012 07:30
865810 11/06/2012 00:42
865801 11/06/2012 00:09
865806 11/06/2012 00:24
865800 11/06/2012 00:09
865797 11/05/2012 23:45
865795 11/05/2012 23:38
865790 11/05/2012 23:13
865486 11/04/2012 23:17
865511 11/05/2012 00:02
865510 11/05/2012 00:02
865484 11/04/2012 23:16
865485 11/04/2012 23:16
865137 11/04/2012 00:11
865122 11/03/2012 23:54
865120 11/03/2012 23:54
865121 11/03/2012 23:54
865102 11/03/2012 23:23
865104 11/03/2012 23:26
864760 11/02/2012 23:37
864753 11/02/2012 23:24
864751 11/02/2012 23:18
864750 11/02/2012 23:15
864745 11/02/2012 23:08
864742 11/02/2012 23:05
864440 11/02/2012 01:12
864434 11/02/2012 00:56
864426 11/02/2012 00:40
864417 11/02/2012 00:13
864410 11/02/2012 00:07
864384 11/01/2012 23:08
864292 11/01/2012 18:42
864066 11/01/2012 01:03
864065 11/01/2012 01:03
864064 11/01/2012 01:03
864053 11/01/2012 00:35
864049 11/01/2012 00:21
Responder

Gostei + 0

05/12/2012

Carlos Faria

Observem como acontece entre 01 e 13 e que a partir do dia 14 ate o ultimo dia do mês fica tudo correto

O resultset no sqlserver está perfeito , para dados exibidos no dbgrid tudo ok mas para exportação no excel aparece como mostra abaixo

Id Data
873908 30/11/2012 23:17:00
873909 30/11/2012 23:17:00
873905 30/11/2012 23:13:00
873847 30/11/2012 21:31:00
873393 29/11/2012 19:30:00
873481 30/11/2012 00:14:00
873479 29/11/2012 23:58:00
873478 29/11/2012 23:58:00
873477 29/11/2012 23:58:00
873470 29/11/2012 23:49:00
873458 29/11/2012 23:11:00
873193 29/11/2012 00:39:00
873183 29/11/2012 00:01:00
873182 29/11/2012 00:01:00
873176 28/11/2012 23:41:00
873177 28/11/2012 23:41:00
873167 28/11/2012 23:35:00
873154 28/11/2012 23:01:00
873035 28/11/2012 11:07:00
872990 28/11/2012 06:30:00
872954 28/11/2012 01:06:00
872953 28/11/2012 01:06:00
872945 28/11/2012 00:31:00
872943 28/11/2012 00:31:00
872944 28/11/2012 00:31:00
872938 28/11/2012 00:13:00
872928 27/11/2012 23:57:00
872919 27/11/2012 23:30:00
872909 27/11/2012 23:05:00
872713 27/11/2012 07:27:00
872669 27/11/2012 00:30:00
872668 27/11/2012 00:18:00
872658 26/11/2012 23:30:00
872660 26/11/2012 23:48:00
872661 26/11/2012 23:49:00
872650 26/11/2012 23:19:00
872618 26/11/2012 19:07:00
872480 26/11/2012 07:52:00
872387 25/11/2012 23:50:00
872388 25/11/2012 23:50:00
872377 25/11/2012 23:32:00
872376 25/11/2012 23:32:00
872375 25/11/2012 23:32:00
872368 25/11/2012 23:15:00
872172 25/11/2012 09:47:00
872002 25/11/2012 00:04:00
872003 25/11/2012 00:04:00
871775 24/11/2012 11:58:00
871612 24/11/2012 01:04:00
871602 24/11/2012 00:44:00
871577 23/11/2012 23:57:00
871576 23/11/2012 23:57:00
871549 23/11/2012 23:01:00
871511 23/11/2012 21:43:00
871310 23/11/2012 08:29:00
871220 23/11/2012 00:22:00
871217 23/11/2012 00:09:00
871207 22/11/2012 23:42:00
871195 22/11/2012 23:15:00
871196 22/11/2012 23:15:00
870979 22/11/2012 05:47:00
870929 22/11/2012 00:38:00
870920 22/11/2012 00:14:00
870909 21/11/2012 23:50:00
870906 21/11/2012 23:40:00
870905 21/11/2012 23:40:00
870904 21/11/2012 23:40:00
870903 21/11/2012 23:38:00
870732 21/11/2012 08:02:00
870654 20/11/2012 23:38:00
870663 21/11/2012 00:02:00
870656 20/11/2012 23:47:00
870646 20/11/2012 23:13:00
870645 20/11/2012 23:13:00
870647 20/11/2012 23:13:00
870636 20/11/2012 23:03:00
870581 20/11/2012 18:57:00
870441 20/11/2012 07:44:00
870394 20/11/2012 00:30:00
870393 20/11/2012 00:30:00
870374 20/11/2012
870372 19/11/2012 23:54:00
870371 19/11/2012 23:54:00
870287 19/11/2012 17:32:00
870147 19/11/2012 07:59:00
870053 18/11/2012 23:47:00
870049 18/11/2012 23:36:00
870043 18/11/2012 23:17:00
870048 18/11/2012 23:33:00
869870 18/11/2012 11:05:00
869930 18/11/2012 14:19:00
869898 18/11/2012 12:28:00
869841 18/11/2012 07:01:00
869841 18/11/2012 07:01:00
869702 17/11/2012 23:31:00
869701 17/11/2012 23:31:00
869695 17/11/2012 23:22:00
869491 17/11/2012 11:35:00
869433 17/11/2012 06:08:00
869324 16/11/2012 23:58:00
869320 16/11/2012 23:41:00
869315 16/11/2012 23:27:00
869310 16/11/2012 23:12:00
869263 16/11/2012 19:19:00
869035 16/11/2012 00:11:00
869022 15/11/2012 23:33:00
869021 15/11/2012 23:33:00
869020 15/11/2012 23:33:00
869015 15/11/2012 23:30:00
869011 15/11/2012 22:56:00
868819 15/11/2012 08:46:00
868688 15/11/2012 00:03:00
868672 14/11/2012 23:34:00
868670 14/11/2012 23:24:00
868671 14/11/2012 23:24:00
868399 14/11/2012 06:49:00
868337 13/11/2012 23:54:00
868335 13/11/2012 23:47:00
868329 13/11/2012 23:36:00
868350 14/11/2012 00:26:00
868328 13/11/2012 23:36:00
868319 13/11/2012 23:01:00
868152 13/11/2012 08:08:00
868151 13/11/2012 08:03:00
868097 11/12/2012 23:56
868083 11/12/2012 23:27
868087 11/12/2012 23:33
868082 11/12/2012 23:27
868084 11/12/2012 23:27
868080 11/12/2012 23:11
867785 11/12/2012
867776 11/11/2012 23:55
867766 11/11/2012 23:33
867765 11/11/2012 23:33
867763 11/11/2012 23:22
867758 11/11/2012 23:13
867597 11/11/2012 11:53
867399 11/11/2012 00:11
867400 11/11/2012 00:11
867398 11/11/2012 00:11
867386 11/11/2012 00:04
867366 11/10/2012 23:44
867365 11/10/2012 23:44
867357 11/10/2012 23:32
867043 11/10/2012 03:21
867032 11/10/2012 02:36
867018 11/10/2012 01:36
867017 11/10/2012 01:36
867011 11/10/2012 01:11
866653 11/09/2012 00:05
866651 11/09/2012
866639 11/08/2012 23:30
866637 11/08/2012 23:26
866630 11/08/2012 23:18
866633 11/08/2012 23:20
866629 11/08/2012 23:15
866628 11/08/2012 23:15
866334 11/07/2012 23:57
866325 11/07/2012 23:31
866320 11/07/2012 23:22
866316 11/07/2012 23:17
866315 11/07/2012 23:17
866314 11/07/2012 23:16
866265 11/07/2012 19:32
866037 11/06/2012 23:49
866034 11/06/2012 23:38
866031 11/06/2012 23:30
866030 11/06/2012 23:28
866025 11/06/2012 23:14
866024 11/06/2012 23:06
866026 11/06/2012 23:14
865979 11/06/2012 19:08
865859 11/06/2012 07:30
865810 11/06/2012 00:42
865801 11/06/2012 00:09
865806 11/06/2012 00:24
865800 11/06/2012 00:09
865797 11/05/2012 23:45
865795 11/05/2012 23:38
865790 11/05/2012 23:13
865486 11/04/2012 23:17
865511 11/05/2012 00:02
865510 11/05/2012 00:02
865484 11/04/2012 23:16
865485 11/04/2012 23:16
865137 11/04/2012 00:11
865122 11/03/2012 23:54
865120 11/03/2012 23:54
865121 11/03/2012 23:54
865102 11/03/2012 23:23
865104 11/03/2012 23:26
864760 11/02/2012 23:37
864753 11/02/2012 23:24
864751 11/02/2012 23:18
864750 11/02/2012 23:15
864745 11/02/2012 23:08
864742 11/02/2012 23:05
864440 11/02/2012 01:12
864434 11/02/2012 00:56
864426 11/02/2012 00:40
864417 11/02/2012 00:13
864410 11/02/2012 00:07
864384 11/01/2012 23:08
864292 11/01/2012 18:42
864066 11/01/2012 01:03
864065 11/01/2012 01:03
864064 11/01/2012 01:03
864053 11/01/2012 00:35
864049 11/01/2012 00:21
Responder

Gostei + 0

05/12/2012

Joel Rodrigues

Experimente usar outra propriedade como Value ou Text ao invés do AsString.
Responder

Gostei + 0

06/12/2012

Carlos Faria

nao funcionou
acho que o if abaixo resolveria o problema , o negocio é que eu nao estou sabendo trabalhar com o campo datahora
fiz esse mesmo teste para um campo float e funcionou perfeito

if DataSet.Fields[I].DataType = ftDateTime then
begin
// MSExcel.ActiveSheet.Cells[j + 2, I + 1].Style := 'datetime';
MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := DataSet.Fields[I]
.AsDateTime;
end
Responder

Gostei + 0

06/12/2012

Carlos Faria

nao funciona
acho que o if abaixo resolveria o problema , o negocio é que eu nao estou sabendo trabalhar com o campo datahora
fiz esse mesmo teste para um campo float e funcionou perfeito

if DataSet.Fields[I].DataType = ftDateTime then
begin
// MSExcel.ActiveSheet.Cells[j + 2, I + 1].Style := 'datetime';
MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := DataSet.Fields[I]
.AsDateTime;
end
Responder

Gostei + 0

07/12/2012

Leandro Santos

nao funciona
acho que o if abaixo resolveria o problema , o negocio é que eu nao estou sabendo trabalhar com o campo datahora
fiz esse mesmo teste para um campo float e funcionou perfeito

if DataSet.Fields[I].DataType = ftDateTime then
begin
// MSExcel.ActiveSheet.Cells[j + 2, I + 1].Style := 'datetime';
MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := DataSet.Fields[I]
.AsDateTime;
end


Ja tentou mudar a seguinte linha

if DataSet.Fields[I].DataType = ftDateTime then
begin
// MSExcel.ActiveSheet.Cells[j + 2, I + 1].Style := 'datetime';
MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := FormatDateTime('dd/mm/yyyy hh:mm:ss',DataSet.Fields[I].AsDateTime);
end

Ou

if DataSet.Fields[I].DataType = ftDateTime then
begin
// MSExcel.ActiveSheet.Cells[j + 2, I + 1].Style := 'datetime';
MSExcel.ActiveSheet.Cells[j + 2, I + 1].AsString := FormatDateTime('dd/mm/yyyy hh:mm:ss',DataSet.Fields[I].AsDateTime);
end
Responder

Gostei + 0

07/12/2012

Leandro Santos

nao funciona
acho que o if abaixo resolveria o problema , o negocio é que eu nao estou sabendo trabalhar com o campo datahora
fiz esse mesmo teste para um campo float e funcionou perfeito

if DataSet.Fields[I].DataType = ftDateTime then
begin
// MSExcel.ActiveSheet.Cells[j + 2, I + 1].Style := 'datetime';
MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := DataSet.Fields[I]
.AsDateTime;
end


Ja tentou mudar a seguinte linha

if DataSet.Fields[I].DataType = ftDateTime then
begin
// MSExcel.ActiveSheet.Cells[j + 2, I + 1].Style := 'datetime';
MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := FormatDateTime('dd/mm/yyyy hh:mm:ss',DataSet.Fields[I].AsDateTime);
end

Ou

if DataSet.Fields[I].DataType = ftDateTime then
begin
// MSExcel.ActiveSheet.Cells[j + 2, I + 1].Style := 'datetime';
MSExcel.ActiveSheet.Cells[j + 2, I + 1].AsString := FormatDateTime('dd/mm/yyyy hh:mm:ss',DataSet.Fields[I].AsDateTime);
end


A linha que me refiro é:

MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := FormatDateTime('dd/mm/yyyy hh:mm:ss',DataSet.Fields[I].AsDateTime);

ou

MSExcel.ActiveSheet.Cells[j + 2, I + 1].AsString := FormatDateTime('dd/mm/yyyy hh:mm:ss',DataSet.Fields[I].AsDateTime);
Responder

Gostei + 0

07/12/2012

Carlos Faria

nao funciona
acho que o if abaixo resolveria o problema , o negocio é que eu nao estou sabendo trabalhar com o campo datahora
fiz esse mesmo teste para um campo float e funcionou perfeito

if dataset.fields[i].datatype = ftdatetime then
begin
// msexcel.activesheet.cells[j + 2, i + 1].style := 'datetime';
msexcel.activesheet.cells[j + 2, i + 1].value := dataset.fields[i]
.asdatetime;
end


ja tentou mudar a seguinte linha

if dataset.fields[i].datatype = ftdatetime then
begin
// msexcel.activesheet.cells[j + 2, i + 1].style := 'datetime';
msexcel.activesheet.cells[j + 2, i + 1].value := formatdatetime('dd/mm/yyyy hh:mm:ss',dataset.fields[i].asdatetime);
end

ou

if dataset.fields[i].datatype = ftdatetime then
begin
// msexcel.activesheet.cells[j + 2, i + 1].style := 'datetime';
msexcel.activesheet.cells[j + 2, i + 1].asstring := formatdatetime('dd/mm/yyyy hh:mm:ss',dataset.fields[i].asdatetime);
end

a linha que me refiro é:

msexcel.activesheet.cells[j + 2, i + 1].value := formatdatetime('dd/mm/yyyy hh:mm:ss',dataset.fields[i].asdatetime);

ou

msexcel.activesheet.cells[j + 2, i + 1].asstring := formatdatetime('dd/mm/yyyy hh:mm:ss',dataset.fields[i].asdatetime);


Tentei todas as sugestões , nao funcionou nenhuma delas
Responder

Gostei + 0

10/12/2012

Márcio Lima

olá amigo tente assim:

MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := QuotedStr(FormatDateTime('mm/dd/yyyy hh:mm:ss',StrToDate(DataSet.Fields[I].AsDateTime)))

caso dê algum erro retire o QuotedStr
Responder

Gostei + 0

10/12/2012

Carlos Faria

Não compila
não roda

procedure TfrmMovimentacaoConvenios.ExportExcel(DataSet: TDataSet);
var
j, I: Integer;
MSExcel: Variant;
begin

if not dsconveniosMovEmpresa.DataSet.IsEmpty then
begin

MSExcel := CreateOleObject('Excel.Application');
MSExcel.WorkBooks.Add;

for I := 0 to DataSet.Fields.Count - 1 do
begin
MSExcel.ActiveSheet.Cells[1, I + 1].Value := DataSet.Fields[I]
.DisplayLabel;
MSExcel.ActiveSheet.Cells[1, I + 1].Font.Bold := True;
MSExcel.ActiveSheet.Cells[1, I + 1].Interior.Color := ColorToRGB
(clYellow);
MSExcel.ActiveSheet.Cells[1, I + 1].Borders.LineStyle := 1
end;

DataSet.First;
for j := 0 to DataSet.RecordCount - 1 do
begin
for I := 0 to DataSet.Fields.Count - 1 do
if DataSet.Fields[I].DataType = ftDateTime then
begin
// MSExcel.ActiveSheet.Cells[j + 2, I + 1].Style := 'datetime';
// MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := DataSet.Fields[I].AsDateTime;
MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := QuotedStr(FormatDateTime('mm/dd/yyyy hh:mm:ss',StrToDate(DataSet.Fields[I].AsDateTime)));

end
else
begin
MSExcel.ActiveSheet.Cells[j + 2, I + 1].Value := DataSet.Fields[I]
.AsString;
// MSExcel.ActiveSheet.Cells[j + 2, i + 1].Interior.Color := ColorToRGB(clInfoBk);
// MSExcel.ActiveSheet.Cells[j + 2, i + 1].Borders.LineStyle := 1
end;
DataSet.Next;
end;
MSExcel.Visible := True;
Responder

Gostei + 0

10/12/2012

Rodolpho Silva

Veja se isso funciona:
msexcel.activesheet.cells[j + 2, i + 1].NumberFormat := 'dd/mm/yy;@';
msexcel.activesheet.cells[j + 2, i + 1] := DataSet.Fields[I].AsDateTime;
Responder

Gostei + 0

11/12/2012

Carlos Faria

dentro do if não roda não compila
veja se isso funciona:

msexcel.activesheet.cells[j + 2, i + 1].numberformat := 'dd/mm/yy;@';
msexcel.activesheet.cells[j + 2, i + 1] := dataset.fields[i].asdatetime;
Responder

Gostei + 0

12/12/2012

Rodolpho Silva

dentro do if não roda não compila
veja se isso funciona:

msexcel.activesheet.cells[j + 2, i + 1].numberformat := 'dd/mm/yy;@';
msexcel.activesheet.cells[j + 2, i + 1] := dataset.fields[i].asdatetime;


Qual é a mensagem de erro do compilador?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar