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.
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.