Fórum Salvar tabela do exel em delphi no pc #594550
30/05/2018
0
tenho essa função de gerar um um arquivo exel de um grid, gostaria de saber como que eu faço para salvar esse arquivo no meu pc.
procedure GerarExcelCDSESalvar(Consulta: TClientDataSet);
var
coluna, linha: Integer;
excel: variant;
Valor: string;
begin
try
excel := CreateOleObject('Excel.Application');
excel.Workbooks.add(1);
except
Application.MessageBox('Versão do Ms-Excel' + 'Incompatível', 'Erro',
MB_OK + MB_ICONEXCLAMATION);
end;
Consulta.first;
try
for linha := 0 to Consulta.RecordCount - 1 do
begin
for coluna := 1 to Consulta.FieldCount do
begin
if Consulta.Fields[coluna - 1] is TFloatField then
begin
Valor := FormatFloat(FormatoValor,
Consulta.Fields[coluna - 1].AsFloat);
excel.cells[linha + 2, coluna].NumberFormat :=
'R$ #.##0,00_);(R$ #.##0,00)';
excel.cells[linha + 2, coluna] := Valor;
end
else
begin
Valor := Consulta.Fields[coluna - 1].AsString;
excel.cells[linha + 2, coluna] := Valor;
end;
end;
Consulta.next;
end;
for coluna := 1 to Consulta.FieldCount do
begin
Valor := Consulta.Fields[coluna - 1].DisplayLabel;
excel.cells[1, coluna] := Valor;
end;
excel.Columns.AutoFit; // ajusta as colunas
excel.Workbooks.saveas('reajuste.xls');
// excel.Visible := True; essa opçao faz a tabela abrir depois de gerada
except
Application.MessageBox('Aconteceu um erro desconhecido durante a conversão'
+ 'da tabela para o Ms-Excel', 'Erro', MB_OK + MB_ICONEXCLAMATION);
end;
procedure GerarExcelCDSESalvar(Consulta: TClientDataSet);
var
coluna, linha: Integer;
excel: variant;
Valor: string;
begin
try
excel := CreateOleObject('Excel.Application');
excel.Workbooks.add(1);
except
Application.MessageBox('Versão do Ms-Excel' + 'Incompatível', 'Erro',
MB_OK + MB_ICONEXCLAMATION);
end;
Consulta.first;
try
for linha := 0 to Consulta.RecordCount - 1 do
begin
for coluna := 1 to Consulta.FieldCount do
begin
if Consulta.Fields[coluna - 1] is TFloatField then
begin
Valor := FormatFloat(FormatoValor,
Consulta.Fields[coluna - 1].AsFloat);
excel.cells[linha + 2, coluna].NumberFormat :=
'R$ #.##0,00_);(R$ #.##0,00)';
excel.cells[linha + 2, coluna] := Valor;
end
else
begin
Valor := Consulta.Fields[coluna - 1].AsString;
excel.cells[linha + 2, coluna] := Valor;
end;
end;
Consulta.next;
end;
for coluna := 1 to Consulta.FieldCount do
begin
Valor := Consulta.Fields[coluna - 1].DisplayLabel;
excel.cells[1, coluna] := Valor;
end;
excel.Columns.AutoFit; // ajusta as colunas
excel.Workbooks.saveas('reajuste.xls');
// excel.Visible := True; essa opçao faz a tabela abrir depois de gerada
except
Application.MessageBox('Aconteceu um erro desconhecido durante a conversão'
+ 'da tabela para o Ms-Excel', 'Erro', MB_OK + MB_ICONEXCLAMATION);
end;
Abner Carvalho
Curtir tópico
+ 0
Responder
Posts
30/05/2018
Raimundo Pereira
Boa tarde.
Seguir este exemplo e não tive dificuldade.
Seguir este exemplo e não tive dificuldade.
Procedure X;
var excel :variant;
begin
try
excel := CreateOleObject('excel.application');
if not Excel.Application.Visible then
begin
Excel.Application.Visible := true;
Excel.WorkBooks.Add;
Excel.Cells[1,1] := 'cel 1,1';
Excel.Cells[1,2] := 'cel 1,2';
Excel.Cells[1,3] := 'cel 1,3';
//Aqui eu escolhi onde gostaria de salvar
Excel.ActiveWorkBook.SaveAs('c:\\aplic\\MyOutput2');
Excel.visible:=False;
Excel.quit;
Excel:=unassigned;
end;
except
showmessage('Ocorreu erro ao executar a transferência');
Excel.WorkBooks.Disconnect; //desconecta sua aplicação do documento aberto no excel.
Excel.Application.Disconnect; //desconecta sua aplicação do Excel
end;
end;
Responder
Gostei + 0
05/06/2018
Abner Carvalho
ok muito obrigado aki deu certo
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)