JavaScript API dynaamisten Word-asiakirjojen luomiseen

Avoimen lähdekoodin JavaScript-kirjasto dynaamisten Word-asiakirjojen luomiseen Node.js:llä ja selaimessa toimivilla sovelluksilla.

Mikä on Docx-templates?

Docx-Templates on avoimen lähdekoodin JavaScript‑kirjasto, jonka avulla ohjelmistokehittäjät voivat luoda dynaamisia Microsoft Word (.docx) -asiakirjoja ennalta määritettyjen mallien avulla. Sen sijaan, että Word‑asiakirjat rakennettaisiin manuaalisesti ohjelmallisesti, kehittäjät voivat suunnitella mallit Microsoft Wordissa ja syöttää dynaamista dataa upotettujen komentojen avulla. Tämä kirjasto toimii sekä Node.js‑ että selainympäristöissä, mikä tekee siitä erittäin monipuolisen nykyaikaisille web‑ ja palvelinpuolen sovelluksille. Se käsittelee DOCX‑tiedostoja jäsentämällä niiden sisäisen XML‑rakenteen ja korvaamalla mallikomennot ajonaikaisella datalla.

Docx-Templates -kirjasto on tehokas, avoimen lähdekoodin työkalu, joka on suunniteltu sekä Node.js- että selainympäristöihin. Kirjaston tärkein etu on suunnittelun ja logiikan erottaminen. Ei-tekniset käyttäjät voivat suunnitella asettelun ja tyylin Wordissa, kun kehittäjät keskittyvät tietojen syöttämiseen. Se tukee monimutkaista logiikkaa, kuten silmukoita, ehdollista muotoilua ja jopa JavaScript‑koodinpätkien suorittamista suoraan asiakirjassa. Tämä tekee siitä ihanteellisen ratkaisun kehittäjille, jotka tarvitsevat korkealaatuisia raportteja ilman XML:n tai omien suunnittelutyökalujen kanssa kamppailua.

Previous Next

Docx-templatesin aloitus

Suositeltu tapa asentaa Docx-templates -kirjasto on npm:n kautta. Käytä seuraavaa komentoa sujuvan asennuksen varmistamiseksi

Asenna Docx-Templates NPM:n kautta

$ npm install docx-templates 

Asenna Docx-Templates Yarnin kautta/strong>

$ yarn add docx-templates 

Mallipohjainen asiakirjagenerointi JS-API:n kautta

Avoimen lähdekoodin Docx-Templates -kirjasto mahdollistaa ohjelmistokehittäjien suunnitella asiakirjoja Wordissa ja syöttää dataa dynaamisesti yksinkertaisilla komennoilla. Tämä lähestymistapa erottaa esityksen logiikasta, mikä tekee malleista helppoja hallita ja päivittää ilman koodin muuttamista. Voit käyttää suoraan ominaisuuksia tietojoukostasi tai jopa suorittaa yksinkertaisia lausekkeita. Esimerkiksi, lisätäksesi koko nimen, mallisi näyttäisi tältä: {firstName} {surname}. Kirjasto arvioi koodin ja korvaa sen saumattomasti.

Kuinka luoda dynaamisesti Word-asiakirjoja JavaScript-sovelluksissa?

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);

Dynaaminen kuvainsyöttö JavaScriptin avulla

Tekstin lisäksi avoimen lähdekoodin Docx-Templates -kirjasto voi syöttää kuvia lennossa. Tämä sisältää paikalliset tiedostot, URL-osoitteesta ladatut kuvat tai jopa ohjelmallisesti luodut QR-koodit. Voit hallita kuvan kokoa ja sen sijoittelua. Tämä ominaisuus on pelin muuttaja tunnistekorttien, tuotekatalogien tai raporttien luomisessa, jotka vaativat dynaamisia kaavioita ja visuaalista todistusaineistoa. Tässä on yksinkertainen esimerkki, joka näyttää, miten lisätä kuva Word-asiakirjaan JavaScript API:n kautta.

Kuinka lisätä kuva lennossa Word-asiakirjoihin JavaScript-API:n avulla?

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()}

Tehokkaat silmukat (FOR/END-FOR)

Listojen käsittely on saumatonta FOR-komennon avulla. Tämä ominaisuus mahdollistaa taulukoiden rivien, listojen tai jopa koko asiakirjan osioiden luomisen iteroimalla taulukoita. Docx-Templates-kirjasto sisältää tuen sisäkkäisille silmukoille, mikä mahdollistaa monimutkaisten hierarkkisten tietorakenteiden, kuten osastojen listan niiden työntekijöiden kanssa, esittämisen samalla säilyttäen alkuperäisen Word-tyylin. Seuraava koodiesimerkki näyttää, miten tämä saavutetaan.

Kuinka soveltaa edistyneitä silmukoita JavaScript-sovelluksissa?

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}
*/

Mukautettu JavaScript-konteksti (EXEC)

Yksi Docx-Templates-kirjaston edistyneimmistä ominaisuuksista on kyky suorittaa mielivaltaisia JavaScript-pätkiä EXEC (tai !) -komennon avulla. Antamalla additionalJsContextin voit avata mukautettuja apufunktioita malliin. Tämä mahdollistaa mallin suorittaa laskelmia, muotoilla päivämääriä tai käsitellä merkkijonoja sisäisesti ilman, että sinun täytyy esikäsitellä jokainen tieto pääsovelluksesi logiikassa.

 Suomen