Importar dados planilha excel para dbgrid
Tenho um dbrid, gostaria que este fosse alimentado com dados de uma planilha excel.
Se alguem souber como fazer eu agradeço.
Se alguem souber como fazer eu agradeço.
Danielle Ballester
Curtidas 0
Melhor post
Rm
15/11/2003
Salve sua planilha excel formato CSV (salvar como >CSV).Nome ARQ para o exemplo.Linhas e colunas sem cabeçalho.
Na uses de seu formulário declare COMOBJ(no mesmo form tambem exporto para excel e não lembro se comobj é necessário na importação ou na exportação ou em ambos)
Em um botão coloque:
procedure TForm4.BitBtn5Click(Sender: TObject);
var
Arq : TextFile;
texto : string;
I : Integer;
function MV : String;
var
Monta : String;
begin
monta := ´´;
inc(I);
While Texto[I] > ´*´ do
begin
If Texto[I]= ´;´ then
break;
monta := monta + Texto[I];
inc(I);
end;
result := monta;
end;
begin
if OpenDialog1.Execute then
begin
Screen.Cursor := crHourGlass;
datamodule3.table5.Open;//a tabela onde quero por os dados excel
AssignFile(Arq,OpenDialog1.FileName);
Reset(Arq);
if not EOF(Arq) then
repeat
ReadLn(Arq,Texto);
With datamodule3.table5 do begin
Insert;
I := 0;
FieldByName(´Nº´).AsFloat:=StrToFloat(MV);// Nº é meu campo
FieldByName(´Operação´).AsString := MV;//operação outro campo
FieldByName(´Tempo´).AsFloat:=StrToFloat(MV);//Tempo outro campo
Post;
end;
until EOF(Arq);// ate o fim arquivo CSV
Closefile(Arq);//fecha arquivo CSV
Screen.Cursor := crDefault;
end;
end;
Espero ter ajudado.
Na uses de seu formulário declare COMOBJ(no mesmo form tambem exporto para excel e não lembro se comobj é necessário na importação ou na exportação ou em ambos)
Em um botão coloque:
procedure TForm4.BitBtn5Click(Sender: TObject);
var
Arq : TextFile;
texto : string;
I : Integer;
function MV : String;
var
Monta : String;
begin
monta := ´´;
inc(I);
While Texto[I] > ´*´ do
begin
If Texto[I]= ´;´ then
break;
monta := monta + Texto[I];
inc(I);
end;
result := monta;
end;
begin
if OpenDialog1.Execute then
begin
Screen.Cursor := crHourGlass;
datamodule3.table5.Open;//a tabela onde quero por os dados excel
AssignFile(Arq,OpenDialog1.FileName);
Reset(Arq);
if not EOF(Arq) then
repeat
ReadLn(Arq,Texto);
With datamodule3.table5 do begin
Insert;
I := 0;
FieldByName(´Nº´).AsFloat:=StrToFloat(MV);// Nº é meu campo
FieldByName(´Operação´).AsString := MV;//operação outro campo
FieldByName(´Tempo´).AsFloat:=StrToFloat(MV);//Tempo outro campo
Post;
end;
until EOF(Arq);// ate o fim arquivo CSV
Closefile(Arq);//fecha arquivo CSV
Screen.Cursor := crDefault;
end;
end;
Espero ter ajudado.
GOSTEI 1
Mais Respostas
Hermeson Gonçalves
15/11/2003
é antigo o post, mas me ajudou muito... Obrigado!!!!
GOSTEI 0
Everton Santos
15/11/2003
tenho uma rotina que faz isso vai inserindo registro e imporatando campo a campo se quiser passe o e-mail que envio aí só adaptar a seus campos
GOSTEI 1
Raylan Zibel
15/11/2003
Melhor opção: http://community.pentaho.com/projects/data-integration/
Aprenda a usar e seja feliz.
Aprenda a usar e seja feliz.
GOSTEI 0