Excel JavaScript API Part 1: Overview & Comparison

X

Privacy & Cookies

deze website maakt gebruik van cookies. Door verder te gaan, gaat u akkoord met het gebruik ervan. Meer informatie, waaronder het beheren van cookies.

Begrepen!

advertenties

Ik heb de afgelopen maanden geëxperimenteerd met de nieuwe JavaScript Excel API.

dit is de eerste van een geplande reeks posten die de JS-API onderzoeken vanuit het oogpunt van een Excel Office-Ontwikkelaar.

het belangrijkste voordeel van de js API is dat het u toestaat om code te schrijven die werkt voor Windows Excel, Mac Excel, Excel Online en Excel op IOS. De js API is nog steeds onvolwassen, maar ondergaat een snelle ontwikkeling door de Microsoft Office Extensibility team, met nieuwe releases van de API komen ongeveer driemaandelijks.

de js API maakt gebruik van browsergebaseerde JavaScript / TypeScript-en HTML-en CSS-technologieën. De belangrijkste doelstellingen zijn::

  • om te werken met zo ‘ n grote verscheidenheid aan eindpunten (mobiel, tablet, cloud, desktop).
  • gericht op de huidige ontwikkelaars die hoofdzakelijk of uitsluitend gebruik maken van webtechnologieën .

de API voert asynchroon uit door de API-interacties met Excel in de wachtrij te plaatsen totdat u vraagt om ze in een batch uit te voeren (Context.Sync()).

JavaScript & TypeScript

voor VBA-of C-ontwikkelaars is JavaScript een vreemde, ergerlijke maar verrassend krachtige taal. Om een paar verschillen te noemen:

  • variabelen hebben niet echt typen en zijn hoofdlettergevoelig. De omvang van variabelen (genaamd Lexical Scope) is serieus vreemd en lijkt vaak te vangen zelfs doorgewinterde JavaScript-ontwikkelaars.
  • Arrays zijn niet echt arrays en hebben slechts één dimensie, dus je leert snel over arrays van arrays. Ze hebben geen vaste bovengrenzen en kunnen schaars zijn. Ze hebben krachtige methoden zoals in kaart brengen, verminderen, snijden, en sorteren. (Maar het is echt moeilijk om JS array sort op dezelfde manier te laten werken als een Excel sort!)
  • functies zijn eersteklas Burgers – je kunt ze doorgeven als variabelen-Anonymous / Lambda functies worden volledig ondersteund-je moet dit echt begrijpen!
  • Asynchrone verwerking wordt afgehandeld door dingen genoemd Beloften, die kunnen worden samengevoegd met enige moeite (deze situatie staat bekend als de Piramide van Doom)
  • JavaScript taal is nog steeds aan het veranderen vrij snel en heeft functies die mogelijk niet worden ondersteund door bepaalde browsers
  • JavaScript s populariteit is deels verbonden met en gevoed door de vele zeer krachtig en vrij beschikbare frameworks (JQuery, AngularJS, …)

En door de manier waarop JavaScript is een script taal versie van Java: het is een compleet andere taal.

TypeScript is een poging van Microsoft om enkele van de meer flagrante JavaScript-fouten te herstellen.
TypeScript is in principe een Transpiler – het compileert TypeScript in JavaScript, zodat zowat alles wat JavaScript kan uitvoeren ook getranspiled TypeScript kan uitvoeren.
twee belangrijke voordelen van TypeScript zijn:

  • u kunt typen toewijzen aan variabelen en ze hebben verstandige scope!
  • u kunt Async wait gebruiken in plaats van Promises, wat uw code veel leesbaarder maakt en de Pyramid of Doom vermijdt.

Excel API-technologieën vergeleken

er zijn 4 hoofdfamilies van Excel API ‘s:

Excel’ C ‘ XLL API

