Excel JavaScript API 1. rész: áttekintés és összehasonlítás

X

Adatvédelem & cookie-k

ez az oldal cookie-kat használ. A folytatással elfogadja azok használatát. Tudj meg többet, beleértve a cookie-k kezelésének módját is.

Megvan!

reklámok

az elmúlt hónapokban időt töltöttem az új JavaScript Excel API kísérletezésével.

ez az első olyan tervezett bejegyzéssorozat, amely a JS-API-t vizsgálja egy Excel Office Fejlesztő szempontjából.

a JS API fő előnye, hogy lehetővé teszi a Windows Excel, Mac Excel, Excel Online és Excel iOS rendszeren működő kód írását. A JS API még mindig éretlen, de a Microsoft Office bővíthetőség csapata gyorsan fejleszti, az API új kiadásai nagyjából negyedévente érkeznek.

a JS API böngésző alapú JavaScript/TypeScript és HTML és CSS technológiákat használ. Fő célkitűzései a következők:

  • a munka az egész ilyen sokféle végpontok (mobil, tablet, felhő, asztali).
  • a mai fejlesztőket célozza meg, akik elsősorban vagy kizárólag webes technológiákat használnak .

az API aszinkron módon hajtja végre az API-interakciók sorba állításával az Excel programmal, amíg nem kéri, hogy kötegben (kontextusban) hajtsák végre őket.Szinkronizálás ()).

JavaScript & TypeScript

VBA vagy C fejlesztők számára a JavaScript egy furcsa, elkeserítő, de meglepően erős nyelv. Néhány különbség megemlítése:

  • a változóknak valójában nincs típusuk és nagybetűk érzékenyek. A változók hatóköre (az úgynevezett lexikális hatókör) komolyan furcsa, és úgy tűnik, hogy gyakran elkapja még a tapasztalt JavaScript fejlesztőket is.
  • a tömbök valójában nem tömbök, és csak egy dimenzióval rendelkeznek, így gyorsan megismerheti a tömbök tömbjeit. Nincsenek rögzített felső határaik, és ritkák lehetnek. Olyan hatékony módszerekkel rendelkeznek, mint a térkép, A REDUCE, A SLICE és a SORT. (De nagyon nehéz, hogy a JS tömb rendezés ugyanúgy működjön, mint egy Excel rendezés!)
  • funkciók első osztályú polgárok – akkor át őket körül, mint a változók – Anonymous/Lambda funkciók teljes mértékben támogatott – tényleg szükség van, hogy a fejed körül ezt!
  • az aszinkron feldolgozást az ígéretek nevű dolgok kezelik, amelyeket némi nehézséggel össze lehet láncolni (ezt a helyzetet a végzet piramisának nevezik)
  • a JavaScript, mivel a nyelv még mindig meglehetősen gyorsan változik, és olyan funkciókkal rendelkezik, amelyeket bizonyos böngészők támogathatnak vagy nem támogathatnak
  • a JavaScript népszerűségét részben a sok nagyon erős és szabadon elérhető keretrendszer (JQuery, AngularJS, …)

egyébként a JavaScript nem a Java szkript nyelvi változata: ez egy teljesen más nyelv.

TypeScript egy kísérlet a Microsoft kijavítani néhány kirívó JavaScript hibák.
a TypeScript alapvetően egy Transzpiler – lefordítja a TypeScript-et JavaScript-be, így szinte bármi, ami végrehajthatja a Javascriptet, végrehajthatja az transpiled TypeScript-et is.
a TypeScript két fő előnye:

  • a változókhoz típusokat rendelhet, és ésszerű hatókörük van!
  • az ígéretek helyett használhatod az async Waitet, ami sokkal olvashatóbbá teszi a kódodat, és elkerüli a végzet piramisát.

Excel API technológiák összehasonlítása

az Excel API-k 4 fő családja van:

Excel ‘ C ‘ XLL API

