Open source Node.js-bibliotheek om gegevens te schrijven naar Excel-bestanden
Een toegewijde open source Node.js Excel XLSX-bibliotheek die een eenvoudige API biedt voor het genereren van .xlsx (Excel) bestanden en het schrijven van gegevens naar Excel-bestanden in streaming modus.
Wat is Node-XLSX-Writer?
In de wereld van Node.js-ontwikkeling zijn het genereren van rapporten en exporteren van gegevens veelvoorkomende vereisten. Terwijl krachtige bibliotheken zoals exceljs bestaan, heb je soms een oplossing nodig die zich volledig richt op één taak: het snel en efficiënt schrijven van XLSX-bestanden, zonder de overhead van het lezen of manipuleren van bestaande bestanden. Maak kennis met Node-XLSX-Writer, een lichte en eenvoudige bibliotheek die precies voor dit doel is ontworpen. De bibliotheek valt op door zijn eenvoud en gerichte functionaliteit. In tegenstelling tot uitgebreide Excel-bibliotheken die lezen, schrijven en manipulatie afhandelen, concentreert deze module zich uitsluitend op het schrijven van XLSX-bestanden, waardoor hij lichtgewicht, gemakkelijk te leren, snel te implementeren en betrouwbaar is.
Node-XLSX-Writer is een lichte en eenvoudige bibliotheek die specifiek is ontworpen voor het genereren van XLSX (Excel) bestanden in Node.js-toepassingen. Voor taken zoals het genereren van CSV-achtige exportbestanden met de toegevoegde voordelen van Excel-opmaak en ondersteuning voor meerdere sheets (via de eenvoudige API), is het een uitstekende keuze die je code schoon houdt en de geheugenvoetafdruk van je applicatie klein maakt. Gemaakt door Ruben Vermeersch en reverse‑engineerd vanuit voorbeeld‑XLSX‑bestanden, biedt deze module ontwikkelaars een eenvoudige maar effectieve manier om gegevens naar Excel-formaat te exporteren zonder de complexiteit van grotere Excel‑manipulatie‑bibliotheken. Dit maakt het een ideale keuze voor applicaties die grote rapporten moeten genereren vanuit databases of API's, aangezien de streaming‑aard een laag geheugenverbruik garandeert, zelfs bij enorme datasets.
Aan de slag met Node-XLSX-Write
Før du installerer Node-XLSX-Writer, må du ha libzip-utviklingsbiblioteker installert på systemet ditt. Biblioteket er avhengig av disse native bindingene for å opprette zip-filer (XLSX-filer er i hovedsak zippede XML-filer). Vennligst bruk følgende kommandoer for en vellykket installasjon.
Installeer Node-XLSX-Write via npm
npm install --save xlsx-writerDu kan laste ned den kompilerte delte biblioteket fra GitHub-repositoriet og installere det.
Excel XLSX-spreadsheetcreatie in Node.js
Det åpne kilde Node-XLSX-Writer-biblioteket har inkludert funksjoner for å lage og håndtere Excel XLSX-filer i Node.js-applikasjoner. Biblioteket krever ikke Microsoft Excel eller COM-interoperabilitet. Det bygger XLSX-filen (som i hovedsak er en ZIP-fil med XML-deler) programmatisk. Dette gjør det egnet for server‑side Node.js‑bruk. Følgende kodeeksempel viser den enkleste måten å opprette en Excel‑fil med noen data på.
Hoe maak je een Excel XLSX-bestand binnen Node.js Apps?
// 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 voor grote datasets
Dette er hvor Node‑XLSX‑Writer virkelig skinner. I stedet for å laste all data inn i minnet, kan du strømme rader én etter én. Dette er perfekt for behandling av databaseresultat‑spørringer. Biblioteket bruker funksjoner til å sende hver post fra databasen. Vi skriver den umiddelbart som en ny rad i Excel‑filen. Denne tilnærmingen holder minnebruken konstant, uavhengig av om du eksporterer 100 rader eller 1 million rader.
Hoe voer je streaming uit van een database binnen Node.js Apps?
// 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!');
Aangepaste styling (lettertype, kleur, randen)
Selv om den ikke er så omfattende som fullverdige verktøykasser, gir det åpne kilde‑biblioteket Node‑XLSX‑Writer nødvendige stilalternativer for at rapportene dine skal se profesjonelle ut. Det støtter ulike funksjoner for håndtering av stiler i regneark, som å gjøre skrifttypen fet eller kursiv, sette bakgrunnsfarge og kantfarge, definere kantstilen (tynn, medium, tykk) osv. Følgende eksempel viser hvordan programvareutviklere kan style overskriftsrader i Node.js‑apper.
Hoe pas je stijl toe op de header-rij via de Node.js-bibliotheek?
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();