marți, 19 mai 2009

Microsoft Office 2007 SP2 NU este conform cu standardul OpenDocument 1.1 !


Într-un post-scriptum discret de blog, departamentul de propagandă al Microsoft România ridică în slăvi conformanța de nezdruncinat între MS Office 2007 SP2 și standardul ISO OpenDocument 1.1.

Pentru uzul cititorilor non-tehnici ai acestui blog, care-mi împărtășesc, prin e-mail, gândurile și îngrijorarea lor privitoare la „manevrele” comerciale ale Microsoft, țin să fac o precizare, pentru a nu lăsa loc de dubii:

Implementarea ODF din Microsoft Office 2007 Service Pack 2 NU ESTE conformă cu standardul ISO OpenDocument 1.1 !

Cu riscul de a repeta un citat, voi reproduce in extenso un fragment din cele scrise de Rob Weir, unul dintre principalii autori ai standardului ISO/IEC 26300:2006 (OpenDocument):

First up is the question of whether the ODF documents written by Excel 2007 SP2 indeed conform to the ODF 1.1 standard. This is not a hard question to answer, but please excuse this short technical diversion.

Let's see what the ODF 1.1 standard says in section 8.1.3 (Table Cell):

Addresses of cells that contain numbers. The addresses can be relative or absolute, see section 8.3.1. Addresses in formulas start with a “[“ and end with a “]”. See sections 8.3.1 and 8.3.1 for information about how to address a cell or cell range.


And the referenced section 8.3.1 further says:

To reference table cells so called cell addresses are used. The structure of a cell address is as follows:


1. The name of the table.

2. A dot (.)

3. An alphabetic value representing the column. The letter A represents column 1, B represents column 2, and so on. AA represents column 27, AB represents column 28, and so on.

4. A numeric value representing the row. The number 1 represents the first row, the number 2 represents the second row, and so on.

This means that A1 represents the cell in column 1 and row 1. B1 represents the cell in column 2 and row 1. A2 represents the cell in column 1 and row 2.

For example, in a table with the name SampleTable the cell in column 34 and row 16 is referenced by the cell address SampleTable.AH16. In some cases it is not necessary to provide the name of the table. However, the dot must be present. When the table name is not required, the address in the previous example is .AH16


So, going back to my test spreadsheets from all of the various ODF applications, how do these applications encode formulas with cell addresses:

* Symphony 1.3: =[.E12]+[.C13]-[.D13]
* Microsoft/CleverAge 3.0: =[.E12]+[.C13]-[.D13]
* KSpread 1.6.3: =[.E12]+[.C13]-[.D13]
* Google Spreadsheets: =[.E12]+[.C13]-[.D13]
* OpenOffice 3.01: =[.E12]+[.C13]-[.D13]
* Sun Plugin 3.0: [.E12]+[.C13]-[.D13]
* Excel 2007 SP2: =E12+C13-D13

I'll leave it as an exercise to the reader to determine which one of these seven is wrong and does not conform to the ODF 1.1 standard.


Deci, nu există nici un dubiu.

Între timp, și alte voci internaționale se adaugă corului de critici referitoare la implementarea OpenDocument făcută de Microsoft în SP2: Jomar Silva și Aladdin Sane.

4 comentarii:

Manuel R. Ciosici spunea...

Eu zic că toată Terra e aiurită și n-are habar care e standardul și că a fost nevoie de ani de zile până când Microsoft a venit să ne lumineze pe toți cu minunata lor soluție, așa cum au făcut și cu HTML în trecut. Să nu uităm ce fericire este pentru un dezvoltator web să scrie cod pentru Internet Explorer 6 și 7.

Eu zic că Microsoft, ca de obicei, încearcă să ne convingă că ciorile nu sunt negre ci albe.

Răzvan Sandu spunea...

@manuel, ai uitat Internet Explorer 8, Silverlight, .Net, OOXML...

janimo spunea...

IE8 e mult mai ok din cate am inteles.

Răzvan Sandu spunea...

janimo, nu paria ;-)