ez az API a legszorosabban integrált és legalacsonyabb nyilvánosan elérhető felület az Excel számára:

  • a legjobban teljesítő API
  • az alacsony szintű interfész C programozási és memóriakezelési készségeket igényel.
  • Visual Studio IDE
  • fut az Excel folyamatban.
  • az UDFs (többszálú, aszinkron, RTD, klaszter stb.) legtöbb képessége
  • csak az Excel objektummodell egy részhalmazát fedi le
  • Korlátozott natív UI támogatás
  • sok más termék/platform/nyelv (XLL Plus C++, Excel DNA. Net, Addin Express.NET, PyXLL Python, FCell F# …)
  • Windows Desktop csak
  • Application addin szint csak
  • használhatja az összes C és C++ keretrendszer (Standard Template Library, BOOST …)

Excel COM és automatizálási API

ez az API a leggazdagabb és legszélesebb körben használt API

  • elsődleges nyelvek VBA és VB6
  • jó teljesítmény
  • legszélesebb objektum modell támogatás
  • támogatja az egyszálú szinkron UDFs
  • fut az Excel folyamat
  • Windows
  • Mac OS asztali/laptopok (de VBA csak néhány különbségek a Windows VBA-hoz képest)
  • a Macro recorder alacsony belépési pontot biztosít
  • beépített, de az ősi IDE for Windows VBA
  • beágyazható egy dokumentumba, vagy alkalmazásszinten kiegészítőként használható.
  • a VBA sok éve változatlan, és csak korlátozott és haldokló keretrendszerrel rendelkezik

COM-Interop API

ez az API egy további.Net interop réteget ad a COM/Automation interfész tetejére. Ideális esetben ez hasznos stopgap lett volna, amíg egy megfelelő.net Excel felületet nem fejlesztettek ki, de sajnos ez soha nem történt meg.

  • gyenge teljesítmény
  • külön folyamatban fut
  • támogatja a.net-keretrendszert és a nyelveket
  • csak Windows alatt
  • Visual Studio IDE
  • elsősorban alkalmazásszintű, de a VSTO
  • nem alkalmas UDFs-re
  • a Microsoft kínálata a VSTO

az olyan termékek, mint az Excel DNA és az Addin Express támogatják mind a COM-Interop. Net világot, mind a ‘c’ API-t, hogy lehetővé tegyék a megfelelő UDF támogatást, a jobb teljesítményt, miközben megőrzik a. NET-keretrendszer gazdagságát.

Excel JS-API kiadás 1.4

az új gyerek a blokk! Ez az API, amelyet a Microsoft jelenleg aktívan fejleszt, tehát nagyon mozgó célpont. Az alábbi megjegyzések az API 1.4-es verzióját tükrözik 2017 februárjában.

  • a kód változatlanul fut több végponton.
    • de ez a legkisebb közös nevező támogatást eredményezheti
  • támogatja a sok JavaScript keretek
  • működik a legjobban TypeScript
  • jó webes támogatás
  • Office Store támogatás
  • fut egy külön böngésző folyamat
  • igényel Internet: nincs offline képesség
  • nincs UDF támogatás jelenleg
  • nagyon gyenge teljesítmény
  • célzott szakmai webfejlesztők
  • objektum modell támogatás
    • korlátozott, de gyorsan bővülő
    • egyetlen munkafüzet csak: nem lehet másolni a munkafüzetek között, megnyitni, bezárni vagy menteni
    • a számítás és a Képernyőfrissítés Korlátozott ellenőrzése
    • nincs Copy Paste Special
  • hibrid felhő / alkalmazás / munkafüzet szint
  • csak szakaszos aszinkron feldolgozás

mi a következő lépés?

a következő js blogbejegyzéseim a JS-API teljesítményére összpontosítanak.

ha többet szeretne megtudni a JS-API-ról, azt javaslom, hogy Michael Zlatkovsky, a Microsoft Office bővíthetőségi csapatának fejlesztője építse az Office Addins-t.

You might also like

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.