OpenFormula


OpenFormula is an open standard for exchanging recalculated formulae in spreadsheets. OpenFormula is included in version 1.2 of the OpenDocument standard. OpenFormula was proposed and initially drafted by David A. Wheeler.

History

Discussion of need

OpenDocument 1.0 is a specification for the exchange of office documents, and is fully capable of describing mathematical formulas that are displayed on the screen. It is also fully capable of exchanging spreadsheet data, formats, pivot tables, and other information typically included in a spreadsheet. OpenDocument can exchange spreadsheet formulae ; formulae are exchanged as values of the attribute table:formula.
However, many believed that the syntax and semantics of table:formula was not defined in sufficient detail. Version 1.0 of the specification defined spreadsheet formulae using a set of simple examples which show, for example, how to specify ranges and the SUM function. Some critics argued that a more detailed, precise specification for spreadsheet functions, including syntax and semantics, was needed.
The OpenDocument committee argued that this was outside their scope at that time. Others have argued that, while the specification is less specific than one might like, the intent is fairly clear, and also because the vast majority of spreadsheets only use a small set of functions which are universally supported by all spreadsheet implementations.

OpenFormula Project

One of the external commentors on OpenDocument, David A. Wheeler, released a first draft of a specification for formulae in February 2005. This began a process of discussion with various spreadsheet implementors and developers.
In October 2005, Wheeler publicly began an informal project, backed by the OpenDocument Fellowship, to create a draft formula specification, based on the initial draft and on discussions since that time with various implementors. By January 2006, the group had developed a lengthy specification, and implementors had begun changing their implementations to meet the draft specification.

OASIS Formula subcommittee

In February 2006, OASIS formally created the formula subcommittee, naming Wheeler as the subcommittee chair. After discussion, the subcommittee agreed to use the OpenFormula project's document as their base document. Thus, by February 2006, OASIS had a draft formula specification with a detailed framework and over 100 functions defined.

Microsoft response

In 2005, Microsoft's Brian Jones noted that OpenDocument did not define spreadsheet formulae in detail. However, at the time Microsoft's competing proprietary XML format also did not include this kind of detailed specification for formulae.
Microsoft continued to protest that OpenDocument could not be used because it did not define a format for spreadsheet formulae, while its own specification continued to omit any specification about formulae until April 2006. In May 2006, Microsoft also began defining formulae in its XML format, 15 months after the first version of OpenFormula and three months after OASIS posted its first official draft of its specification.
The Office Open XML spreadsheet formula language is now part of the international standard ISO/IEC IS 29500:2008.
Microsoft Office 2007 SP2 uses the formula language defined in ISO/IEC IS 29500:2008 for OpenDocument spreadsheets. Microsoft stated that they consider adding support for an official ODF formula language, once a future version of the OpenDocument standard specification includes one.

Completion of the effort

In June 2007 it was announced that four tasks remained before submission to the quality assurance review.
Further delays were incurred, but many implementors implemented the specification while it was being written, modifying their applications where necessary to comply with the draft standard.
Finally, the OpenFormula specification was issued on 29 September 2011 as Part 2 of Version 1.2 of the Open Document Format.

OpenFormula attributes

Key attributes of the OpenFormula specification and development process are:
One important aspect of OpenFormula is that it provides a predefined set of "groups"; the most important of these groups are small, medium, and large:
It is expected that users will often request implementations that meet a particular group, based on their needs.