Введение

OpenFormula — открытый стандарт для обмена пересчитанными формулами в электронных таблицах. OpenFormula включена в версию 1.2 стандарта OpenDocument. OpenFormula была первоначально предложена и составлена Дэвидом А. Уилером.

Обсуждение потребностей

OpenDocument 1.0 – это спецификация для обмена офисными документами, способная описывать математические формулы, отображаемые на экране (путем повторного использования стандарта MathML). Она также позволяет обмениваться данными электронных таблиц, форматами, сводными таблицами и другой информацией, обычно содержащейся в электронных таблицах. OpenDocument может обмениваться формулами электронных таблиц (формулами, которые пересчитываются в таблице); формулы обмениваются в виде значений атрибута "formula". Инициатива Open Formula возникла из-за убеждения некоторых пользователей в том, что синтаксис и семантика табличных формул были определены недостаточно подробно. Версия 1.0 спецификации определяла формулы электронных таблиц с помощью набора простых примеров, демонстрирующих, например, способы указания диапазонов и функции SUM. Некоторые критики утверждали, что требуется более детальная и точная спецификация для функций электронных таблиц, включая синтаксис и семантику. Комитет OpenDocument считал, что это выходит за рамки их компетенции на тот момент. Другие полагают, что, хотя спецификация и менее конкретна, чем хотелось бы, ее намерения достаточно ясны (особенно учитывая, что формулы обычно следуют многолетним традициям), а также потому, что подавляющее большинство электронных таблиц используют лишь небольшой набор функций (например, SUM), которые поддерживаются всеми реализациями электронных таблиц.

Проект OpenFormula

Один из внешних рецензентов OpenDocument, Дэвид А. Уилер, опубликовал первый черновик спецификации формул в феврале 2005 года. Это положило начало обсуждению с различными разработчиками и реализаторами электронных таблиц. В октябре 2005 года Уилер публично начал неформальный проект, поддержанный OpenDocument Fellowship, по созданию черновика спецификации формул на основе первоначального черновика и последующих обсуждений с различными реализаторами. К январю 2006 года группа разработала подробную спецификацию, и реализаторы начали изменять свои реализации в соответствии с черновиком спецификации.

Подкомитет по формулам OASIS

В феврале 2006 года OASIS официально учредила подкомитет по разработке формул, назначив Уилера его председателем. После обсуждения подкомитет принял решение использовать документ проекта OpenFormula в качестве основы для своей работы. Таким образом, к февралю 2006 года в OASIS был готов проект спецификации формул с детальной структурой и более чем 100 определенными функциями.

Ответ Microsoft

В 2005 году Брайан Джонс из Microsoft отметил, что OpenDocument не содержал детального определения формул электронных таблиц. Однако в то же время, конкурирующий проприетарный XML-формат Microsoft также не включал подобную подробную спецификацию для формул. Microsoft продолжала утверждать, что OpenDocument нельзя использовать, поскольку он не определяет формат для формул электронных таблиц, в то время как в собственной спецификации Microsoft до апреля 2006 года по-прежнему отсутствовали какие-либо спецификации относительно формул. В мае 2006 года Microsoft также начала определять формулы в своем XML-формате, спустя 15 месяцев после первой версии OpenFormula и три месяца после публикации OASIS первого официального проекта спецификации. Язык формул Office Open XML теперь является частью международного стандарта ISO/IEC IS 29500:2008. Microsoft Office 2007 SP2 использует язык формул, определенный в ISO/IEC IS 29500:2008, для электронных таблиц OpenDocument. Microsoft заявила, что рассматривает возможность добавления поддержки официального языка формул ODF (OpenFormula), когда будущая версия стандартной спецификации OpenDocument (ISO/IEC 26300) включит в себя его.

Завершение усилий

В июне 2007 года было объявлено, что перед представлением на проверку качества оставалось четыре задачи. Возникли дальнейшие задержки, но многие разработчики начали внедрять спецификацию в процессе ее разработки, модифицируя свои приложения по мере необходимости для соответствия проекту стандарта. Наконец, спецификация OpenFormula была опубликована 29 сентября 2011 года как часть 2 версии 1.2 формата открытых документов (http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2-part2.html).