Conversão de Xls em DBF

Fórum sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Conversão de Xls em DBF

Mensagem por lugab »

Bom dia, pessoal

Achei o código abaixo aqui no fórum. Ele compila normal, mas na hora de executar da o erro da foto na função SaveAs().
Alguém sabe o que fazer ? Eu uso Hb32 console

Código: Selecionar todos

#define xlDbf3 8
*************
Function Main //  (Arq1,Arq2)
*************************
setmode(25,80)
clea
Arq1="D:\mmv3\test1.xls"           // "D:\mmv3\test1"
Arq2="D:\mmv3\TESTE9.dbf"       //"D:\mmv3\TESTE9" ** esse Arquivo sera criado em tempo de execucao
XLS2DBF( Arq1, Arq2 )
return nil

**************************************
FUNCTION XLS2DBF( cXlsName, cDbfName )
**************************************
*
* Purpose: convert an Excel spreadsheet to a dBase III+ table
*     but does not leave Excel open
*
  LOCAL oExcel := Win_OleCreateObject( "Excel.Application" )
  LOCAL oWorkBook, oSheet

  oWorkbook = oExcel:WorkBooks:Open( cXlsName )
 
  oSheet = oExcel:ActiveSheet

  oSheet:SaveAs( cDbfName, xlDbf3 ) 

  oWorkBook:Close( False )

  oExcel:Quit()
  oSheet := NIL
  oWorkBook := NIL
  oExcel := NIL

RETURN( NIL ) 
Feliz 2019 a todos !
Anexos
Erro na funcao SaveAs()
Erro na funcao SaveAs()
lugab
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Conversão de Xls em DBF

Mensagem por fladimir »

Troca essa linha

Código: Selecionar todos

#define xlDbf3 8
por

Código: Selecionar todos

#define xlDbf3 56
e testa
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Conversão de Xls em DBF

Mensagem por lugab »

Valeu, Fladimir, executou e gerou o DBF....
Pena que o DBF gerado é corrompido, não da nem pra abrir. Pode ser a versão do DBF gerado... Tem alguma sugestão ??
F1 F2 F3 F4 F5 F6 F7 F8
Help Open Create Save Browse Utility Move Set
────────────────────────────────────────────────────────────────────────────
xDBU - O DBU 32 bits compilado com xHarbour
Error DBFNTX/1012 Corruption detected: TESTE9.DBF

Error at ...: DBUSEAREA(0) in Module:
Called from : NETUSE(109) in Module: DBUNET.PRG
Called from : DBU(427) in Module: DBU.PRG
lugab
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Conversão de Xls em DBF

Mensagem por fladimir »

Amigo desculpe, eu acabei confundindo...
É o seguinte vou explicar

O método SaveAs q vc usou recebe 2 parametros o primeiro é o nome do arquivo a ser salvo e o segundo é o tipo de arquivo

Eu vi q vc passou uma constante q esta definida como 8 e eu consultei no meus fontes pesquisando rapido por SAVEAS e vi q lá estava 56 e falei pra vc substituir e ai q ocasionou o erro q vc teve...

Vc vai entender...

O segundo parametro como eu disse é o tipo de arquivo, 56 = Excel Versao 8 (e não DBF), ai vc tentou abrir um arquivo q supostamente pensava ser DBF mas ele foi salvo como XLS ou seja não era isso q vc queria...

Ai vou passar um link com os tipos de arquivo q teriam q ser aceitos, mas o estranho é q lá consta o q vc usou como DBF mas não funcionou contigo né... ai já não saberia dizer o pq, mas veja q no link tem CSV e tb outros tipos de arquivo como outra versão de DBF o tipo 11 por exemplo é DBF versão 4 quem sabe alguma delas resolva.

Segue link
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Responder