Excel JavaScript API; Část 1: Přehled A Srovnání

X

Soukromí & Cookies

Tento web používá soubory cookie. Pokračováním souhlasíte s jejich použitím. Další informace, včetně toho, jak ovládat soubory cookie.

Mám To!

Reklamy

trávím čas v posledních několika měsících experimentování s novými JavaScript Excel API.

Toto je první z plánované série příspěvků zkoumajících JS-API z pohledu vývojáře aplikace Excel Office.

hlavní výhodou JS API je, že umožňuje psát kód, který funguje pro Windows Excel, Mac Excel, Excel Online a Excel na IOS. JS API je stále nezralé, ale prochází rychlým vývojem týmem Microsoft Office Extensibility, s novými vydáními API přicházejícími zhruba čtvrtletně.

JS API používá JavaScript/TypeScript založený na prohlížeči a technologie HTML a CSS. Jeho hlavními cíli jsou:

  • pracovat v tak široké škále koncových bodů (mobilní, tablet, cloud, desktop).
  • zaměřit se na dnešní vývojáře, kteří pracují hlavně nebo výhradně pomocí webových technologií .

API provede asynchronně ve frontě API interakce s aplikací Excel, dokud si je vyžádat, aby být provedeny v dávce (Kontextu.Synchronizace()).

JavaScript & TypeScript

pro vývojáře VBA nebo C JavaScript je divný, podrážděný, ale překvapivě silný jazyk. Zmínit několik rozdílů:

  • proměnné ve skutečnosti nemají typy a rozlišují velká a malá písmena. Rozsah proměnných (nazývaný lexikální rozsah) je vážně divný a zdá se, že často dohání i zkušené vývojáře JavaScriptu.
  • Pole nejsou ve skutečnosti pole a mají pouze jednu dimenzi, takže se rychle dozvíte o polích polí. Nemají pevné horní hranice a mohou být řídké. Mají výkonné metody, jako je mapa, snížit, plátek, a třídit. (Ale je opravdu těžké, aby JS array sort fungoval stejným způsobem jako Excel sort!)
  • funkce jsou prvotřídní občané – můžete je předat jako proměnné-funkce Anonymous / Lambda jsou plně podporovány-opravdu potřebujete dostat hlavu kolem toho!
  • Asynchronní zpracování je zpracována věci, kterým se říká Sliby, které mohou být připoutaný spolu s obtížemi (tato situace je známá jako Pyramid of Doom)
  • JavaScript jako jazyk se stále mění poměrně rychle a má funkce, které mohou nebo nemusí být podporovány konkrétní prohlížeče
  • JavaScript popularita je zčásti vázána a fed tím, že mnoho velmi výkonný a volně dostupných frameworků (JQuery, AngularJS, …)

A mimochodem JavaScript je skriptovací jazyk, verzi Java: je to úplně jiný jazyk.

TypeScript je pokus společnosti Microsoft opravit některé z více závažných selhání JavaScriptu.
TypeScript je v podstatě Transpiler-zkompiluje TypeScript do JavaScriptu, takže téměř cokoli, co může spustit JavaScript, může také spustit transpiled TypeScript.
dvě hlavní výhody TypeScript jsou:

  • můžete přiřadit typy proměnným a mají rozumný rozsah!
  • můžete použít Asynchronní Čekají místo Slibů, které činí váš kód mnohem čitelnější a vyhýbá Pyramid of Doom.

Excel API Technologie ve Srovnání

k Dispozici jsou 4 hlavní rodiny Excel Api:

Excel “ C “ XLL API

Toto rozhraní API je nejvíce pevně integrované a nejnižší veřejně dostupných rozhraní pro Excel:

  • nejvýkonnější API
  • Low-level rozhraní vyžaduje, C-programování a správa paměti dovednosti.
  • Visual Studio IDE
  • běží v procesu aplikace Excel.
  • Většina schopností pro UDFs (multi-threaded, asynchronní, RTD, Cluster atd.)
  • pokrývá Pouze podmnožinu Excel Object Model
  • Omezené nativní podporou UI
  • Použít jako základovou vrstvu o mnoho dalších produktů/platformy/jazyky (XLL Plus C++, Excel DNA .NET Addin Express .ČISTÝ, PyXLL Python, FCell F# …)
  • pracovní Ploše Windows, pouze
  • Aplikace addin úrovni pouze
  • Můžete použít všechny C a C++ rámce (Standard Template Library, BOOST …)

COM aplikace Excel a Automatizace API

Toto rozhraní API je nejbohatší a nejvíce široce používané API

  • Primární jazyky VBA a VB6
  • Dobrý výkon
  • Nejširší object model podpory
  • Podporuje single-threaded synchronní UDFs
  • Běží v Procesu Excel
  • Windows
  • Mac OS Desktopy/Notebooky (ale VBA jen s některými
  • makro rekordér poskytuje nízký vstupní bod
  • vestavěný, ale starověký IDE pro Windows VBA
  • může být vložen do dokumentu nebo použit jako doplněk na úrovni aplikace.
  • VBA do značné míry beze změny po mnoho let a má pouze omezený a umírání rámec

COM Interop API

To API přidává další .NET interop vrstvu na vrcholu COM/Automatizace rozhraní. V ideálním případě by to bylo užitečné zastavení, dokud nebude vyvinuto správné rozhraní. Net Excel, ale bohužel se to nikdy nestalo.

  • špatný výkon
  • Běží v samostatném procesu
  • Podporuje .NET framework a jazyky
  • Windows
  • Visual Studio IDE
  • Primárně úrovni aplikace, ale může být vázán k dokumentu pomocí VSTO
  • Není vhodné pro UDFs
  • Microsoft nabídka je VSTO

Produkty, jako jsou Excel DNA a Addin Vyjádřit podporu COM Interop .ČISTÝ svět a ‚C‘ API umožnit řádné UDF podporu, lepší výkon a zároveň udržet bohatství .NET framework.

Excel JS-API Release 1.4

nové dítě na bloku! Toto je API, které je v současné době aktivně vyvíjeno společností Microsoft, takže je to velmi pohyblivý cíl. Komentáře níže odrážejí verzi 1.4 API k únoru 2017.

  • váš kód běží beze změny na více koncových bodech.
    • Ale to může mít za následek nejnižší společný jmenovatel podporu
  • Podporuje mnoho rámců JavaScript
  • Funguje nejlépe s Strojopis
  • Dobrý Web Podpora
  • Office Store podpora
  • Běží v samostatném okně proces
  • Vyžaduje připojení k Internetu: ne v režimu offline schopnosti
  • Ne podpora UDF v současné době
  • Velmi špatný výkon
  • Cílené na profesionální webové vývojáře
  • Object model podpory
    • Omezené, ale rychle se rozšiřující
    • Jeden sešit pouze: nelze kopírovat mezi, otevřít, zavřít, nebo uložit sešity
    • Omezenou kontrolu Výpočtu a Aktualizace Obrazovky
    • Ne Kopírovat Vložit Speciální
  • Hybridní Cloud/Aplikace/Sešit Úrovni
  • Asynchronní Dávkové zpracování

Co dál?

moje další blogové příspěvky na JS se zaměří na výkon JS-API.

pokud se chcete dozvědět více o JS-API, doporučuji Building Office Addins od Michaela Zlatkovského, který je vývojářem v týmu Microsoft Office Extensibility.

You might also like

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.