Potřebujeme další standard pro výměnu dokumentů?

Školení, která pořádám

Včera jsem jako spoluautor knihovny PHPExcel vystoupil na panelové diskusi konference LinuxExpo a rád bych zde shrnul svůj postoj k formátu Open XML.

V první řadě jsem rád, že Microsoft Office začal používat otevřený formát, protože na vývojáře často chodí požadavky jako: „tuhle tabulku bych chtěl dostat do Excelu, abych si z ní mohl udělat názorný graf“ nebo „tady máme nějaká data v Excelu a potřebovali bychom je dostat do databáze“. Někdy se to do vyřešit např. použitím formátu CSV, někdy to ale nestačí. Použití formátu ODF je obvykle neprůchozí, protože většina lidí pokládajících uvedené požadavky zkrátka kancelářský balík s podporou tohoto formátu (tedy OpenOffice.org) nepoužívá.

Samozřejmě by bylo ideální, kdyby se formát ODF podařilo upravit tak, aby do něj bylo možné bezztrátově uložit veškeré existující dokumenty Office, to by ale trvalo neúměrně dlouho, pokud by se to vůbec povedlo. Proto vítám vznik formátu Open XML, protože je lepší mít dva formáty pro ukládání dokumentů, než čekat dalších 15 let, než Office začne otevřený formát používat.

Co se standardizace formátu týče – jistě lze pokládat řadu otázek ohledně motivace a průběhu standardizačního procesu, z ryze pragmatického pohledu ale byla standardizace užitečná, protože se díky ní podařilo velice rychle odhalit a vyřešit řadu nedostatků, které původní specifikace měla. Proto jsem rád i za ni, navíc formální stav díky tomu odpovídá dlouholeté praxi.

Jakub Vrána, Ze zákulisí, 17.4.2008, diskuse: 19 (nové: 0)

Diskuse

ikona finc:

Vznika kolem toho bourliva diskuze. I kdyz Microsoft nemam rad, zejmena za jejich "politiku", tak musim uznat, ze tohle je asi jedine reseni.
Jelikoz je windows skutecne monopol, neni mozne bojovat proti nemu jen tim, ze vytvorim dalsi format, kde budu cekat, zda si ho lide z Redmondu vsimnou :/

Co se mi ovsem nelibi:
1. Argumentace Jiriho Koseka, proc ne ODF
2. Nazvy elementu v OOXML, kde to skutecne standardizovano poradne neni a docela bych se nerad dockal toho, ze si Microsoft bude zase neco "upravovat", kde z jejich postaveni by jim proslo snad cokoli

Ale presto vsechno je to lepsi "nez dratem do oka" :)

karf:

Přimlouval bych se za uvádění přesného názvu "Office Open XML", bez toho Office to vypadá zvláštně...

Specifikace obou formátů jsem nestudoval, ale docela by mě zajímalo, co se stane se strukturou (sémantikou) dokumentu po roundtripu ODF -> OOXML -> ODF, popř. naopak. Předpokládám, že ty formáty jsou dost odlišné, takže výsledkem bude asi o dost jiný soubor než na začátku, i když vizuálně může vypadat "stejně".

ikona Radek Hulán:

Dva standardy opravdu potřeba nejsou, a vzhledem k tomu, že OpenXML obsahuje výrazně lepší a rozsáhlejší specifikaci než ODF, tak ODF spíše zanikne, či zůstane naprosto minoritním.

ODF ve verzi 1.0 neobsahuje řadu věcí, které tam Sun/IBM potřebuje, a bude se připravovat a schvalovat druhá revize. Otázkou je proč, když to samé už umí (výrazně lepší) OpenXML.

Aneb jak píše Jirka Kosek:  přesto se domníváme, že po zapracování dále uvedených připomínek, bude formát Office Open XML definovaný normou DIS29500 přínosný pro uživatele kancelářských programů. Zejména proto, že nabízí prostředky pro reprezentaci běžně používaných prvků dokumentů, které **zatím formát ODF nepodporuje** a bude trvat **několik let** než se podpora pro tyto prvky ve standardizované verzi formátu ODF objeví.

Open-source fašisté samozřejmě budou pořvávat, ale to dělají vždy. Jirka Kosek je asi jediný člověk v ČR, který ODF versus OpenXML *opravdu* rozumí, a pokud napíše, že ODF neobsahuje řadu prvků, které se běžně používají, a OpenXML ano, tak to tak prostě je.

ODF je tudíž špatný standard, a je dobře, že k němu vyrostla podstatně lepší konkurence, která jej převálcuje.

ikona Jakub Hejda:

"Open-source fašisté"? Ten pojem moc nechápu, nedává mi logiku. V jakém smyslu jsou vývojáři Open-source fašisté?

Jako uživatel jsem proto aby OpeOffice přešel na formát OpenXML - pro uživatele obou kanc. balíků by to byla asi ideální varianta. Tím, že je tento formát otevřený nemůže nikdo říci že jen ten či onen vývojář SW zvýhodněn.

