1. Produk
  2.   Spreadsheet
  3.   Node.js
  4.   Node-XLSX-Writer
 
  

Perpustakaan Node.js Open Source untuk Menulis Data ke File Excel

Perpustakaan Node.js Excel XLSX Open Source yang Didedikasikan yang Menyediakan API Sederhana untuk Menghasilkan File .xlsx (Excel) dan Menulis Data ke File Excel secara Streaming.

Apa itu Node-XLSX-Writer?

Di dunia pengembangan Node.js, menghasilkan laporan dan mengekspor data adalah kebutuhan umum. Meskipun ada perpustakaan kuat seperti exceljs, terkadang Anda memerlukan solusi yang fokus pada satu tugas; menulis file XLSX dengan cepat dan efisien, tanpa beban membaca atau memanipulasi file yang ada. Perkenalkan Node-XLSX-Writer, perpustakaan ringan dan sederhana yang dirancang khusus untuk tujuan ini. Perpustakaan ini menonjol karena kesederhanaan dan fungsionalitas terfokusnya. Tidak seperti perpustakaan Excel komprehensif yang menangani pembacaan, penulisan, dan manipulasi, modul ini hanya memusatkan pada penulisan file XLSX, menjadikannya ringan, mudah dipelajari, implementasinya cepat, dan dapat diandalkan.

Node-XLSX-Writer adalah perpustakaan ringan dan sederhana yang dirancang khusus untuk menghasilkan file XLSX (Excel) dalam aplikasi Node.js. Untuk tugas seperti menghasilkan ekspor serupa CSV dengan manfaat tambahan format Excel dan dukungan multi-sheet (melalui API yang sederhana), ini merupakan pilihan yang sangat baik yang akan menjaga kode Anda tetap bersih dan jejak memori aplikasi kecil. Dibuat oleh Ruben Vermeersch dan direkayasa balik dari contoh file XLSX, modul ini memberikan pengembang cara yang sederhana namun efektif untuk mengekspor data ke format Excel tanpa kompleksitas perpustakaan manipulasi Excel yang lebih besar. Hal ini menjadikannya pilihan ideal untuk aplikasi yang perlu menghasilkan laporan besar dari basis data atau API, karena sifat streaming‑nya memastikan penggunaan memori yang rendah bahkan dengan dataset yang sangat besar.

Previous Next

Memulai dengan Node-XLSX-Write

Sebelum menginstal Node-XLSX-Writer, Anda perlu memiliki pustaka pengembangan libzip terpasang di sistem Anda. Perpustakaan ini bergantung pada binding native ini untuk membuat file zip (file XLSX pada dasarnya adalah XML yang di‑zip). Silakan gunakan perintah berikut untuk instalasi yang berhasil.

Instal Node-XLSX-Write via npm

npm install --save xlsx-writer

Anda dapat mengunduh perpustakaan bersama yang sudah dikompilasi dari repositori GitHub dan menginstalnya.

Pembuatan Spreadsheet Excel XLSX di Node.js

Perpustakaan open source Node-XLSX-Writer telah mencakup fitur untuk membuat dan menangani file Excel XLSX di dalam aplikasi Node.js. Perpustakaan ini tidak memerlukan Microsoft Excel atau interop COM. Ia membangun file XLSX (yang pada dasarnya adalah file ZIP berisi bagian‑bagian XML) secara programatik. Hal ini membuatnya cocok untuk penggunaan Node.js sisi server. Contoh kode berikut menunjukkan cara paling sederhana untuk membuat file Excel dengan beberapa data.

Bagaimana Cara Membuat File Excel XLSX di dalam Aplikasi Node.js?

// Import the library
const XLSXWriter = require('node-xlsx-writer');

// 1. Create a new instance, specifying the output file path.
const xlsx = new XLSXWriter('./output/simple_report.xlsx');

// 2. Write the header row (optional, but recommended).
xlsx.writeRow(['Name', 'Email', 'Sign-Up Date']);

// 3. Write some data rows.
xlsx.writeRow(['Alice Smith', 'alice@example.com', '2023-10-25']);
xlsx.writeRow(['Bob Johnson', 'bob.j@domain.com', '2023-10-26']);
xlsx.writeRow(['Charlie Brown', 'charlie@brown.com', '2023-10-27']);

// 4. Finalize the file. This step is crucial to save the file properly.
xlsx.finalize();

console.log('Excel file created successfully!');

Streaming untuk Dataset Besar

Inilah tempat Node-XLSX-Writer benar‑benar bersinar. Alih‑alih memuat semua data ke memori, Anda dapat men‑stream baris satu per satu. Ini sempurna untuk memproses hasil kueri basis data. Perpustakaan ini menggunakan fungsi untuk memancarkan setiap catatan dari basis data. Kami langsung menuliskannya sebagai baris baru dalam file Excel. Pendekatan ini menjaga penggunaan memori tetap konstan, terlepas dari apakah Anda mengekspor 100 baris atau 1 juta baris.

Bagaimana Cara Melakukan Streaming dari Database di dalam Aplikasi Node.js?

// Import the library
const XLSXWriter = require('node-xlsx-writer');

// 1. Create a new instance, specifying the output file path.
const xlsx = new XLSXWriter('./output/simple_report.xlsx');

// 2. Write the header row (optional, but recommended).
xlsx.writeRow(['Name', 'Email', 'Sign-Up Date']);

// 3. Write some data rows.
xlsx.writeRow(['Alice Smith', 'alice@example.com', '2023-10-25']);
xlsx.writeRow(['Bob Johnson', 'bob.j@domain.com', '2023-10-26']);
xlsx.writeRow(['Charlie Brown', 'charlie@brown.com', '2023-10-27']);

// 4. Finalize the file. This step is crucial to save the file properly.
xlsx.finalize();

console.log('Excel file created successfully!');

Penataan Kustom (Font, Warna, Batas)

Meskipun tidak seluas suite lengkap, perpustakaan open source Node-XLSX-Writer menyediakan opsi penataan penting untuk membuat laporan Anda terlihat profesional. Ia mendukung berbagai fitur untuk menangani gaya dalam spreadsheet, seperti membuat font tebal atau miring, mengatur warna latar belakang dan warna batas, mendefinisikan gaya batas ('tipis', 'sedang', 'tebal'), dan sebagainya. Contoh berikut menunjukkan bagaimana pengembang perangkat lunak dapat menata baris header di dalam aplikasi Node.js.

Bagaimana Cara Menerapkan Gaya pada Baris Header melalui Perpustakaan Node.js?

const XLSXWriter = require('node-xlsx-writer');
const xlsx = new XLSXWriter('./output/styled_report.xlsx');

// Define a style object for the header
const headerStyle = {
  bold: true,
  background: 'FF2A52F5', // Blue background (ARGB Hex format)
  color: 'FFFFFFFF',       // White text
  border: 'thin',          // Thin border around cells
  borderColor: 'FF000000'  // Black border
};

// Apply the style when writing the header row
xlsx.writeRow(['Product', 'Category', 'Price', 'Stock'], headerStyle);

// Data rows are written without a style (or with a different one)
xlsx.writeRow(['Laptop', 'Electronics', 999.99, 15]);
xlsx.writeRow(['Desk Chair', 'Furniture', 249.50, 8]);

xlsx.finalize();

 Indonesia