View Full Version : LibXL
Fernando Faria
24-Oct-2019, 09:54 AM
Olá pessoal,
Alguem está usando a DLL LibXL para ler/gerar arquivos no formato XLS/XLSX?
Preciso de alguns exemplos para ler uma planilha e importar para o dataflex.
Pesquisando aqui no fórum, eu encontrei a biblioteca szLibXL da starzen, mas no pacote deles só tem procedures/funções para criar uma planilha e eu preciso fazer o inverso.
Obrigado
Fernando
Samuel Pizarro
24-Oct-2019, 04:28 PM
Nunca usei chefe. Sorry
mas deve ter documentacao da dll. E as funções devem estar disponiveis na classe base COM dele.
Boa sorte
Fernando Faria
24-Oct-2019, 04:30 PM
Pois é...
Dei uma olhada na documentação mas não faço ideia de como integrar com o VDF.
O preço que a DAE está pedindo pela biblioteca deles é bem "salgado" e eu não tenho tanto conhecimento para criar as funções/procedures chamando as funções da DLL.
De qualquer forma, obrigado!
Samuel Pizarro
24-Oct-2019, 07:08 PM
a dll original deve ser um objeto COM.
Vc já trabalhou com objetos COM ou ActiveX antes com DF ?
Se sim , eh a mesma coisa... Importa a classe COM pelo wizard do studio.. ele vai trazudir todas as chamadas da dll em funcoes DF e classes DF.
depois eh só criar os objetos COM e executar seus metodos, conforme a documentacao do fabricante da dll.
A DAW simplesmente fez isso, e criou classes por cima da classe base, pra facilitar o nivel de programacao..
O mesmo principio eh utilizado em praticamente todos os componentes CodeJock (cCJGrid, cCJ***, etc.. ) existentes no DF hoje.
--- Edit ----
Esquece tudo que falei.. Eu nunca tinha ido atras da menina... Pensava que era OLE/COM,, mas nao eh.. eh dll pura..
Entao o negocio eh mais embaixo.. tem que trabalhar e implementar funcao por funcao da dll ,
Bastante trabalho..
[]s
Samuel Pizarro
24-Oct-2019, 09:39 PM
Dei uma olhada na lib da starZen..
http://starzen.com/doc/szlibxl/
Ele criou um wrapper COM em .Net, porém realmente ele implementou somente as funcoes necessarias para criar uma planilha e nada para lê-la. Nem perca mais tempo.. ela nao tem o que vc precisa.
Ou vc compra da DAW, ou vc cria a sua propria...
----
A 3ra opcao eh importar o as classes COM do proprio Excel.. Mas pra isso funcionar, precisa ter o excel instalado nas maquinas
O problema desse approach, eh que as classes sofrem evolucoes de acordo com a versao do excel instalado na maquina, e isso pode gerar algumas imcompatibilidades no futuro. principalmente se o cliente tiver versoes mais antigas do excel , da que vc utilizou parar gerar as classes com.
[]s e boa sorte
Fernando Faria
25-Oct-2019, 06:58 AM
Pois é.
Eu já tenho essa integração com o Excel, mas estamos mudando a suite e por isso compramos a DLL, mas esbarrei este problema de não ter funções/procedures para ler/exportar para XLS.
Entrei em contato com a DAE, mas o preço deles está caro, mesmo comprando apenas a Biblioteca em Dataflex.
Enfim, preciso ver o que eu faço.
De qualquer forma, obrigado!
Queiroz
25-Oct-2019, 08:49 AM
Fernando,
Para ler arquivos do Excel eu uso a msExcel9.pkg
Dentro da View crio um objeto igual abaixo
Object oExcel is a cExcel9
End_Object
[]´s
Queiroz
Fernando Faria
25-Oct-2019, 09:28 AM
Queiroz,
Nós não usamos mais o pacote do Office aqui na empresa, por isso não vai funcionar.
Eu já tinha essa integração quando usávamos o Office, mas como desinstalamos, não funciona mais.
Adquirimos essa outra DLL mas ela não é um objeto COM, então eu não consigo importar e criar uma classe nova dentro do VDF.
Queiroz
25-Oct-2019, 09:59 AM
Fernando,
estava olhando o site e lá fala que lê e escreve.
"LibXL is a library that can read and write Excel files.
It doesn't require Microsoft Excel and .NET framework, combines an easy to use and powerful features."
Vamos baixar aqui e ver se conseguimos algo.
Queiroz
Fernando Faria
25-Oct-2019, 10:33 AM
Sim, a DLL é completa, mas eu não consigo importar as classes para o VDF e usá-la
A starzen criou um wrapper, mas as funções que ele disponibilizou apenas criam um XLS a partir do VDF e eu preciso das duas vias, ou seja, tanto importar do XLS quando exportar para o XLS.
Como a DLL não é um objeto COM, o VDF não reconhece e não consegue criar o PKG para uso.
Estou "empacado" nisso. Compramos a DLL mas não consigo usar
Queiroz
25-Oct-2019, 01:01 PM
Fernando,
Baixei o produto, dentro dele tem exemplos com VB6, daí usando External_Function, consegui abrir um XLSX e ler o mesmo.
Não é complicado não, só dá um pouco de trabalho.
Em anexo o que fiz até o momento e o botão que fiz o teste.
Object oBTN_Open is a Button
Set Location to 6 25
Set Label to 'Open'
Procedure OnClick
Handle hoBook hoSheet hoFormat
Integer iRet
String sError
Move 0 to hoBook
Move (xlCreateBook()) to hoBook
Move (xlCreateXMLBook()) to hoBook
Move (xlBookLoad(hoBook,"C:\ArquivosImportacao\medicamentos.xlsx")) to iRet
Move (xlBookErrorMessage(hoBook)) to sError
If (Trim(sError)<>'ok') Send Info_Box sError iRet
Move (xlBookGetSheet(hoBook,0)) to hoSheet
Move (xlBookErrorMessage(hoBook)) to sError
If (Trim(sError)<>'ok') Send Info_Box sError iRet
String sValue
//Move (xlSheetCellFormat(hoSheet,1,1)) to hoFormat
Move (ToOEM(xlSheetReadStr(hoSheet,1,0,(&hoFormat)))) to sValue
//Move (xlSheetReadComment(hoSheet,1,1)) to sValue
Send Info_Box sValue
End_Procedure
End_Object
Queiroz
Fernando Faria
28-Oct-2019, 07:09 AM
Queiroz,
Tentei usar o teu exemplo mas está dando erro pra mim.
Se puder, me passe um telefone de contato para eu te ligar.
O meu, está na minha assinatura.
Abraço
Powered by vBulletin® Version 4.2.5 Copyright © 2023 vBulletin Solutions Inc. All rights reserved.