Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungChrome Already Has The Eyedropper You're Building(20.09.2026 um 18:25 Uhr)
Sichere ProgrammierungFor VS Code lovers, you can have a colored border and more from now...(20.09.2026 um 18:25 Uhr)
Sichere ProgrammierungNuxt Hydration Mismatch: Why It Happens and How to Fix It(20.09.2026 um 18:26 Uhr)
Sichere ProgrammierungYour Browser Is Rejecting Every Drop On Purpose(20.09.2026 um 18:26 Uhr)
Sichere ProgrammierungReact Derived State: Why That useState Is Probably a Bug(20.09.2026 um 18:27 Uhr)
Sichere ProgrammierungI tried OpenProject and Vikunja. Then I built Agila.(20.09.2026 um 18:37 Uhr)
Sichere ProgrammierungSkill Recorder keeps your screen local until you press Analyze(20.09.2026 um 18:38 Uhr)
Sichere ProgrammierungChrome Already Has The Eyedropper You're Building(20.09.2026 um 18:25 Uhr)
Sichere ProgrammierungFor VS Code lovers, you can have a colored border and more from now...(20.09.2026 um 18:25 Uhr)
Sichere ProgrammierungNuxt Hydration Mismatch: Why It Happens and How to Fix It(20.09.2026 um 18:26 Uhr)
Sichere ProgrammierungYour Browser Is Rejecting Every Drop On Purpose(20.09.2026 um 18:26 Uhr)
Sichere ProgrammierungReact Derived State: Why That useState Is Probably a Bug(20.09.2026 um 18:27 Uhr)
Sichere ProgrammierungI tried OpenProject and Vikunja. Then I built Agila.(20.09.2026 um 18:37 Uhr)
Sichere ProgrammierungSkill Recorder keeps your screen local until you press Analyze(20.09.2026 um 18:38 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

Gerando Arquivos Excel(XLSX) a Partir do Banco de Dados com Node.js

Reagiere als Erste:r — dein Feedback zählt!

Olá, pessoal! 👋

Hoje vou compartilhar uma forma prática e eficiente de gerar arquivos XLSX diretamente com dados do seu banco de dados.

  • Estou utilizando NestJs com MongoDB no exemplo.

Pré-requisitos

Antes de começar, certifique-se de ter os seguintes itens instalados:

  1. Node.js
  2. Biblioteca xlsx (instale usando npm install xlsx)

O Código

Aqui está a função que transforma seus dados em um arquivo XLSX:

  import xlsx from 'xlsx' ou import * as xlsx from 'xlsx';

  generateBufferSheets(data: any[]) {
  // Converte os dados JSON em uma planilha
  const convertedToBinaryBuffer = xlsx.utils.json_to_sheet(data);

  // Cria um novo workbook (livro de planilhas)
  const newBook = xlsx.utils.book_new();

  // Adiciona a planilha ao workbook
  xlsx.utils.book_append_sheet(newBook, convertedToBinaryBuffer, 'Sheets');

  // Gera o arquivo XLSX em formato binário
  const binarySheets = xlsx.write(newBook, {
    type: 'buffer',
    bookType: 'xlsx',
  });

  // Retorna o buffer para salvar ou enviar como resposta
  return binarySheets;
}

Como Funciona?

Transformação dos Dados: A função json_to_sheet converte os dados do formato JSON para um formato compatível com planilhas.

Criação do Workbook: Usamos book_new para criar um novo arquivo de planilha.

Adicionando a Planilha: A função book_append_sheet insere a planilha com os dados no workbook.

Gerando o Arquivo: Por fim, usamos write para gerar o arquivo em formato binário, pronto para ser salvo ou enviado.

Próximos Passos

Agora que você já tem a função para gerar o arquivo XLSX, o próximo passo é conectar ao seu banco de dados e obter os dados que você deseja exportar. Esses dados devem ser passados como parâmetro para a função generateBufferSheets(data: any[]).

A função irá automaticamente pegar as chaves e valores retornados do banco e gerar uma planilha com eles. Simples assim!

Enviando o Arquivo para o Cliente

Para garantir que o navegador do cliente entenda que ele deve baixar o arquivo gerado como um arquivo XLSX, é necessário configurar os headers corretamente na resposta da API. Isso pode ser feito com o seguinte código:

  • O Response utilizado é importado do express
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader('Content-Disposition', 'attachment; filename="dados.xlsx"');

Explicando os Headers:

Content-Type: Define o tipo de conteúdo como um arquivo XLSX, para que o navegador saiba como tratar o arquivo.

Content-Disposition: Define que o arquivo será enviado como um anexo para download. Você também pode especificar o nome do arquivo, como no exemplo acima (filename="dados.xlsx").

Exemplo de uso

  • Neste exemplo de uso, vamos retornar todas as vendas de uma loja.

Retornando dados do DB:

Image description

Definindo Headers

  • O Response utilizado é importado do express

Image description

Planilha gerada após acessar a rota

Image description

Conclusão

Com esses exemplos, agora você sabe como gerar arquivos XLSX a partir do seu banco de dados e permitir que os usuários façam o download diretamente no navegador. Se você tiver dúvidas ou sugestões, deixe nos comentários!

Até a próxima! 👋

GitHub: https://github.com/antony-souza
LinkedIn: https://www.linkedin.com/in/antony-souza-3990b227b/

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Gerando Arquivos Excel(XLSX) a Partir do Banco de Dados com Node.js

Thematisch verwandte Begriffe: Gerando, Arquivos, ExcelXLSX, Partir · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-93956 | A flaw has been found in olivier-ls PHP-FTS up to 1.1.2. Affected by thi…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick