delphi excel
19/08/2004
0
Ola pessoal .
Como eu faço para um aplicação em delphi 7 que salve os dados das tabelas em planilhas do excel
valeu :D
Como eu faço para um aplicação em delphi 7 que salve os dados das tabelas em planilhas do excel
valeu :D
Radolpho
Curtir tópico
+ 0
Responder
Posts
19/08/2004
Mkoch
procedure SalvaParaExcel(const Valores: ArrayDinString);
var
Excel: Variant;
I, J, Cols, Lins: Integer;
SaveDialog: TSaveDialog;
NomeArq: String;
begin
try
try
SaveDialog := TSaveDialog.Create(Application);
NomeArq := ´´;
//Configura o SaveDialog.
with SaveDialog do
begin
Title := ´Salvar para Microsoft Excel´;
InitialDir := ´C:\´;
DefaultExt := ´*.xls´;
Filter := ´Microsoft Excel|*.xls´;
if Execute then
NomeArq := Trim(FileName);
end;//with
if Trim(NomeArq) = ´´ then
begin
Application.MessageBox(´Por favor informe um nome para o arquivo.´, ´Mensagem de Erro´, MB_ICONQUESTION+MB_OK);
Exit;
end;//if
if Copy(NomeArq, Length(NomeArq) - 3, 4) <> ´.xls´ then
begin
Application.MessageBox(PChar(´O nome do arquivo ´´´ + NomeArq + ´´´ é inválido.´), ´Mensagem de Erro´, MB_ICONQUESTION+MB_OK);
Exit;
end;//if
//Verifica se o Arquivo já existe.
if FileExists(NomeArq) then
if not Application.MessageBox(PChar(´O arquivo ´´´ + NomeArq + ´´´ já existe. Deseja substítuílo?´), ´Mensagem de Questionamento´, MB_ICONQUESTION+MB_YESNOCANCEL) = IDYes then
Exit;
//Cria o Objeto Application do Excel.
Excel := CreateOleObject(´Excel.Application´);
//Mostra o Excel (se quiser vc quiser)
//Excel.Visible := True;
//Cria um novo WorkBook.
Excel.WorkBooks.Add;
//Preenche as células do Excel com os dados do vetor dinâmico.
Lins := Length(Valores);//Total de Linhas.
Cols := Length(Valores[0]);//Total de Colunas.
for I := 0 to Lins - 1 do
begin
for J := 0 to Cols -1 do
begin
//Se for data altero as ´/´ para ´.´
if StrToDateDef(Valores[I, J], 0) > 0 then
Valores[I, J] := StringReplace(Valores[I, J], ´/´, ´.´, [rfReplaceAll]);
Excel.WorkBooks[1].Sheets[1].Cells[I + 1, J + 1] := Valores[I, J];
end;//for J
end;//for I
//Salva a Planilha.
Excel.WorkBooks[1].SaveAs(NomeArq);
Application.MessageBox(PChar(´Arquivo ´´´ + NomeArq + ´´´ gerado com sucesso.´), ´Mensagem de Informação´, MB_ICONINFORMATION+MB_OK);
//Se aocntecer algum erro, trata-o.
except
on E: Exception do
begin
Application.MessageBox(PChar(´Não foi possível gerar o arquivo ´´´ + NomeArq + ´´´.´ + #13 + ´Erro:´ + E.Message), ´Mensagem de Erro´, MB_ICONQUESTION+MB_OK);
end;//for
end;//try except
finally
//Sai do Excel
Excel.Quit;
SaveDialog.Free;
end;//try finally
end;
var
Excel: Variant;
I, J, Cols, Lins: Integer;
SaveDialog: TSaveDialog;
NomeArq: String;
begin
try
try
SaveDialog := TSaveDialog.Create(Application);
NomeArq := ´´;
//Configura o SaveDialog.
with SaveDialog do
begin
Title := ´Salvar para Microsoft Excel´;
InitialDir := ´C:\´;
DefaultExt := ´*.xls´;
Filter := ´Microsoft Excel|*.xls´;
if Execute then
NomeArq := Trim(FileName);
end;//with
if Trim(NomeArq) = ´´ then
begin
Application.MessageBox(´Por favor informe um nome para o arquivo.´, ´Mensagem de Erro´, MB_ICONQUESTION+MB_OK);
Exit;
end;//if
if Copy(NomeArq, Length(NomeArq) - 3, 4) <> ´.xls´ then
begin
Application.MessageBox(PChar(´O nome do arquivo ´´´ + NomeArq + ´´´ é inválido.´), ´Mensagem de Erro´, MB_ICONQUESTION+MB_OK);
Exit;
end;//if
//Verifica se o Arquivo já existe.
if FileExists(NomeArq) then
if not Application.MessageBox(PChar(´O arquivo ´´´ + NomeArq + ´´´ já existe. Deseja substítuílo?´), ´Mensagem de Questionamento´, MB_ICONQUESTION+MB_YESNOCANCEL) = IDYes then
Exit;
//Cria o Objeto Application do Excel.
Excel := CreateOleObject(´Excel.Application´);
//Mostra o Excel (se quiser vc quiser)
//Excel.Visible := True;
//Cria um novo WorkBook.
Excel.WorkBooks.Add;
//Preenche as células do Excel com os dados do vetor dinâmico.
Lins := Length(Valores);//Total de Linhas.
Cols := Length(Valores[0]);//Total de Colunas.
for I := 0 to Lins - 1 do
begin
for J := 0 to Cols -1 do
begin
//Se for data altero as ´/´ para ´.´
if StrToDateDef(Valores[I, J], 0) > 0 then
Valores[I, J] := StringReplace(Valores[I, J], ´/´, ´.´, [rfReplaceAll]);
Excel.WorkBooks[1].Sheets[1].Cells[I + 1, J + 1] := Valores[I, J];
end;//for J
end;//for I
//Salva a Planilha.
Excel.WorkBooks[1].SaveAs(NomeArq);
Application.MessageBox(PChar(´Arquivo ´´´ + NomeArq + ´´´ gerado com sucesso.´), ´Mensagem de Informação´, MB_ICONINFORMATION+MB_OK);
//Se aocntecer algum erro, trata-o.
except
on E: Exception do
begin
Application.MessageBox(PChar(´Não foi possível gerar o arquivo ´´´ + NomeArq + ´´´.´ + #13 + ´Erro:´ + E.Message), ´Mensagem de Erro´, MB_ICONQUESTION+MB_OK);
end;//for
end;//try except
finally
//Sai do Excel
Excel.Quit;
SaveDialog.Free;
end;//try finally
end;
Responder
19/08/2004
Lucas Silva
Se tiver alguma dúvida, utilize o método de pesquisa do fórum...
Responder
Clique aqui para fazer login e interagir na Comunidade :)