ikona Radek Hulán:

Vývojáři rozhodně ne. Ale někteří uřvaní open-source zastánci, co si před minutou spustili nějaké Live CD Linuxu ano..

pojízdná kočka:

buď tak laskav a nech si svoji záchodovou mluvu pro svůj blogísek

Petr F:

Ta specifikace je tak dlouhá, protože zatímco ODF používá co nejvíc existujících standardů, MS je jako vždy okázale ignoruje.
Office OpenXML je také velmi nekonzistentní a stejné věci řeší v různých souborech (docx, pptx) jinak.
Uznávám, že OpenXML obsahuje proti ODF i něco navíc, ale to samozřejmě platí i obráceně.
Jsem ale hlavně zvědav kdo donutí MS svůj standard dodržovat.
Už je slyším jak si uvědomili, že právě tahle feature je nezbytná a tak ji tam dodají, ale do standardu už ne.
A těším se jak to budete Vy obhajovat.

Štěpán Bechynský:

To, že ODF vychází z existujících standardů je jen mýtus. Pokud si přečtete specifikaci, tak zjistíte, že ODF, přeněji ISO/IES 26300 referencuje jen jediný ISO standard přímo a to RelaxNG. Jinak referencuje pouze doporučení W3C a ty teprve referencují části některých ISO standardů (typická ukázka je ISO 8601, kde W3C přebírá jen část standardu). Navíc některá doporučení W3C, např. SVG, referencuje poněkud podivným způsobem. Vyjme z nich jen část (u SVG 9 elementů) a ty si pak dá do vlastního jmeného prostoru. Malá otázka na závěr: Četl jste alespoň stránku?

Petr F:

Dobře dostal jste mě, nečetl.
Vy jste aspoň kus četl? A OpenXML? Viděl jsem pár dosti šílených ukázek nekonzistence OpenXML, ale specifikaci jsem se ani nepřiblížil.
Vypadáte vcelku nezaujatě, takže pokud jste k tématu někde něco napsal, tak si to rád přečtu.

ikona David Grudl:

Jakube, to tě tam museli umlátit tučnáky, ne? :-))

ikona Jakub Vrána OpenID:

Ani ne, publikum bylo naštěstí střízlivé. A i když mám v podstatě stejný názor jako Radek Hulán v této diskusi, tak ho nevyjadřuji tak vehementně.

Když se s argumentací začne od vývojáře, tak se na myšlenkový pochod myslím nedá mnoho namítnout.

Naith:

Problém vidím v tom, že zase máme standarty dva. To znamená, že zase budu potřebovat konvertor formátů. Navíc současný OOOrg nedokáže tento nový formát importovat, takže po schválení open xml nevím, jak ty data z něj zpracovat. Teď už bohužel díky schválení open xml ani nemohu říci ať mi to pošlou v něčem normálním. 

ikona Radek Hulán:

OpenOffice.org 3.0 bude OpenXML podporovat.

Dnes je zjevně nejlepší kalcenářská varianta Microsoft Office (2007), protože umí zpracovat nativně DOC/XLS (staré binární formáty), DOCX/XLSX (nové OpenXML formáty) a po instalaci pluginu zdarma i ODF. Samozřejmě umí export do PDF či HTML, dalších standardů...

Bez zajímavosti není ani to, že OpenXML (i ODF) plugin je zcela zdarma dostupný i pro Office 2003, XP, a 2000.

Naith:

Děkuji za info, ale Office 2007 není pro mne dobrá volba. Obecně kancelářský balík využívám velice zřídka (to ještě jen pro konverzi formátu), takže se mi jeho nákup nevyplatí. V podstatě by mi funkčne stačil Office 95 jenže už není podporován, takže Open Office je pro mne tou pravou volbou a díky rozšíření to přečte i Open XML :)

ikona Radek Hulán:

Sun ODF Plugin 1.1 for Microsoft Office
http://www.sun.com/software/star/odf_plugin/index.jsp

ikona Joelp:

Řešení pro OpenOffice.org samozřejmě existuje. Stačí jen hledat rozšíření open.docx

ikona Joelp:

Po nainstalování rozšíření open.docx to jde.
http://joelp.wz.cz/screenshot/docx.png

Naith:

Děkuji za info o rozšíření funguje to :)

Naith:

Tak jsem narazil na problém. xlsx vytvořený pomocí Office 2007 plugin přečte, ale pokud jej vytvoří PHPExcel tak mi plugin nahlásí, že je poškozený a jestli jej má opravit. Po opravě je list prázdný. Bez opravy jej nepřečte. Zkoušel jsem soubor z Vašeho článku http://php.vrana.cz/export-do-open-xml-v-php.php

Diskuse je zrušena z důvodu spamu.

avatar © 2005-2024 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.