Excel JavaScript API Part 1: Overview & Comparison

X

Yksityisyys & evästeet

tämä sivusto käyttää evästeitä. Jatkamalla hyväksyt niiden käytön. Lue lisää, mukaan lukien evästeiden hallinta.

Got It!

mainokset

olen viettänyt viime kuukausina aikaa kokeilemalla uutta JavaScript Excel API: a.

tämä on ensimmäinen suunnitellusta julkaisusarjasta, jossa tarkastellaan JS-API: ta Excel-toimiston kehittäjän näkökulmasta.

JS API: n tärkein etu on se, että sen avulla voi kirjoittaa koodia, joka toimii Windows Excel, Mac Excel, Excel Online ja Excel IOS. JS API on vielä kehittymätön, mutta Microsoft Office Extensibility-tiimi kehittää sitä nopeasti, ja API: n uudet julkaisut saapuvat karkeasti neljännesvuosittain.

JS API käyttää selainpohjaista JavaScript/TypeScript-ja HTML-ja CSS-teknologiaa. Sen päätavoitteet ovat:

  • työskennellä näin monenlaisissa päätepisteissä (mobiili, tabletti, pilvi, työpöytä).
  • suunnattu nykypäivän kehittäjille, jotka työskentelevät pääasiassa tai yksinomaan web-teknologioita käyttäen .

API suorittaa asynkronisesti jonottamalla API-vuorovaikutuksia Excelin kanssa, kunnes pyydät niitä suoritettavaksi eränä (Context.Synkronointi()).

JavaScript & konekirjoitus

VBA-tai C-kehittäjille JavaScript on outo, ärsyttävä mutta yllättävän voimakas kieli. Mainitakseni muutamia eroja:

  • muuttujilla ei oikeastaan ole tyyppiä ja ne ovat kirjainkokoisia. Laajuus muuttujia (kutsutaan Lexical Scope) on vakavasti outo ja näyttää usein kiinni jopa kokenut JavaScript kehittäjät.
  • ryhmät eivät ole varsinaisesti ryhmiä, ja niillä on vain yksi ulottuvuus, joten niiden ryhmistä oppii nopeasti. Niillä ei ole kiinteitä ylärajoja ja ne voivat olla harvassa. Heillä on tehokkaita menetelmiä, kuten kartta, vähentää, viipaloida, ja lajitella. (Mutta sen todella vaikea tehdä JS array lajitella toimivat samalla tavalla kuin Excel lajitella!)
  • funktiot ovat ykkösluokan kansalaisia-niitä voi kierrättää kuin muuttujia-anonyymit / Lambda-funktiot ovat täysin tuettuja-sinun todella täytyy tajuta tämä!
  • asynkronista käsittelyä hoitavat lupauksiksi kutsutut asiat, jotka voidaan kahlita yhteen jollain vaikeudella (tätä tilannetta kutsutaan tuomion pyramidiksi)
  • JavaScript koska kieli muuttuu edelleen melko nopeasti ja sillä on ominaisuuksia, joita tietyt selaimet voivat tukea tai olla tukematta
  • JavaScriptin suosio on osittain sidoksissa ja ruokittavissa moniin hyvin tehokkaisiin ja vapaasti käytettävissä oleviin kehyksiin (JQuery, AngularJS, …)

ja muuten JavaScript ei ole komentosarjakieliversio Java: se on täysin eri kieli.

TypeScript on Microsoftin yritys korjata joitakin räikeämpiä JavaScript-puutteita.
TypeScript on periaatteessa Transpileri-se kokoaa Typescriptin JavaScriptiksi siten, että lähes mikä tahansa JavaScriptin suorittava voi suorittaa myös transpiloidun Typescriptin.
Konekirjoituksen kaksi merkittävää etua ovat:

  • voit määrittää tyypit muuttujille ja niillä on järkevä soveltamisala!
  • voit käyttää lupausten sijasta Async odota, mikä tekee koodistasi paljon luettavamman ja välttää tuomion pyramidin.

Excel API Technologies Compared

Excel-sovellusliittymien 4 pääperhettä:

Excel ” C ” XLL API

