"
Apoiado por

Finalmente o ABAP sabe Excel

Há várias formas de criar um Excel em ABAP. Umas mais masoquistas, outras menos masoquistas; umas mais foleiras, outras menos foleiras.

A mais comum utiliza OLE2. Pode ver-se um exemplo aqui. É comum porque até há pouco tempo era a menos má de todas as alternativas. Mas mesmo assim é foleira porque, o OLE2 é feito do lado do SAPGui por isso não só é lento como não funciona em background.

Também há umas funções antigas como a MS_EXCEL_OLE_STANDARD_DAT que na prática também usa OLE e vai dar ao mesmo mas com menos flexibilidade.

Depois há abordagens malucas tipo esta que gera o XML do Excel explicitamente.

E deve haver mais.

Mas já nada disso interessa porque agora existe o ABAP2XLSX. O ABAP2XLSX é um projecto da SCN (SAP Community Network) desenvolvido por um rapaz jeitoso chamado Ivan Femia. O ABAP2XLSX é constituido por um conjunto de classes que permitem gerar em ABAP ficheiros Excel em formato XLSX de forma nativa, ou seja, sem recorrer a componentes externos. É simples de desenvolver, rápido a executar e pode ser feito em background. Além disso está bem documentado, tem dezenas de exemplos disponíveis e é apoiado por uma comunidade activa.

Permite gerar folhas de cálculo às cores e às bolinhas e com fórmulas e tudo e tudo e tudo. Deixo aqui apenas um dos exemplo (ZDEMO_EXCEL1):

https://github.com/abapinho/codesnippets/blob/master/zdemo_excel1.abap

Para o começares a usar basta instalares o nugget através do SAPlink que está disponível na página do projecto. O manual de instruções está aqui.

Obrigado a Filip Dujardin pela foto.

O Abapinho saúda-vos.

11 comentários a “Finalmente o ABAP sabe Excel”

  1. Maxsuel Maia Diz:

    Tenho uma duvida, tenho que importar um Excel com mais de 65 mil registros, só que as funções que procurei não suportam mais de 65 mil, você sabe me dizer alguma que faz isso ?

    Att.

  2. admin Diz:

    Estou convencido de que o limite do próprio Excel é 65535 linhas.

  3. Custodio Diz:

    Ola Nuno e amigos do ABAPinho,

    Quanto ao numero de linhas, depende da sua versao do Excel. O 2007 tem limite de 1.048.576 linhas. o Limite de 65535 eh para versoes ate 2003.

    Ja quanto ao ABAP2XLSX, eh EXCELente, para fazer um trocadilho bisonho. Porem, como o arquivo gerado eh .XLSX, nao funciona para versoes anteriores a 2007.

    Abracos,
    Custodio

  4. admin Diz:

    Sendo assim, se calhar o ABAP2XLSX consegue importar mais que as 65K. É experimentar.

  5. Custodio Diz:

    Sim, o ABAP2XLSX consegue, ja usei para +ou- 200.000 registros.

  6. Maxsuel Maia Diz:

    Opa, irei testar, os arquivos que uso aqui são do Excel 2007.

    Obrigado pela ajuda !

    Att.

  7. ariel Diz:

    ola! , e possivel via abap…..abrir uma planiha excel e atualizar dados( macro que procura informacao de internet , cotacao de moeda etc) .
    ou seja consigo aperta f5 da planilha excel ??

  8. Denner B Boaventura Diz:

    Sabe como faco para converter esse excel em PDF?

    Grato,
    Denner.

  9. Nuno Godinho Diz:

    A única solução que estou a ver para converter o resultado para PDF é seguir o conselho dado aqui:
    https://app.assembla.com/spaces/abap2xlsx/messages/3290423

    Que implica criar um novo WRITER mas deve ser algo bastante complicado…

  10. ariel Diz:

    duvida…..estou usando uma função xtir …mas quando tento executar background…não funciona…
    alguma idea de como chamar excel em background?
    obrigado

  11. Nuno Godinho Diz:

    Olá, não conheço essa função xtir. De qualquer forma a única forma que conheço para manipular ficheiros Excel em background é através do ABAP2XLSX porque usa 100% código ABAP sem recorrer aos objectos OLE do Office.

Deixe um comentário


Acerca do Abapinho
O Abapinho é suportado pelo WordPress
Artigos (RSS) e Comentários (RSS).