1. Produkter
  2.   Tekstbehandling
  3.   JavaScript
  4.   Docx-templates
 
  

JavaScript API til at generere dynamiske Word-dokumenter

Open Source JavaScript-bibliotek til at skabe dynamiske Word-dokumenter med Node.js og browserbaserede applikationer.

Hvad er Docx-templates?

Docx-Templates er et open‑source JavaScript‑bibliotek, der gør det muligt for softwareudviklere at generere dynamiske Microsoft Word (.docx)‑dokumenter ved hjælp af foruddefinerede skabeloner. I stedet for manuelt at opbygge Word‑dokumenter programmatisk, kan udviklere designe skabeloner i Microsoft Word og indsætte dynamiske data ved hjælp af indlejrede kommandoer. Dette bibliotek fungerer både i Node.js‑ og browser‑miljøer, hvilket gør det yderst alsidigt til moderne web‑ og server‑applikationer. Det behandler DOCX‑filer ved at parse deres interne XML‑struktur og erstatte skabelon‑kommandoer med faktiske data ved kørselstidspunktet.

Docx-Templates-biblioteket er et kraftfuldt, open-source værktøj designet til både Node.js- og browsermiljøer. Den primære fordel ved biblioteket er adskillelsen af design og logik. Ikke-tekniske brugere kan designe layoutet og styling i Word, mens udviklere fokuserer på at injicere dataene. Det understøtter kompleks logik som løkker, betinget formatering og endda udførelse af JavaScript‑udsnit direkte i dokumentet. Dette gør det til en ideel løsning for udviklere, der har brug for at producere højpræcise rapporter uden at kæmpe med XML eller proprietære designværktøjer.

Previous Next

Kom i gang med Docx-templates

Den anbefalede måde at installere Docx-templates-biblioteket på er via npm. Brug venligst følgende kommando for en problemfri installation

Installer Docx-Templates via NPM

$ npm install docx-templates 

Installer Docx-Templates via Yarn/strong>

$ yarn add docx-templates 

Skabelonbaseret dokumentgenerering via JS API

Det open source Docx-Templates-bibliotek giver softwareudviklere mulighed for at designe dokumenter i Word og injicere data dynamisk ved hjælp af simple kommandoer. Denne tilgang adskiller præsentation fra logik, så skabeloner er nemme at administrere og opdatere uden at ændre kode. Du kan direkte få adgang til egenskaber fra dit dataobjekt eller endda køre simple udtryk. For eksempel, for at indsætte et fuldt navn, vil din skabelon se sådan ud: {firstName} {surname}. Biblioteket evaluerer koden og erstatter den problemfrit.

Hvordan opretter man dynamisk Word-dokumenter i JavaScript‑apps?

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

Dynamisk billedindsprøjtning via JavaScript

Udover tekst kan det open source Docx-Templates-bibliotek injicere billeder på farten. Dette inkluderer lokale filer, billeder fra en URL eller endda programmatisk genererede QR-koder. Du kan kontrollere billedets størrelse og placering. Denne funktion er en game-changer for at skabe identifikationsbadge, produktkataloger eller rapporter, der kræver dynamiske diagrammer og visuelle beviser. Her er et enkelt eksempel, der demonstrerer, hvordan man indsætter et billede i et Word-dokument via JavaScript API.

Hvordan indsætter man billeder i realtid i Word-dokumenter via JavaScript‑API?

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

Kraftfulde løkker (FOR/END-FOR)

Det er problemfrit at håndtere lister af data med FOR-kommandoen. Denne funktion gør det muligt at iterere over arrays for at generere tabelrækker, lister eller endda hele sektioner af et dokument. Docx-Templates-biblioteket har inkluderet understøttelse af indlejrede løkker, så du kan repræsentere komplekse hierarkiske datastrukturer, såsom en liste over afdelinger med deres respektive medarbejdere, alt imens du bevarer den oprindelige Word-formatering. Følgende kodeeksempel viser, hvordan du opnår dette.

Hvordan anvender man avancerede løkker i JavaScript‑apps?

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

Tilpasset JavaScript-kontekst (EXEC)

En af de mest avancerede funktioner i Docx-Templates-biblioteket er muligheden for at køre vilkårlige JavaScript‑udsnit ved hjælp af EXEC (eller !) kommandoen. Ved at levere en additionalJsContext kan du eksponere brugerdefinerede hjælpefunktioner til skabelonen. Dette gør det muligt for skabelonen at udføre beregninger, formatere datoer eller manipulere strenge internt uden at skulle forbehandle hver eneste datapunkt i din primære applikationslogik.

 Dansk