Salvar tabela do exel em delphi no pc
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
Curtidas 0
Respostas
Raimundo Pereira
30/05/2018
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;GOSTEI 0
Abner Carvalho
30/05/2018
ok muito obrigado aki deu certo
GOSTEI 0