Отворен източник 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 в системата си. Библиотеката разчита на тези native bindings, за да създава 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 interop. Тя програмирано конструира 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 реда или 1 милион реда.
Как да извършим стрийминг от база данни в 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();