Excel JavaScript API Parte 1: Panoramica e confronto

X

Privacy & Cookie

Questo sito utilizza cookie. Continuando, accetti il loro utilizzo. Ulteriori informazioni, tra cui come controllare i cookie.

Capito!

Pubblicità

Ho trascorso del tempo negli ultimi mesi a sperimentare con la nuova API JavaScript Excel.

Questo è il primo di una serie pianificata di post che esaminano la JS-API dal punto di vista di uno sviluppatore di Excel Office.

Il vantaggio principale dell’API JS è che consente di scrivere codice che funziona per Windows Excel, Mac Excel, Excel Online ed Excel su IOS. L’API JS è ancora immaturo, ma sta subendo un rapido sviluppo da parte del team di estensibilità di Microsoft Office, con nuove versioni dell’API che arrivano approssimativamente trimestralmente.

L’API JS utilizza tecnologie JavaScript/TypeScript basate su browser e HTML e CSS. I suoi obiettivi principali sono:

  • Per lavorare su una così ampia varietà di end-point (mobile, tablet, cloud, desktop).
  • Per indirizzare gli sviluppatori di oggi che lavorano principalmente o esclusivamente utilizzando tecnologie web .

L’API viene eseguita in modo asincrono accodando le interazioni API con Excel fino a quando non viene richiesta l’esecuzione in un batch (Contesto.Sincronizzazione()).

JavaScript &TypeScript

Per gli sviluppatori VBA o C JavaScript è un linguaggio strano, esasperante ma sorprendentemente potente. Per citare alcune differenze:

  • Le variabili non hanno realmente Tipi e sono case sensitive. L’ambito delle variabili (chiamato Ambito lessicale) è seriamente strano e sembra spesso catturare anche gli sviluppatori JavaScript esperti.
  • Gli array non sono realmente array e hanno solo una dimensione, quindi apprendi rapidamente gli array di array. Non hanno limiti superiori fissi e possono essere sparsi. Hanno metodi potenti come MAP, REDUCE, SLICE e SORT. (Ma è davvero difficile fare in modo che l’ordinamento dell’array JS funzioni allo stesso modo di un ordinamento Excel!)
  • Le funzioni sono cittadini di prima classe-puoi passarle in giro come variabili-Le funzioni Anonime/Lambda sono pienamente supportate-devi davvero capirlo!
  • elaborazione Asincrona è gestito da cose chiamate Promesse che possono essere concatenate con qualche difficoltà (questa situazione è conosciuta come la Piramide di Doom)
  • JavaScript come linguaggio sta cambiando molto velocemente e ha caratteristiche che possono o non possono essere supportati da un particolare browser
  • JavaScript popolarità è in parte legato e alimentato da numerosi e molto potenti e liberamente disponibile framework (JQuery, AngularJS, …)

E dal modo in cui JavaScript non è un linguaggio di script versione di Java: Java è un linguaggio completamente diverso.

TypeScript è un tentativo di Microsoft di risolvere alcuni dei più eclatanti errori JavaScript.
TypeScript è fondamentalmente un Transpiler: compila TypeScript in JavaScript in modo che qualsiasi cosa possa eseguire JavaScript possa anche eseguire TypeScript transpiled.
Due principali vantaggi di TypeScript sono:

  • È possibile assegnare i tipi alle variabili e hanno un ambito ragionevole!
  • Puoi usare Async Await invece di Promises che rende il tuo codice molto più leggibile ed evita la Piramide di Doom.

Excel API Technologies Compared

Esistono 4 famiglie principali di API Excel:

Excel ‘C’ XLL API

Questa API è l’interfaccia più strettamente integrata e più bassa disponibile pubblicamente per Excel:

  • Best performing API
  • Interfaccia di basso livello richiede C programmazione e capacità di gestione della memoria.
  • Visual Studio IDE
  • Viene eseguito nel processo Excel.
  • La maggior parte delle funzionalità per UDFs (multi-threaded, asynchronous, RTD, Cluster ecc.)
  • Copre solo un sottoinsieme del modello a oggetti Excel
  • Supporto UI nativo limitato
  • Utilizzato come livello di base da molti altri prodotti/piattaforme/linguaggi (XLL Plus C++, Excel DNA .NET, Addin Express.NET, PyXLL Python, FCell F# …)
  • Windows Desktop solo
  • Applicazione addin solo a livello di
  • Possibile utilizzare tutte le C e C++ framework (Standard Template Library, il BOOST …)

COM di Excel e API di Automazione

Questa API è il più ricco e il più ampiamente usato API

  • Primaria linguaggi VB6 e VBA
  • Buone prestazioni
  • più Ampio modello a oggetti di supporto
  • Supporta single-threaded sincrono Fsu
  • viene Eseguito nel Processo di Excel
  • Windows
  • Mac OS Desktop/Laptop (ma VBA solo con alcuni
  • Macro recorder fornisce un punto di ingresso basso
  • IDE integrato ma antico per Windows VBA
  • Può essere incorporato in un documento o utilizzato come addin a livello di applicazione.
  • VBA in gran parte invariato per molti anni e ha solo un framework limitato e morente

API COM-Interop

Questa API aggiunge un ulteriore livello di interoperabilità.NET in cima all’interfaccia COM/Automation. Idealmente questo sarebbe stato un utile stopgap fino a quando non fosse stata sviluppata una corretta interfaccia. NET Excel, ma purtroppo non è mai successo.

  • Poveri prestazioni
  • viene Eseguito in un processo separato
  • Supporta .NET framework e linguaggi
  • solo per Windows
  • IDE di Visual Studio
  • Principalmente a livello di applicazione, ma può essere associato a un documento utilizzando VSTO
  • Non adatto per i Fsu
  • offerta di Microsoft è VSTO

Prodotti come Excel DNA e Add-in Express supportare sia l’Interoperabilità COM .NET world e la ‘C’ API per consentire il corretto supporto UDF, il miglioramento delle prestazioni, pur mantenendo la ricchezza di .NET framework.

Versione JS-API di Excel 1.4

Il nuovo ragazzo sul blocco! Questa è l’API che è attualmente in fase di sviluppo attivamente da Microsoft, quindi è molto un bersaglio in movimento. I commenti qui sotto riflettono la versione 1.4 dell’API a febbraio 2017.

  • Il codice viene eseguito invariato su più endpoint.
    • Ma questo può risultare in un minimo comune denominatore di supporto
  • Supporta numerosi framework JavaScript
  • Funziona meglio con Dattiloscritto
  • Buon Supporto Web
  • Ufficio Negozio support
  • viene Eseguito in un browser separata processo
  • Richiede Internet: non in linea capacità
  • Nessun supporto UDF attualmente
  • prestazioni Molto scarse
  • Mirate a professionisti e sviluppatori web
  • Oggetto il supporto del modello
    • Limitata, ma in rapida espansione
    • Singola cartella di lavoro solo: impossibile copiare tra, aprire, chiudere o salvare cartelle di lavoro
    • Controllo limitato del calcolo e dell’aggiornamento dello schermo
    • Nessuna copia Incolla speciale
  • Livello di cloud ibrido / Applicazione / cartella di lavoro
  • Solo elaborazione asincrona in batch

Quale sarà il prossimo?

I miei prossimi post del blog su JS si concentreranno sulle prestazioni della JS-API.

Se vuoi saperne di più sulla JS-API ti consiglio di costruire Addins per ufficio da Michael Zlatkovsky, che è uno sviluppatore del team di estensibilità di Microsoft Office.

You might also like

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.