1. Produtos
  2.   Planilha
  3.   Node.js
  4.   Node-XLSX-Writer
 
  

Biblioteca Node.js de Código Aberto para Gravar Dados em Arquivos Excel

Uma Biblioteca Node.js de Excel XLSX Dedicada e de Código Aberto que Fornece uma API Simples para Gerar Arquivos .xlsx (Excel) e Gravar Dados em Arquivos Excel em Modo Streaming.

O que é Node-XLSX-Writer?

No mundo do desenvolvimento Node.js, gerar relatórios e exportar dados são requisitos comuns. Embora existam bibliotecas poderosas como o exceljs, às vezes você precisa de uma solução focada em uma única tarefa; escrever arquivos XLSX rápida e eficientemente, sem a sobrecarga de leitura ou manipulação de arquivos existentes. Apresentamos o Node-XLSX-Writer, uma biblioteca leve e direta projetada exatamente para esse propósito. A biblioteca se destaca pela sua simplicidade e funcionalidade focada. Ao contrário de bibliotecas Excel abrangentes que lidam com leitura, escrita e manipulação, este módulo concentra‑se apenas em escrever arquivos XLSX, tornando‑o leve, fácil de aprender, de implementação rápida e confiável.

Node-XLSX-Writer é uma biblioteca leve e direta projetada especificamente para gerar arquivos XLSX (Excel) em aplicativos Node.js. Para tarefas como gerar exportações semelhantes a CSV com os benefícios adicionais de formatação do Excel e suporte a múltiplas planilhas (através de sua API simples), é uma ótima escolha que manterá seu código limpo e a pegada de memória da sua aplicação pequena. Criado por Ruben Vermeersch e engenheirado a partir de arquivos XLSX de exemplo, este módulo oferece aos desenvolvedores uma maneira simples, porém eficaz, de exportar dados para o formato Excel sem a complexidade das bibliotecas maiores de manipulação de Excel. Isso o torna ideal para aplicações que precisam gerar relatórios grandes a partir de bancos de dados ou APIs, já que sua natureza de streaming garante baixo uso de memória mesmo com conjuntos de dados massivos.

Previous Next

Começando com Node-XLSX-Write

Antes de instalar o Node-XLSX-Writer, você precisa ter as bibliotecas de desenvolvimento libzip instaladas no seu sistema. A biblioteca depende dessas ligações nativas para criar arquivos zip (arquivos XLSX são essencialmente XML compactado). Por favor, use os seguintes comandos para uma instalação bem-sucedida.

Instale Node-XLSX-Write via npm

npm install --save xlsx-writer

Você pode baixar a biblioteca compartilhada compilada do repositório do GitHub e instalá‑la.

Criação de Planilhas Excel XLSX em Node.js

A biblioteca open‑source Node‑XLSX‑Writer inclui recursos para criar e manipular arquivos Excel XLSX dentro de aplicações Node.js. A biblioteca não requer Microsoft Excel ou interoperabilidade COM. Ela cria o arquivo XLSX (que é essencialmente um arquivo ZIP de partes XML) programaticamente. Isso a torna adequada para uso em Node.js no lado do servidor. O exemplo de código a seguir demonstra a maneira mais simples de criar um arquivo Excel com alguns dados.

Como criar um arquivo Excel XLSX dentro de aplicativos 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 para Grandes Conjuntos de Dados

É aqui que o Node‑XLSX‑Writer realmente se destaca. Em vez de carregar todos os dados na memória, você pode transmitir linhas uma a uma. Isso é perfeito para processar resultados de consultas ao banco de dados. A biblioteca usa funções para emitir cada registro do banco de dados. Nós gravamos imediatamente como uma nova linha no arquivo Excel. Essa abordagem mantém o uso de memória constante, independentemente de você estar exportando 100 linhas ou 1 milhão de linhas.

Como fazer streaming a partir de um banco de dados dentro de aplicativos 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!');

Estilização Personalizada (Fonte, Cor, Bordas)

Embora não seja tão abrangente quanto suítes completas, a biblioteca open‑source Node‑XLSX‑Writer oferece opções essenciais de estilo para que seus relatórios tenham aparência profissional. Ela oferece suporte a vários recursos de formatação em planilhas, como deixar a fonte em negrito ou itálico, definir cor de fundo e cor da borda, definir o estilo da borda (fina, média, espessa) e assim por diante. O exemplo a seguir mostra como os desenvolvedores podem estilizar a linha de cabeçalho dentro de aplicativos Node.js.

Como aplicar estilo à linha de cabeçalho via biblioteca 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();

 Português