Importar arquivo Excel para DBF

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Importar arquivo Excel para DBF

Mensagem por Paulo_CPV »

Boa tarde!

Gostaria de saber do colegas do grupo, se você sabem me dizer como faço para importar um arquivo Excel que tem 12 colunas para um DBF que tem 3 campos:

Excel: Colunas 1,2,3 seus conteúdos são os mesmos para as colunas 4,5,6 e 7,8,9 e 10,11,12 respectivamente.

Colunas:
1 2 3 4 5 6 7 8 9 10 11 12
NIT Matricula Valor NIT Matricula Valor NIT Matricula Valor NIT Matricula Valor

Minha dúvida é como gravar estas colunas nos 3 campos do DBF. Os campos que receberam as colunas são: DB_001,DB_002 e DB_003, os campos correspondem a: DB_001 = NIT , DB_002 = Matricula e DB_003 = Valor.

Quem puder me ajudar ficarei grato.

[]'
Paulo
Jacareí/SP
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Importar arquivo Excel para DBF

Mensagem por Toledo »

Paulo, você pode abrir o arquivo do excel e ir pegando o conteúdo de cada coluna e depois gravar no DBF.

Código: Selecionar todos

oExcel := TOleAuto():New( "Excel.Application" )

oExcel:WorkBooks:Open( "nomearquivo.xls" )

oSheet := oExcel:Get( "ActiveSheet" )
oSheet:Cells( 1, 1 ):Select()
nLin:=1
Do While .T.
 v_NIT1:=oSheet:Cells( nLin, 1 ):Value
 v_MAT1:=oSheet:Cells( nLin, 2 ):Value
 v_VLR1:=oSheet:Cells( nLin, 3 ):Value

 v_NIT2:=oSheet:Cells( nLin, 4 ):Value
 v_MAT2:=oSheet:Cells( nLin, 5 ):Value
 v_VLR2:=oSheet:Cells( nLin, 6 ):Value

 v_NIT3:=oSheet:Cells( nLin, 7 ):Value
 v_MAT3:=oSheet:Cells( nLin, 8 ):Value
 v_VLR3:=oSheet:Cells( nLin, 9 ):Value

 v_NIT4:=oSheet:Cells( nLin, 10 ):Value
 v_MAT4:=oSheet:Cells( nLin, 11 ):Value
 v_VLR4:=oSheet:Cells( nLin, 12 ):Value

 //Aqui você grava as variáveis acima no arquivo DBF

 nLin+=1
 //Verifica se na próxima linha tem algum valor
 If Empt(oSheet:Cells( nLin, 1 ):Value)
  Exit    //se estiver vazio, sai do Do While
 Endif
EndDo
oExcel:ActiveWorkbook:Close()
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder