JavaScript API a dinamikus Word dokumentumok generálásához

Nyílt forráskódú JavaScript könyvtár dinamikus Word dokumentumok létrehozásához Node.js és böngésző-alapú pplications.

Mi az a Docx-templates?

Docx-Templates egy nyílt forráskódú JavaScript könyvtár, amely lehetővé teszi a szoftverfejlesztők számára, hogy előre definiált sablonok használatával dinamikus Microsoft Word (.docx) dokumentumokat generáljanak. A Word dokumentumok programozott kézi felépítése helyett a fejlesztők a Microsoft Word-ben tervezhetnek sablonokat, és beágyazott parancsok segítségével injektálhatják a dinamikus adatokat. Ez a könyvtár mind a Node.js, mind a böngésző környezetben működik, így rendkívül sokoldalú a modern web- és szerveroldali alkalmazások számára. A DOCX fájlokat a belső XML struktúrájuk elemzésével dolgozza fel, és a futásidőben a sablonparancsokat a tényleges adatokkal helyettesíti.

A Docx-Templates könyvtár egy erőteljes, nyílt forráskódú eszköz, amely mind a Node.js, mind a böngésző környezetben használható. A könyvtár fő előnye a tervezés és a logika szétválasztása. A nem technikai felhasználók a Wordben tervezhetik meg az elrendezést és a stílusokat, míg a fejlesztők az adatok beillesztésére koncentrálnak. Támogatja a komplex logikát, például ciklusokat, feltételes formázást, sőt akár JavaScript kódrészletek végrehajtását is közvetlenül a dokumentumban. Ez ideális megoldás a fejlesztők számára, akiknek magas hűségű jelentéseket kell készíteniük XML vagy tulajdonosi tervezőeszközök nélkül.

Previous Next

A Docx-templates használatának megkezdése

A Docx-templates könyvtár ajánlott telepítési módja az npm használata. Kérjük, használja a következő parancsot a zökkenőmentes telepítéshez

Telepítse a Docx-Templates-t NPM használatával

$ npm install docx-templates 

Telepítse a Docx-Templates-t Yarn használatával/strong>

$ yarn add docx-templates 

Sablon-alapú dokumentumgenerálás JS API-n keresztül

Az nyílt forráskódú Docx-Templates könyvtár lehetővé teszi a szoftverfejlesztők számára, hogy Word dokumentumokat tervezzenek, és dinamikusan adatokat illesszenek be egyszerű parancsokkal. Ez a megközelítés elválasztja a megjelenítést a logikától, így a sablonok könnyen kezelhetők és frissíthetők a kód módosítása nélkül. Közvetlenül hozzáférhet a tulajdonságokhoz az adatobjektumból, vagy akár egyszerű kifejezéseket is futtathat. Például egy teljes név beszúrásához a sablon így nézne ki: {firstName} {surname}. A könyvtár kiértékeli a kódot, és zökkenőmentesen helyettesíti.

Hogyan hozhatunk létre dinamikusan Word dokumentumokat JavaScript alkalmazásokban?

import createReport from 'docx-templates';
import fs from 'fs';

const template = fs.readFileSync('template.docx');

const report = await createReport({
  template,
  data: { name: 'John', surname: 'Doe' },
});

fs.writeFileSync('output.docx', report);

Dinamikus képbeillesztés JavaScript segítségével

A szövegen túl az nyílt forráskódú Docx-Templates könyvtár képes képeket beilleszteni menet közben. Ez magában foglalja a helyi fájlokat, URL-ből származó képeket, vagy akár programozottan generált QR-kódokat is. Szabályozhatja a kép méretét és elhelyezését. Ez a funkció forradalmi a személyazonosító jelvények, termékkatalógusok vagy olyan jelentések létrehozásában, amelyek dinamikus diagramokat és vizuális bizonyítékot igényelnek. Íme egy egyszerű példa, amely bemutatja, hogyan lehet képet beszúrni egy Word dokumentumba a JavaScript API-n keresztül.

Hogyan illesszünk be képet menet közben a Word dokumentumokba JavaScript API segítségével?

const buffer = await createReport({
  template,
  data: {
    userAvatar: async () => {
      const resp = await fetch('https://example.com/photo.png');
      return { width: 3, height: 3, data: await resp.arrayBuffer(), extension: '.png' };
    }
  },
});
// In Word: {IMAGE userAvatar()}

Erőteljes ciklusok (FOR/END-FOR)

Adatelemek listáinak kezelése zökkenőmentes a FOR parancs segítségével. Ez a funkció lehetővé teszi, hogy tömbökön iterálva generálj táblázatsorokat, listákat vagy akár egy dokumentum teljes szakaszait. A Docx-Templates könyvtár támogatja a beágyazott ciklusokat, így komplex hierarchikus adatstruktúrákat ábrázolhatsz, például egy osztályok listáját a hozzájuk tartozó alkalmazottakkal, miközben megőrzöd az eredeti Word formázást. Az alábbi kódrészlet bemutatja, hogyan érhető el ez.

Hogyan alkalmazzunk fejlett ciklust JavaScript alkalmazásokban?

const buffer = await createReport({
  template,
  data: {
    projects: [
      { name: 'SEO Optimization', status: 'Completed' },
      { name: 'API Integration', status: 'In Progress' }
    ]
  },
});
/* In Word:
{FOR project IN projects}
Project: {project.name} - Status: {project.status}
{END-FOR}
*/

Egyedi JavaScript kontextus (EXEC)

A Docx-Templates könyvtár egyik legfejlettebb funkciója az, hogy tetszőleges JavaScript kódrészleteket futtathatsz az EXEC (vagy !) parancs segítségével. Egy additionalJsContext megadásával egyedi segédfüggvényeket tehetsz elérhetővé a sablon számára. Ez lehetővé teszi, hogy a sablon belsőleg számításokat végezzen, dátumokat formázzon vagy karakterláncokat manipuláljon anélkül, hogy a fő alkalmazáslogikádban előre kellene feldolgozni minden adatot.

 Magyar