1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] Mais um desabafo - ExcelWrapper

Discussão em 'EMS , HCM e Totvs 11' iniciado por bootstrapmaster, Setembro 27, 2018.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Bom dia meu colegas,
    Outro dia me aconteceu algo complicado, fui intimado, ou melhor, a empresa que trabalho, a microsoft solicitou um inventario de software, conversa vai, conversa vem, decidimos, que ao inves de renovar as licenças para atualizar o office, usar o LIBREOFFICE, ferramenta interessante, é quase 100% compativel com o office, mas é claro, a atenção maior é para as planilhas.
    Tentei a principio criar uma rotina propria, acessando diretamente o libreoffice, mas tem muito pouco material sobre o assunto, dai que surgiu que o DATASUL está preparado para usar o libreoffice, muito bem, vamos descobrir como isso funciona, e por espanto meu, eles criaram umas CLASSES que imitam todos os comandos de acesso ao excel, como se vc tivesse usando a DLL diretamente, excel:ActiveWorkBook:ActiveWorkSheet:range(...):value e assim por diante, então blz, ao inves de fazer create "aplicattion....." excel, vc faz {office/office.i Excel Excel}, e depois a coisa é simples, vc instala o libreoffice, e associa as extenções .xlsx, .xls e .csv ao libreoffice, e só rodar o programa que tudo funciona.
    Mas é claro, era bom demais pra ser verdade, eles não tem tratamento para todos as funções do office, vamos a alguns exemplos:
    Ao indicar que a planilha vai trabalhar em modo paisagem, no libreoffice não basta dizer que é modo paisagem, vc tem que dar as dimenções do papel, ou seja, vc tem que ler a altura e largura atual, e inverter, dai vai pra impressora corretamente, a totvs não tratou isso.
    Quando vc faz um getValue() pra ler o conteudo de uma celula, sabe quando a celula é pequena e o excel coloca #### ao inves de mostrar o valor ? o libreoffice faz isso também, no getValue ao inves de me dar o valor que está na celula, volta o #####.
    funções, quando vc está com excel, devemos usar a notação americana, sumif(), if(), sum(), e no lugar dos ponto e virgula, usar virgula, o libreoffice tem que mandar o comando normal SOMASE(), SE(), SOMA() e usar ponto e virgula.
    referencia de uma plan pra outro: no excel PLAN2!A1, no libreoffice é $'PLAN2'.A1
    Abri um chamado perguntando sobre essas diferenças, me responderam que na area de suporte eles não podem me ajudar com meus especificos, se desejar, encaminham meu chamado para a area de desenvolvimento para orcamento do meu especifico.

    Ora, se é pra fazer uma rotina chamada ExcelWrapper, com a intenção de compatibilizar 2 ferramentas, tem que fazer tudo, ou sera que eles não pensam em criar planilhas usando formulas e referencias ? criaram isso só pra atender ao CTRL-ALT-E deles ?

    Ainda bem que eles tiveram a descencia de criar uma variavel que me diz se tá usando office ou libreoffice, dai eu estou fazendo um tradutor, ainda bem que eu não uso a DLL do excel diretamente em meus programas, tenho uma classe pra isso, dai eu só estou adaptando a classe.

    E tem outra, mas dai não é culpa deles, uma planilha que leva 5 minutos pra gerar em excel, leva 20 pra gerar em libreoffice.

    Isso ai meu amigos, só pra vcs saberem, se forem se aventurar pra esse caminho, essas são algumas das dificuldades.
    reissobr curtiu isso.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Dureza...
    Em dotNet eu tive um problema desses, porque o excel.application é uma geração de planilha excel por interpolação, ou seja, precisa ter o excel instalado, ele executa o App em background e faz essas operações.
    Só que o sistema que estava fazendo era WEB, não tem Excel instalado no servidor e ai que falei: "E agora José!?"
    Então fui buscar no google e encontrei uma DLL chamada EPPlus.dll
    Essa DLL permite exportar para Excel sem ter instalado de modo muito rápido
    Fui ver agora, eu até o momento estou usando a versão 2.7.0.1 mas agora já está na versão 4.5
    Essa é a página do projeto: https://github.com/JanKallman/EPPlus
    Talvez, procurando no Dr. Google você consiga achar um gerador de planilha excel, pelos comandos padrão, sem ter excel instalado, já pensou nessa possibilidade?

    Arquivos Anexados:

  3. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Maravilha, vou ver essa alternativa, vamos ver que comandos aceita e tudo mais, como sempre, salvando o dia com sua experiencia, obrigado.
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Pelo que eu li, é XML e coisa, não uma planilha diretamente.

  6. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Rafael, desculpa a minha ignorancia, mas como eu conseguiria ter acesso a essa DLL de dentro do progress ? usando aquele esquema do nosso colega usando o tal do assemblies.xml ????
    porque no projeto ali diz que é pra uso com .net, mas eu vou investigar se tem algo no google que faça a mesma coisa
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página