Miért olyan bonyolult a Microsoft irodai formátumok (és hogyan lehet ezt megszerezni)?
Minden Excel munkafüzet összetett fájlban tárolódik [az egyik OLE formátum. Trans.].
Ha úgy dönt, hogy olvassa el ezt a dokumentációt abban a reményben, a hétvégén, hogy írjon import Word dokumentumok a blog motor, vagy hogy a személyes pénzügyek formájában Excel táblázatok - összetettsége és hossza a leírás gyorsan visszaverni vadászik rá. Egy normál programozó arra a következtetésre jut, hogy az Office 1 bináris formátuma szándékosan összetett és sötét; 2) ezt csak egy őrült kiborg kitalálhatja; 3) rendkívül inept programozók hozták létre; és 4) nem lehet helyesen olvasni és írni.
Biztosíthatom Önöket: mindez rossz. Gondoljunk együtt, és megmutatom, miért váltak ilyen összetett formátumokká, miért nem beszél a Microsoft szakszerűtlenségéről és arról, hogyan kell körüljárni.
Rendkívül gyenge számítógépeket terveznek. Az Excel for Windows első verzióiban. 1 megabyte RAM volt a szokásos memória, a 80386 pedig 20 megahertzzel kényelmesen meghajtja az Excel-et. A Microsoft formátumban sok optimalizálás volt, ami megkönnyítette a fájlok megnyitását és mentését.
Ezeket a könyvtárak széles körű használatára tervezték. Ha bináris importőröket szeretne írni a semmiből, olyan dolgokat kell támogatnia, mint a Windows Metafile (vektoros grafika), összetett OLE konténerek stb. mindez triviális - a Windows API-ban található. De ha mindent megírsz a legteljesebb karcolásból, akkor mindezt meg kell valósítani. Az Office-ban összetett dokumentumok széles körű támogatása valósul meg: például a Word programban beilleszthet Excel táblázatot. A valódi Word importőrnek valami okosat kell tennie az OLE tábla beillesztésével.
Tükrözniük kell a Hivatal teljes történetét. A formátum számos jellemzője olyan funkciókhoz társul, amelyek nagyon régiek, összetettek és ritkán használatosak. Még mindig hátrafelé kompatibilisek maradtak - mivel a Microsoftnak nem kell elhagynia a régi kódot. De ha le akarsz szedni és írni ezeket a fájlokat, akkor mindenképpen el kell menned a titkos Microsoft programozók által 15 évvel ezelőtt. A Word 'a és Excel' jelenlegi verzióiban már évek ezreit fektettem be - és ha klónját szeretnénk készíteni, akkor több ezer évet kell dolgoznia. A fájlformátum csak egy rövid leírás arról, hogy a program mit csinál.
Például részletesen tekintse meg egy kis példát. Az Excel fájl egy csomó rekord a BIFF formátumban. Az első bejegyzés ebben a fájlban 1904-nek nevezett.
És ez csak az első több száz BIFF bejegyzés közül, amelyeket meg kell őriznie, és az egyik legegyszerűbb. Sokan annyira összetettek, hogy akár egy képzett programozót is zavarhatják.
Ebből csak egy következtetés van. Az Office-fájlok formátumának felszabadítása szintén hasznos a Microsoft számára. és a termékhez, de az Office-fájlok importálásához vagy mentéséhez nem könnyebb. Az irodai programok őrülten összetettek és sokoldalúak, és lehetetlen csak a legnépszerűbb funkciók 20% -át megvalósítani, és boldoggá tenni az emberek 80% -át. A bináris fájlok specifikációja valójában csak néhány percet takarít meg a "kivágás" -on egy rendkívül bonyolult rendszerben.
Igen, megígértem egy megoldást. A jó hír: a legtöbb típusú szoftver írni olvasás vagy írás Office dokumentumok - a rossz döntés. Két nagyszerű alternatíva létezik: az Office megkönnyíti az összes piszkos munkát, vagy egyszerűbb formátumokat használ.
A Word és az Excel a COM automatizáláson alapuló komplex objektummodellekhez kötődnek, amelyek lehetővé teszik a programozás elvégzését. Sok esetben egyszerűbb az Office-kód használata. mint megpróbálja végrehajtani a semmiből. Íme néhány példa.
Ez a megközelítés a legtöbb irodai feladathoz működik, amely a szerveren fut. Például:
- Nyissa meg az Excel munkafüzetét. Írja be az adatokat a bemeneti cellákba, számolja újra és kapja meg az eredményt a kimeneti cellában.
- Az Excel segítségével diagramokat hozhat létre GIF formátumban.
- Húzzon ki bármilyen információt bármilyen tábláról, gondolkodás nélkül és percenként a fájlformátumokról.
- Excel fájl konvertálása CSV formátumba (másik megközelítés az Excel ODBC-illesztőprogramok használata és az SQL lekérdezéssel történő adatkivitel).
- Word dokumentumok szerkesztése a.
- Töltse ki az "a.
- Adatok konvertálása az Office által támogatott különböző formátumok több tucatja között.
Mindezekben az esetekben vannak módok az Objektumobjektumok megismerésére. hogy nem működnek interaktív módban, és nem kell átírni a képernyőt. Egyébként, ha el akarod menni, több buktató is van, tehát mielőtt elkezdenéd, olvasd el a Microsoft Tudásbázisot.
Fájlok rögzítése egyszerűbb formátumban. Ha programozni kell az Office-ben olvasható dokumentumokat. Sok más formátum létezik, amelyekkel az Office bizalmasan fog megnyílni, anélkül, hogy hiányozna egy byte.
- Ha táblázatos adatokat kell Excel-be fordítani. próbáld meg a CSV-t.
- Ha táblázatos számításokra van szüksége, amelyet a CSV nem támogat, a WK1 (Lotus 1-2-3) formátum sokkal egyszerűbb és Excel-szel nyílik.
- Ha valóban tényleg létre kell hoznia az Excel-fájlokat, találok egy nagyon régi verziót ... például a 3.0 verziót, amely nem rendelkezik ezekkel az összetett dokumentumokkal - és mentse el a minimális fájlt, amely csak azokat a funkciókat tartalmazza, amelyekre szüksége van. Ebben a fájlban lesz a BIFF-rekordok minimális száma, amelyeket fel kell venni; így csak a specifikációnak ezt a részét kell végrehajtania.
- Ha a Word "ohm" -ot kell használni, használhatja a HTML-t. A szó jól nyitja meg.
- És ha komplex tervezésre van szüksége, a választás az RTF. Minden, ami Wordben van. RTF-ben írható. De ez egy szöveges formátum, nem bináris - ezért kicserélhet néhány adatot, és a fájl helyes marad. Például, készítsen Word-ben egy gyönyörűen formázott dokumentumot az "adatok" helyett "csonkokkal", és egy egyszerű szöveges csere helyettesítse őket. Ez az RTF tökéletesen megnyílik a Word bármely verziójában.
Mindenesetre, ha valóban létre fog hozni egy irodai versenytársat. amely minden Office dokumentumot olvas és ír. több ezer éves munka van előtted. És ha nem - az bináris formátumok olvasása és írása Az Office lesz a leginkább időigényes szakasz a munkádban, de anélkül is megteheti.