Uma biblioteca JavaScript simples para exportar tabelas HTML para arquivos Excel (.xlsx) sem dependências externas.
npm install html-table-excel-exporter
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/html-table-excel-exporter.min.js"></script>
// Importar a biblioteca (se estiver usando módulos)
import { exportTableToExcel } from 'table-excel-exporter';
// Ou usar diretamente se incluída via CDN
const exporter = exportTableToExcel();
// Configurar a tabela a ser exportada
const minhaTabela = document.getElementById('minhaTabela');
exporter.setTable(minhaTabela);
// Configurar o nome do arquivo (opcional)
exporter.setFileName('meus-dados');
// Método 1: Exportar diretamente
document.getElementById('btnExportar').addEventListener('click', () => {
exporter.download();
});
// Método 2: Configurar um botão para iniciar o download
const btnExportar = document.getElementById('btnExportar');
exporter.setBtnAction(btnExportar);
// Alterar o texto exibido durante o download (opcional)
exporter.setLoadingContent('Gerando Excel...');
<!DOCTYPE html>
<html>
<head>
<title>Exportar Tabela para Excel</title>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/html-table-excel-exporter.min.js"></script>
</head>
<body>
<table id="minhaTabela">
<thead>
<tr>
<th>Nome</th>
<th>Email</th>
<th>Telefone</th>
</tr>
</thead>
<tbody>
<tr>
<td>João Silva</td>
<td>[email protected]</td>
<td>(11) 98765-4321</td>
</tr>
<tr>
<td>Maria Souza</td>
<td>[email protected]</td>
<td>(21) 91234-5678</td>
</tr>
</tbody>
</table>
<button id="btnExportar">Exportar para Excel</button>
<script>
document.addEventListener('DOMContentLoaded', function() {
const exporter = htmlTableExcelExporter.htmlExportTableToExcel();
exporter.setTable(document.getElementById('minhaTabela'));
exporter.setFileName('contatos');
exporter.setBtnAction(document.getElementById('btnExportar'));
});
</script>
</body>
</html>
Inicializa o exportador e retorna um objeto com os seguintes métodos:
Define a tabela HTML que será exportada para Excel.
tabela
: Elemento HTML da tabela a ser exportada (obrigatório)
Define o nome do arquivo Excel a ser gerado.
nome
: String com o nome do arquivo sem extensão (padrão: 'relatorio')
Configura um botão para iniciar o download quando clicado.
botao
: Elemento HTML do botão
Define o texto exibido no botão durante o download.
texto
: String com o texto (padrão: 'Baixando...')
Inicia o download da tabela como arquivo Excel.
- A biblioteca exporta o HTML da tabela para um formato que o Excel pode abrir, mas não cria um arquivo XLSX nativo.
- Estilos CSS da tabela não são preservados no arquivo Excel.
- Para tabelas muito grandes, considere usar uma biblioteca mais robusta como SheetJS.
Contribuições são bem-vindas! Por favor, abra uma issue ou pull request no GitHub.