Fórum Como ler um arquivo Excel #355557
18/03/2008
0
Tenho um arquivo excel com 12 colunas. A | B | C .... e N linhas
Como faço para ler essas colunas e essas linhas. Tipo um for mais dentro do arquivo do Excel e jogando pra dentro do meu banco de dados?
Obrigado
Yallebr
Curtir tópico
+ 0Posts
18/03/2008
Prgdelphi
acredito que a mais facil é você criar um driver ODBC para esta planilha no excel e depois acessá-la pelo delphi como se ela fosse uma tabela, usando o ADOconnection.
Antes de acessar pelo odbc, é preciso nomear no excel a área de dados, voce entra na planilha pelo excel, seleciona toda a sua área de dados, que será a sua tabela, depois vai no menu inserir -> nome -> definir e dá qualquer nome.
Dentro do delphi, conectado na planilha, vc vai utilizar aquele nome informado no excel como o nome da tabela.
Gostei + 0
18/03/2008
Silviogs
pesquisando no forum:
http://forum.devmedia.com.br/viewtopic.php?t=85888&highlight=excel
Atenciosamente
Silvio Guedes
Gostei + 0
18/03/2008
Yallebr
Amigo isso pareceu simples, o problema é o seguinte eu vou ler um arquivo excel gerado por usuários Leigos, ele não vai saber fazer isso acima. PReciso de algo que simplemente da um loop no excel ou melhor que leia ela como banco de dados igual vc falou, mas sem precisar mudar a planilha.
Obrigado
Gostei + 0
18/03/2008
Silviogs
ok entendi, mas acho que vi um tópico que lê um arquivo excel e coloca num grid, não sei se vi realmente isto mas mou tentar achar.
Silvio Guedes
Gostei + 0
18/03/2008
Yallebr
Eu vi sim, mais não é isso que quero. Quero apenas ler o arquivo excel e jogar para um banco de dados meu. Isso tem que ser transparente para o usuário
Obrigado
Gostei + 0
18/03/2008
Silviogs
veje se é o seu caso:
AdoTable.Close;
AdoTable.ConnectionString :=
´Provider=Microsoft.Jet.OLEDB.4.0;´ +
´Data Source=NomeDoSeuArquivo.XLS + ´;´ +
´Extended Properties=Excel 8.0;´ +
´Persist Security Info=False´;
AdoTable.Open;
Silvio Guedes
Gostei + 0
18/03/2008
Yallebr
Obrigado. Consegui fazer com q o ADO veja o XLS o problema e que quando tento ativar aparece a mensagem ´Erro de sintaxe na clausula FROM´ vc sabe se tem alguma propriedade que tenho q mudar?
Gostei + 0
18/03/2008
Yallebr
Coloquei a propriedade TableDirect := True;
Obrigado
Gostei + 0
10/07/2008
N_informatica
Alguem sabe o que mudou?
Fico aguardando um auxilio.
Obrigado
Gostei + 0
10/07/2008
Joaoshi
Gostei + 0
10/07/2008
Joaoshi
Gostei + 0
10/07/2008
Guigosnet
excel :variant;
l,c: integer;
begin
Excel := CreateOleObject(´Excel.Application´);
Excel.Visible := False;
excel.WorkBooks.Add(FilenameFocusEdit1.Text);
l:=2;
for l := 2 to linhas.Value do
begin
cdsItens.Append;
cdsItensid.AsInteger := Excel.Cells.Item[l,1].Value;
if Excel.Cells.Item[l,2].Value <> ´´ then
cdsItensnrped.AsInteger := Excel.Cells.Item[l,2].Value;
cdsItensdata.AsDateTime := strtodate(Excel.Cells.Item[l,3].value);
cdsItensproduto.AsString := Excel.Cells.Item[l,4].Value;
cdsItens.Post;
end;
Faça assim da certo tbem
Gostei + 0
14/07/2008
Leufmt
Gostei + 0
14/07/2008
Mazzi
nao daria certo gravando em um atributo do tipo BLOB , já que vai gravar no banco de dados?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)