Відкрита бібліотека Node.js для запису даних у файли Excel
Присвячена відкрита бібліотека Node.js Excel XLSX, що надає простий API для генерації .xlsx (Excel) файлів та запису даних у файли Excel у потоковому режимі.
Що таке Node-XLSX-Writer?
У світі розробки на Node.js створення звітів і експорт даних — це поширені вимоги. Хоча існують потужні бібліотеки, такі як exceljs, іноді потрібне рішення, яке зосереджене лише на одній задачі — швидкому та ефективному записуванні файлів XLSX без зайвих накладних витрат на читання чи модифікацію існуючих файлів. Ось тут і з'являється Node‑XLSX‑Writer — легка та проста бібліотека, створена саме для цього. Вона вирізняється простотою та зосередженістю на функціональності. На відміну від комплексних бібліотек Excel, які працюють з читанням, записом і маніпуляцією, цей модуль сконцентрований лише на записі файлів XLSX, що робить його легким, простим у вивченні, швидким у впровадженні та надійним.
Node‑XLSX‑Writer — це легка і проста у використанні бібліотека, спеціально розроблена для створення файлів XLSX (Excel) у додатках Node.js. Для таких завдань, як створення експортів у форматі CSV із додатковими перевагами форматування Excel і підтримкою кількох листів (через простий API), вона є відмінним вибором, який дозволяє підтримувати чистий код і мінімізувати використання пам'яті вашого додатку. Створена Рубеном Вермершем і зворотньо інженерна за зразковими файлами XLSX, ця бібліотека пропонує розробникам простий, проте ефективний спосіб експорту даних у формат Excel без складності більших бібліотек для маніпуляції Excel. Це робить її ідеальним вибором для застосунків, яким потрібно генерувати великі звіти з баз даних або API, оскільки потокова природа забезпечує низьке споживання пам'яті навіть при роботі з масивними наборами даних.
Початок роботи з Node-XLSX-Write
Перед встановленням Node-XLSX-Writer переконайтеся, що у вашій системі встановлені бібліотеки розробки libzip. Бібліотека залежить від цих нативних прив'язок для створення zip‑файлів (XLSX‑файли фактично є стисненим XML). Будь ласка, використайте наведені нижче команди для успішної інсталяції.
Встановити Node‑XLSX‑Write через npm
npm install --save xlsx-writerВи можете завантажити зкомпільовану спільну бібліотеку з репозиторію GitHub і встановити її.
Створення електронних таблиць Excel XLSX у Node.js
Бібліотека з відкритим вихідним кодом Node-XLSX-Writer включає функції створення та обробки Excel XLSX‑файлів у Node.js‑застосунках. Бібліотека не потребує Microsoft Excel або COM‑взаємодії. Вона програмно конструює XLSX‑файл (по суті це ZIP‑файл з XML‑частинами). Це робить її придатною для серверного використання в Node.js. Наступний приклад коду демонструє найпростіший спосіб створити Excel‑файл із деякими даними.
Як створити файл Excel XLSX у додатках 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!');
Потокове оброблення великих наборів даних
Саме тут Node-XLSX-Writer проявляє себе найкраще. Замість завантаження всіх даних у пам’ять, ви можете передавати рядки по одному. Це ідеально підходить для обробки результатів запитів до бази даних. Бібліотека використовує функції для емітування кожного запису з бази даних. Ми одразу записуємо його як новий рядок у Excel‑файл. Такий підхід підтримує постійне використання пам’яті, незалежно від того, чи експортуєте ви 100 рядків, чи мільйон рядків.
Як виконувати потокову передачу даних з бази даних у додатках 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!');
Кастомне оформлення (шрифт, колір, межі)
Хоча бібліотека не настільки обширна, як повнофункціональні пакети, Node-XLSX-Writer забезпечує базові параметри стилізації, які роблять ваші звіти професійними. Вона підтримує різноманітні можливості роботи зі стилями в електронних таблицях, наприклад, робити шрифт жирним або курсивом, задавати кольори фону та меж, визначати стиль меж (тонка, середня, товста) тощо. Наступний приклад показує, як розробники можуть стилізувати заголовковий рядок у Node.js‑застосунках.
Як застосувати стиль до рядка заголовка за допомогою бібліотеки 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();