deze API is de nauwst geïntegreerde en laagst openbaar beschikbare interface naar Excel:

  • de Best presterende API
  • Low-level interface vereist vaardigheden op het gebied van programmeren en geheugenbeheer.
  • Visual Studio IDE
  • draait in het Excel-proces.
  • de meeste mogelijkheden voor UDFs (multi-threaded, asynchronous, RTD, Cluster etc)
  • dekt alleen een subset van het Excel-objectmodel
  • beperkte native UI-ondersteuning
  • gebruikt als een basislaag door vele andere producten/platforms/talen (XLL Plus C++, Excel DNA .net, Addin Express.NETTO, PyXLL Python, FCell F# …)
  • Bureaublad van Windows alleen
  • Toepassing addin alleen op het niveau
  • Kunt gebruik maken van alle C-en C++ – kaders (Standard Template Library, BOOST …)

Excel-COM en Automatisering API

Deze API is de rijkste en meest gebruikte API

  • Primaire talen VBA en VB6
  • Goede prestaties
  • Breedste object model ondersteuning
  • Ondersteunt single-threaded synchrone Udf
  • Loopt in het Excel-Proces
  • Windows
  • Mac OS-Desktops/Laptops (maar VBA alleen met sommige verschillen met Windows VBA)
  • Macro recorder biedt laag invoerpunt
  • Ingebouwde maar oude IDE voor Windows VBA
  • kan worden ingebed in een document of worden gebruikt als een addin op applicatieniveau.
  • VBA grotendeels ongewijzigd voor vele jaren en heeft slechts een beperkt en afstervend framework

COM-Interop API

deze API voegt een extra. net interop-laag toe bovenop de Com / Automation-interface. Idealiter zou dit een nuttige stopgap zijn geweest totdat een goede. Net Excel-interface werd ontwikkeld, maar helaas is dat nooit gebeurd.

  • Slechte prestaties
  • wordt Uitgevoerd in een apart proces
  • Ondersteunt .NET framework en talen
  • alleen Windows
  • Visual Studio IDE
  • Voornamelijk applicatie niveau, maar kan worden gekoppeld aan een document met behulp van VSTO
  • Niet geschikt zijn voor Udf
  • Microsoft ‘ s aanbieden is VSTO

Producten zoals Excel DNA en Addin Express ondersteuning van zowel de COM-Interop .NETTO-wereld en de ‘C’ – API inschakelen van de juiste UDF-ondersteuning, verbeterde prestaties met behoud van de rijkdom van de .NET framework.

Excel JS-API Release 1.4

The new kid on the block! Dit is de API die momenteel actief wordt ontwikkeld door Microsoft, dus het is zeer veel een bewegend doel. Opmerkingen hieronder weerspiegelen de 1.4 versie van de API in februari 2017.

  • uw code draait onveranderd over meerdere eindpunten.
    • Maar dit kan resulteren in de laagste gemeenschappelijke noemer ondersteuning
  • Ondersteunt de vele JavaScript frameworks
  • Werkt het beste met de Schrijfmachine
  • Goede Ondersteuning op het Web
  • Kantoor Store support
  • wordt Uitgevoerd in een apart browservenster proces
  • Vereist Internet: geen offline vermogen
  • Geen UDF-ondersteuning momenteel
  • Zeer slechte prestaties
  • Gericht op professionele web ontwikkelaars
  • Object model ondersteuning
    • Beperkt, maar snel groeiende
    • in Één werkmap alleen: kan niet kopiëren tussen, openen, sluiten of opslaan van werkmappen
    • beperkte controle over berekening en scherm bijwerken
    • geen Kopiëren Plakken speciaal
  • Hybride Cloud/toepassing / werkboek niveau
  • gebundelde asynchrone verwerking alleen

wat nu?

mijn volgende blogberichten over JS zullen zich richten op de prestaties van de JS-API.

Als u meer wilt weten over de JS-API, raad ik het bouwen van Office Addins aan door Michael Zlatkovsky, die een ontwikkelaar is van het Microsoft Office Extensibility team.

You might also like

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.