JavaScript API för att generera dynamiska Word-dokument
Öppen källkod JavaScript-bibliotek för att skapa dynamiska Word-dokument med Node.js och webbläsarbaserade applikationer.
Vad är Docx-templates?
Docx-Templates är ett open-source JavaScript‑bibliotek som gör det möjligt för mjukvaruutvecklare att generera dynamiska Microsoft Word (.docx)-dokument med hjälp av fördefinierade mallar. Istället för att manuellt bygga Word-dokument programmässigt kan utvecklare designa mallar i Microsoft Word och injicera dynamisk data med inbäddade kommandon. Detta bibliotek fungerar både i Node.js‑ och webbläsarmiljöer, vilket gör det mycket mångsidigt för moderna webb‑ och serverapplikationer. Det bearbetar DOCX‑filer genom att parsra deras interna XML‑struktur och ersätta mallkommandon med faktiska data vid körning.
Docx-Templates-biblioteket är ett kraftfullt, öppen källkod-verktyg utformat för både Node.js- och webbläsarmiljöer. Den främsta fördelen med biblioteket är separationen av design och logik. Icke-tekniska användare kan designa layouten och stilen i Word, medan utvecklare fokuserar på att injicera data. Det stödjer komplex logik som loopar, villkorsstyrd formatering och till och med körning av JavaScript‑snuttar direkt i dokumentet. Detta gör det till en idealisk lösning för utvecklare som behöver producera högupplösta rapporter utan att kämpa med XML eller proprietära designverktyg.
Kom igång med Docx-templates
Det rekommenderade sättet att installera Docx-templates-biblioteket är via npm. Använd följande kommando för en smidig installation
Installera Docx-Templates via NPM
$ npm install docx-templates Installera Docx-Templates via Yarn/strong>
$ yarn add docx-templates Mallbaserad dokumentgenerering via JS API
Det öppna källkods-biblioteket Docx-Templates låter mjukvaruutvecklare designa dokument i Word och injicera data dynamiskt med enkla kommandon. Detta tillvägagångssätt separerar presentation från logik, vilket gör mallar lätta att hantera och uppdatera utan att ändra kod. Du kan direkt komma åt egenskaper från ditt dataobjekt eller till och med köra enkla uttryck. Till exempel, för att infoga ett fullständigt namn, skulle din mall se ut så här: {firstName} {surname}. Biblioteket utvärderar koden och ersätter den sömlöst.
Hur skapar man dynamiskt Word-dokument i JavaScript-appar?
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 bildinjektion via JavaScript
Utöver text kan det öppna källkods-biblioteket Docx-Templates injicera bilder i farten. Detta inkluderar lokala filer, bilder från en URL eller till och med programmässigt genererade QR-koder. Du kan kontrollera bildens storlek och placering. Denna funktion är en spelväxlare för att skapa identifieringsbrickor, produktkataloger eller rapporter som kräver dynamiska diagram och visuella bevis. Här är ett enkelt exempel som visar hur man infogar en bild i ett Word-dokument via JavaScript API.
Hur infogar man bild i farten i Word-dokument 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()}
Kraftfulla loopar (FOR/END-FOR)
Att hantera listor med data är sömlöst med FOR-kommandot. Denna funktion gör att du kan iterera över arrayer för att generera tabellrader, listor eller till och med hela sektioner i ett dokument. Docx-Templates-biblioteket har inkluderat stöd för nästlade slingor, vilket gör att du kan representera komplexa hierarkiska datastrukturer, såsom en lista över avdelningar med deras respektive anställda, samtidigt som du behåller den ursprungliga Word-formateringen. Följande kodexempel visar hur du uppnår detta.
Hur använder man avancerade loopar i JavaScript-appar?
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}
*/
Anpassad JavaScript-kontext (EXEC)
En av de mest avancerade funktionerna i Docx-Templates-biblioteket är möjligheten att köra godtyckliga JavaScript-snuttar med EXEC (eller !) kommandot. Genom att tillhandahålla ett additionalJsContext kan du exponera anpassade hjälpfunktioner för mallen. Detta gör att mallen kan utföra beräkningar, formatera datum eller manipulera strängar internt utan att behöva förbehandla varje datapunkt i din huvudsakliga applikationslogik.