API JavaScript untuk Menjana Dokumen Word Dinamik
Perpustakaan JavaScript Sumber Terbuka untuk Membuat Dokumen Word Dinamik dengan Node.js dan Aplikasi Berasaskan Penyemak Imbas.
Apakah Docx-templates?
Docx-Templates ialah perpustakaan JavaScript sumber terbuka yang membolehkan pemaju perisian menghasilkan dokumen Microsoft Word (.docx) dinamik menggunakan templat pra-definisi. Daripada membina dokumen Word secara manual melalui kod, pemaju boleh mereka templat dalam Microsoft Word dan menyuntik data dinamik menggunakan arahan terbenam. Perpustakaan ini berfungsi dalam persekitaran Node.js dan penyemak imbas, menjadikannya sangat serbaguna untuk aplikasi web moden dan sisi pelayan. Ia memproses fail DOCX dengan mengurai struktur XML dalaman dan menggantikan arahan templat dengan data sebenar semasa masa jalan.
Perpustakaan Docx-Templates adalah alat sumber terbuka yang kuat direka untuk persekitaran Node.js dan pelayar. Kelebihan utama perpustakaan ini ialah pemisahan antara reka bentuk dan logik. Pengguna bukan teknikal boleh mereka bentuk susun atur dan gaya dalam Word, manakala pembangun memberi tumpuan kepada penyuntikan data. Ia menyokong logik kompleks seperti gelung, pemformatan bersyarat, dan bahkan pelaksanaan kepingan JavaScript secara langsung dalam dokumen. Ini menjadikannya penyelesaian ideal bagi pembangun yang perlu menghasilkan laporan berketepatan tinggi tanpa bergelut dengan XML atau alat reka bentuk proprietari.
Mula Menggunakan Docx-templates
Cara yang disyorkan untuk memasang perpustakaan Docx-templates ialah melalui npm. Sila gunakan perintah berikut untuk pemasangan yang lancar
Pasang Docx-Templates melalui NPM
$ npm install docx-templates Pasang Docx-Templates via Yarn/strong>
$ yarn add docx-templates Penjanaan Dokumen Berasaskan Templat melalui API JS
Perpustakaan Docx-Templates sumber terbuka membolehkan pembangun perisian mereka bentuk dokumen dalam Word dan menyuntik data secara dinamik menggunakan arahan mudah. Pendekatan ini memisahkan persembahan daripada logik, menjadikan templat mudah diurus dan dikemas kini tanpa mengubah kod. Anda boleh mengakses ciri secara langsung daripada objek data anda atau bahkan menjalankan ungkapan mudah. Sebagai contoh, untuk menyisipkan nama penuh, templat anda akan kelihatan seperti ini: {firstName} {surname}. Perpustakaan ini menilai kod dan menggantikannya dengan lancar.
Bagaimana untuk Membuat Dokumen Word Secara Dinamik dalam Aplikasi JavaScript?
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);
Penyuntikan Imej Dinamik melalui JavaScript
Selain teks, perpustakaan Docx-Templates sumber terbuka dapat menyuntik imej secara serta-merta. Ini termasuk fail tempatan, imej dari URL, atau bahkan kod QR yang dijana secara programatik. Anda boleh mengawal saiz imej dan penempatannya. Ciri ini merupakan perubahan besar untuk mencipta lencana pengenalan, katalog produk, atau laporan yang memerlukan carta dinamik dan bukti visual. Berikut ialah contoh mudah yang menunjukkan cara menyisipkan imej ke dalam dokumen Word melalui API JavaScript.
Bagaimana untuk Menyisipkan Imej Secara Dinamik dalam Dokumen Word melalui API JavaScript?
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()}
Gelung Kuat (FOR/END-FOR)
Pengendalian senarai data menjadi lancar dengan perintah FOR. Ciri ini membolehkan anda mengulangi array untuk menjana baris jadual, senarai, atau bahkan keseluruhan bahagian dokumen. Pustaka Docx-Templates telah menyertakan sokongan untuk gelung bersarang, membolehkan anda mewakili struktur data hierarki yang kompleks, seperti senarai jabatan dengan pekerja masing‑masing, sambil mengekalkan gaya Word asal. Contoh kod berikut menunjukkan cara mencapainya.
Bagaimana untuk Menggunakan Gelung Lanjutan dalam Aplikasi JavaScript?
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}
*/
Konteks JavaScript Tersuai (EXEC)
Salah satu ciri paling maju dalam pustaka Docx-Templates ialah keupayaan untuk menjalankan serpihan JavaScript sewenang‑wenanya menggunakan perintah EXEC (atau !). Dengan menyediakan additionalJsContext, anda boleh mendedahkan fungsi pembantu khusus kepada templat. Ini membolehkan templat melakukan pengiraan, memformat tarikh, atau memanipulasi rentetan secara dalaman tanpa perlu pra‑memproses setiap kepingan data dalam logik utama aplikasi anda.