Boa tarde!
Alguém do grupo me poderia tirar uma duvida a respeito sobre importação de dados de uma planilha Excel para um arquivo DBF.
A minha duvida e a seguinte: Tenho uma planilha Excel com 12 pastas e dentro delas eu tenho 16 celulas e eu quero importalas todas as pastas de uma vez só, tem como fazer isto? Com uma só pasta é de boa mas com 12 ao mesmo tempo nao estou conseguindo fazer.
Abraços,
Paulo
Jacareí/SP
Importação de dados de Excel para DBF
Moderador: Moderadores
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Importação de dados de Excel para DBF
Boa tarde!
Para os amigos que estão me ajudando, estou colocando aqui parte do meu código que só importa uma pasta da planilha, gostaria que o código pegasse todas as pastas da planinha (da pasta "Jan" até "Dez") com as suas respectivas células que são 12. O que eu devo mudar neste código para que ele funcione?
Para os amigos que estão me ajudando, estou colocando aqui parte do meu código que só importa uma pasta da planilha, gostaria que o código pegasse todas as pastas da planinha (da pasta "Jan" até "Dez") com as suas respectivas células que são 12. O que eu devo mudar neste código para que ele funcione?
Código: Selecionar todos
METHOD ImportaDB001() CLASS Arquivo
LOCAL cNit001,cNit002,cNit003,cNit004 // Numero Nit
LOCAL cMat001,cMat002,cMat003,cMat004 // Matricula
LOCAL nVal001,nVal002,nVal003,nVal004 // Valor R$
LOCAL cComp01,cComp02,cComp03,cComp04 // Competencia
LOCAL cBase1 , cBase2 , cBase3 // Diretorios dos arquivos
LOCAL rCont := 0 , nLin , nCol , oExcel , oPlanilha , oCelulas
LOCAL i , sai := .T. , cAno , nItem , nPastas , nP
cAno := STR( YEAR( DATE() ) - 1 , 0 )
cBase1 := ::BancoDadosExcel() + ALLTRIM(cAno) + "\" + ALLTRIM("Fluxo2013.xls")
cBase2 := ::BancoDados() + ALLTRIM("Db004.dbf")
cBase3 := ::BancoDados() + ALLTRIM("IndValor.cdx")
oExcel := TOleAuto():New( "Excel.Application" )
IF oExcel == NIL
MsgStop('Excel não está instalado!','Erro')
RETURN NIL
ENDIF
oPlanilha := oExcel:WorkBooks:Open( cBase1 )
oExcel:Sheets("Jan"):Select()
oPlanilha := oExcel:ActiveSheet()
oCelulas := oExcel:Get( "ActiveSheet" )
nLin := oCelulas:UsedRange:Rows:Count()
nCol := oCelulas:UsedRange:Columns:Count()
IF !FILE( ( cBase2 ) )
::AbrirArquivo( "Db0004" , "IndValor" , 4 , "Fluxo" )
ELSE
DELETE FILE &cBase2
DELETE FILE &cBase3
::AbrirArquivo( "Db0004" , "IndValor" , 4 , "Fluxo" )
ENDIF
i := 2
WHILE sai
++rCont
// Janela de andamento da importação
ImportaDados.progressbar_1.Value := INT( rCont / nLin * 100 )
ImportaDados.label_4.Value := STR( INT( rCont / nLin * 100 ) ) + " %"
ImportaDados.label_3.Value := STRZERO( i , 6 )
//-----------------------------------------------------------------
cComp01 := oSistema:FormatoDados(oCelulas:Cells(i , 1):Value)
cNit001 := oSistema:FormatoDados(oCelulas:Cells(i , 2):Value)
cMat001 := oSistema:FormatoDados(oCelulas:Cells(i , 3):Value)
nVal001 := oSistema:FormatoDados(oCelulas:Cells(i , 4):Value)
//-----------------------------------------------------------------
cComp02 := oSistema:FormatoDados(oCelulas:Cells(i , 5):Value)
cNit002 := oSistema:FormatoDados(oCelulas:Cells(i , 6):Value)
cMat002 := oSistema:FormatoDados(oCelulas:Cells(i , 7):Value)
nVal002 := oSistema:FormatoDados(oCelulas:Cells(i , 8):Value)
//-----------------------------------------------------------------
cComp03 := oSistema:FormatoDados(oCelulas:Cells(i , 9):Value)
cNit003 := oSistema:FormatoDados(oCelulas:Cells(i , 10):Value)
cMat003 := oSistema:FormatoDados(oCelulas:Cells(i , 11):Value)
nVal003 := oSistema:FormatoDados(oCelulas:Cells(i , 12):Value)
//------------------------------------------------------------------
cComp04 := oSistema:FormatoDados(oCelulas:Cells(i , 13):Value)
cNit004 := oSistema:FormatoDados(oCelulas:Cells(i , 14):Value)
cMat004 := oSistema:FormatoDados(oCelulas:Cells(i , 15):Value)
nVal004 := oSistema:FormatoDados(oCelulas:Cells(i , 16):Value)
//------------------------------------------------------------------
cMat001 := ALLTRIM( STR( INT( VAL( cMat001 ) ) ) )
cMat002 := ALLTRIM( STR( INT( VAL( cMat002 ) ) ) )
cMat003 := ALLTRIM( STR( INT( VAL( cMat003 ) ) ) )
cMat004 := ALLTRIM( STR( INT( VAL( cMat004 ) ) ) )
//------------------------------------------------------------------
IF EMPTY( CComp01 )
EXIT
ENDIF
Fluxo->( DBAppend() )
Fluxo->C_000 := cComp01
Fluxo->C_001 := oSistema:TiraMascaraNit( cNit001 )
Fluxo->C_002 := cMat001
Fluxo->C_003 := VAL( nVal001 )
IF ! EMPTY( cComp02 )
Fluxo->( DBAppend() )
Fluxo->C_000 := cComp02
Fluxo->C_001 := oSistema:TiraMascaraNit( cNit002 )
Fluxo->C_002 := cMat002
Fluxo->C_003 := VAL( nVal002 )
ENDIF
IF ! EMPTY( cComp03 )
Fluxo->( DBAppend() )
Fluxo->C_000 := cComp03
Fluxo->C_001 := oSistema:TiraMascaraNit( cNit003 )
Fluxo->C_002 := cMat003
Fluxo->C_003 := VAL( nVal003 )
ENDIF
IF ! EMPTY( cComp04 )
Fluxo->( DBAppend() )
Fluxo->C_000 := cComp04
Fluxo->C_001 := oSistema:TiraMascaraNit( cNit004 )
Fluxo->C_002 := cMat004
Fluxo->C_003 := VAL( nVal004 )
ENDIF
i++
END
oExcel:ActiveWorkbook:Close()
oExcel:Quit()
FECHA_JANELA // Apaga janela de andamento
RETURN NIL- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Importação de dados de Excel para DBF
Amigo, acho que é só repetir o código das linhas 29 até 140, mudando o nome das pastas (Jan, Fev, Mar, etc) na linha 29.
Abraços,
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
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
-
Adalberto
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 01 Set 2007 01:09
- Localização: Santa Cruz de la Sierra - Bolivia
Importação de dados de Excel para DBF
Caros amigos, boa noite
Aprovecho la oportunidad de este post, se eu pego o codigo postado aqui, compilo e executo, roda certinho (para Janeiro), até con Excel do Office 2010, mais con Office 2013, nao funciona nada.
Por favor uma luz sobre este problema.
Muito obrigado a todos.
Adalberto
Aprovecho la oportunidad de este post, se eu pego o codigo postado aqui, compilo e executo, roda certinho (para Janeiro), até con Excel do Office 2010, mais con Office 2013, nao funciona nada.
Por favor uma luz sobre este problema.
Muito obrigado a todos.
Adalberto