Our goal since we started development of Open XML support was to read from and write to Excel Open XML (.xlsx and .xlsm) files everything which we support in our API and as many of the elements as possible which SpreadsheetGear for .NET can read and write from / to Excel 97-2003 (.xls) files. Unfortunately, a few features supported in the .xls file format currently have limited support or no support in the ISO 29500 Strict Open XML.
We intend to support all of these features eventually. We base new features primarily on customer feedback, so let us know what is important to you.
These limitations were introduced in SpreadsheetGear 2008 and have not changed with the release of SpreadsheetGear 2009 or SpreadsheetGear 2010. Microsoft has not fixed these particular issues with Excel 2010. Doug Mahugh, Lead Standards Professional on the Office Interoperability team at Microsoft, addressed this issue in his blog in a post titled "Office's Support for ISO/IEC 29500 Strict" on April 6th, 2010. In that article, Mr. Mahugh stated:
- "I’d like to state clearly and unequivocally at this time that we will support reading and writing of ISO/IEC 29500 Strict no later than the next major release of Office, code-named Office 15."
- "For example, we invested resources in migration from VML to DrawingML for many features..."
These commitments by Microsoft give us confidence that we will be able to address these issues after "Excel 15" is released.
Issues not related to Open XML file format limitations (such as conditional format support being limited to Excel 2003 conditional format features) will be handled as all unimplemented features are. They will be prioritized based on customer feedback, taking into account the amount of work involved in implementing each feature.
SpreadsheetGear 2010 Limitations:
- Cell comments and form controls (such as buttons, checkboxes, list boxes, etc…) will not be read from or written to .xlsx or .xlsm files. Excel 2007 and Excel 2010 save cell comments and form controls as VML, which is a legacy format and is not part of the ISO 29500 Strict approved Open XML standard. We did some initial work to support VML in SpreadsheetGear 2008, but we made the decision not to support VML at that time because: (1) VML written by Excel is not always well formed XML which causes exceptions when using the .NET XML classes, (2) VML is a lot of work (the VML Reference is 618 pages) for limited gain, (3) As noted above, Microsoft has committed to fully supporting ISO 29500 Strict in "Excel 15". We intend to support these features as soon as practical once "Excel 15" is released. In the meantime, the only workaround is to save workbooks as Excel .xls files.
- Reading and writing shapes from and to Open XML files is limited. When reading shapes from a .xls file, SpreadsheetGear 2010 stores the shape properties in a property list just as previous versions of SpreadsheetGear for .NET did. When these shapes are written back out to .xls files, they still have a high degree of fidelity. When these shapes are saved to .xlsx, many properties are lost and all complex shapes are lost as well. Reading and writing of shapes from and to .xlsx and .xlsm is generally limited to what is supported in the SpreadsheetGear APIs.
- When reading conditional formats, only Excel 2003 features are supported. Conditional formats which use Excel 2007-2010 features are ignored (deleted). Also, SpreadsheetGear 2010 does not support Excel 2007-2010’s new ability to have different conditional formats which overlap, so when a conditional format is read which overlaps a previous conditional format, the cells in the previous conditional format are removed from the newly read conditional format.
- Table references in formulas such as [Sales] are converted to #REF! SpreadsheetGear does not support Excel Tables. With no table to refer to, there is no way to preserve these formulas in their original state or Excel will generate a warning when reading the workbook.