Відкрита бібліотека 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, оскільки потокова природа забезпечує низьке споживання пам'яті навіть при роботі з масивними наборами даних.

Previous Next

Початок роботи з 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();

 Українська