Revision 0727a99...

Go back to digest for 5th February 2012

Optimization in Office

Sebastian Sauer committed changes in [calligra] /tables/xlsx:

Optimize the number-format logic in the Excel 2007/2010 filter.

This greatly decreases the time needed to load Microsoft Excel 2007/2010
document files.

Before loading the www.nsf.gov%2Frecovery* xlsx file took ~32 seconds
on my reference-system while after this patch loading that file takes
now ~24 seconds what equals a ~25% speed-up.

The magic that makes it possible is to fix the logic that before we
re-parsed and translated the MSExcel number-format for each cell again
and again into the ODF number-format. Now we do this rather expensive
conversation only once for every number-format. Since cells sharing
the same number-formats is more the rule then an exception and since
the cell-handling is a hotspot the patch has a huge impact on load of
Microsoft Excel 2007/2010 documents.

File Changes

Modified 3 files
  • /tables/xlsx
  •   filters/XlsxXmlStylesReader.cpp
  •   filters/XlsxXmlStylesReader.h
  •   filters/XlsxXmlWorksheetReader.cpp
3 files changed in total