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.
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.