tämä API on tiiviimmin integroitu ja pienin julkisesti saatavilla oleva käyttöliittymä Exceliin:

  • parhaiten suoriutuva API
  • matalan tason rajapinta vaatii C-ohjelmoinnin ja muistinhallintataitoja.
  • Visual Studio IDE
  • kulkee Excel-prosessissa.
  • Most capability for UDFs (monisäikeinen, asynkroninen, TTK, klusteri jne.)
  • kattaa vain osajoukon Excel-Objektimallista
  • Limited native UI support
  • jota käytetään peruskerroksena monissa muissa tuotteissa/alustoissa/kielissä (XLL Plus C++, Excel DNA. Net, Addin Express.NET, PyXLL Python, FCell F# …)
  • Windows Desktop only
  • Application addin level only
  • voi käyttää kaikkia C-ja C++ – kehyksiä (Standard Template Library, BOOST …)

Excel COM and Automation API

this API is the richest and most used API

  • Primary languages VBA and VB6
  • Good performance
  • Broest object model support
  • Supports single-threaded synchronous UDFs
  • Runs in the Excel Process
  • Windows
  • Mac OS-Pöytäkoneet/Kannettavat tietokoneet (mutta VBA vain joillakin erot Windows VBA)
  • Makrotallennin tarjoaa matalan sisääntulokohdan
  • sisäänrakennetun, mutta vanha IDE Windows VBA
  • voidaan upottaa dokumenttiin tai käyttää Add: nä sovellustasolla.
  • VBA on pysynyt lähes muuttumattomana useita vuosia ja sillä on vain rajallinen ja kuoleva kehys

COM-Interop API

tämä API lisää com/Automation-rajapinnan päälle.Net-interop-kerroksen. Ihannetapauksessa tämä olisi ollut hyödyllinen stopgap kunnes oikea.Net Excel käyttöliittymä kehitettiin, mutta valitettavasti, että ei koskaan tapahtunut.

  • huono suorituskyky
  • toimii erillisenä prosessina
  • tukee.NET framework ja kielet
  • vain Windows
  • Visual Studio IDE
  • pääasiassa sovellustasolla, mutta voidaan sitoa asiakirjaan VSTO
  • ei sovellu UDFs: ään
  • Microsoftin tarjonta on VSTO

tuotteet, kuten Excel DNA ja addin Express tukevat sekä com-Interop. Net-maailmaa että ” C ” – sovellusliittymää mahdollistaakseen asianmukaisen UDF-tuen, parantaen suorituskykyä säilyttäen. net Frameworkin rikkauden.

Excel JS-API-julkaisu 1.4

The new kid on the block! Tämä on API, jota Microsoft parhaillaan aktiivisesti kehittää, joten se on hyvin liikkuva kohde. Alla olevat kommentit heijastavat API: n 1.4-versiota helmikuulta 2017.

  • koodisi kulkee muuttumattomana useiden päätetapahtumien läpi.
    • mutta tämä voi johtaa pienimmän yhteisen nimittäjän tukeen
  • tukee monia JavaScript-kehyksiä
  • toimii parhaiten Konekirjoituksella
  • hyvä verkkotuki
  • Office Store-tuki
  • toimii erillisessä selaimessa
  • vaatii internetin: Ei offline-valmiuksia
  • ei UDF-tukea tällä hetkellä
  • Erittäin huono suorituskyky
  • suunnattu ammattimaisille web-kehittäjille
  • objektimallin tuki
    • rajoitettu mutta nopeasti laajeneva
    • vain yksi työkirja: ei voida kopioida välillä, avata, sulkea tai tallentaa työkirjoja
    • rajoitettu kontrolli laskentaa ja näytön päivitystä
    • Ei Kopiopastetta erityistä
  • Hybrid Cloud / Application / Workbook Level
  • Batched Asynchronous processing only

What Next?

seuraavat blogikirjoitukseni JS: stä keskittyvät JS-API: n suorituskykyyn.

jos haluat oppia lisää JS-API: sta, suosittelen Building Office Addinsia Michael Zlatkovskylle, joka on kehittäjä Microsoft Office Extensibility-tiimissä.

You might also like

Vastaa

Sähköpostiosoitettasi ei julkaista.