abap2xlsx – Generate your professional Excel spreadsheet from ABAP
One of the main request of many customers is to use MS Excel spreadsheet as data output for reports and analysis.
Most of the standard SAP components (such as ABAP ALV, WebDynpro ALV, System menu, etc.) provide the option to export data in MS Excel 2003 or in many other MS Excel compatible file formats (csv, plain text, mhtml and so on).
What are the limits? Most of them depend on SAPGui or Web Dynpro and are not available for example in case you want to send it as eMail attachment.
Community is really active, bloggers tried to create workbooks using the Excel OLE and ABAP – Create fancy reports, this is a great approach but OLE is too much SAPGui dependent:
- Excel cannot be created in a not dialog process
- Excel cannot be used as email attachment (without some dirty trick)
- Is platform dependent
To avoid some limitations and create spreadsheet with a professional look and feel Sergio Ferrari proposed in 2006 a Downloading data into Excel with Format Options (from SAP Web Applications):create an HTML file and open in Excel.
What are the limits again?
- Only one sheet for each workbook
- No graphs
- No conditional formatting
- HTML extension is not associated by default with MS Excel
- No excel advanced features
Talking with Sergio some days ago about MS Excel and ABAP I had an idea MS Excel 2007 xlsx file format!
I studied the structure of new MSOffice 2007 documents some months ago and I noticed the power of these new document types, but I never had so much free time to deeply analyze their code.
Some of you probably know what’snew in MS Office 2007 documents file format (docx, xlsx, pptx); these new file extensions are basically cab files with several xlm files. No binary, no proprietary code only zipped plain xml!
The Office Open XML format is a full fidelity (all features of the product are supported) file format for Excel2007, and it is the default file format that Excel uses to save newfiles. These files are composed of several XML parts, all bundled within a zip-compressed file for efficient storage. (ref. msdn)
So the idea: An xlsx generator from scratch in ABAP.
What are the business advantages?
and the technical ones?
what about themain features?
- Cell formatting (as in HTML solution)
- Formulas (as in HTML solution)
- Multi sheets new!
- Conditional formatting new!
- Cell data format new!
- Graphs new!
- Drawings new!
- And many others new!
Professional MS Excel workbooks as background process, as email attachment, as http response in a WDA, using an RFC and so many othercontexts.
Can you imagine a REST service like this?
Developers can easily produce Excel with few lines of ABAP code; abap2xlsx class wraps all the logic of xlsx generation for professional and advanced workbooks. See Hello World demo code (more demos available on Google Code),only 5 lines of ABAP code and a new MS Excel is here!
Hello world excel demo code:
The output will be:
Now unchain your fantasy! Professional Excels are real!
Do you want to collaborate in this project? Join us on Code Exchange.
Comments, real business cases and suggestions are really appreciated!
New features will came in next releases; I created a roadmap on Google Code and on Wave. I have also scheduled an xlsx2abap project but this will be a really nice to have right now.
Thanks to Sergio Ferrari and Ferrari’s Team for their support.
- Spreadsheet integration – which approach for which SAP technology by SergioFerrari.
- Downloading data into Excel with Format Options (from SAP Web Applications) by SergioFerrari.
- Excel OLE and ABAP – Create fancy reports by Alvaro Tejada Galindo
- Using WD ABAP ALV export – the hacked way by Chris Paine
- xlsx2abap – Read and edit your Excel files from ABAP by Ivan Femia
- abap2xlsx – I’m no longer a baby, I grow up and now I’m a fully featured tool by Ivan Femia
- abap2xlsx team has a present for you… by Ivan Femia
For support follow these best practices:
- For any question related to abap2xlsx demo, use cases, explanation create a new discussion in SCN Open Source
- For reporting a bug please open a issue on GitHub Issues · ivanfemia/abap2xlsx · GitHub
As from SAP WebAS 7.0