"
Supported by

Finally ABAP knows Excel

There are various ways of creating an Excel spreadsheet in ABAP. Some are more masochistic than others and some are certainly more lousy than others.

The most common way is to use OLE2. Take a look at the example here. It’s commonly used because until recently it was the least bad of all the alternatives. But it is still lousy because OLE2 is run alongside the SAPGui and therefore is not only slow nor does it run as a background task.

There are also some old functions such as MS_EXCEL_OLE_STANDARD_DAT which in practice also use OLE and will give the same result but with less flexibility.

Then there are some crazy approaches such as this which explicitly manages Excel XML.

And there has to be more.

But this is no longer of any interest because now there is ABAP2XLSX. ABAP2XLSX is SCN (SAP Community Network) project developed by a smart young guy called Ivan Femia. ABAP2XLSX consists of a set of classes which enable Excel files to be managed within ABAP in native XLSX format or, in other words, without having to use external components. It is simple to develop, quick to execute and can be done in background. It is also well documented, there are dozens of available examples and it is supported by an active community.

It enables you to generate technicolour spreadsheets with formulas and absolutely everything and anything. Here is just one example (ZDEMO_EXCEL1):

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

To start to use it you just have install the nugget via SAPlink which is available at página do projecto. Click here for the instruction manual.

Thanks to Filip Dujardin for the photo.

Greetings from Abapinho.

11 comentários a “Finally ABAP knows 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


About Abapinho
Abapinho runs on WordPress
Articles (RSS) e Comments (RSS).