html-table-excel-exporter
Version:
Biblioteca JavaScript para exportar tabelas HTML para arquivos Excel (.xlsx)
131 lines (101 loc) • 3.69 kB
Markdown
# html-table-excel-exporter
Uma biblioteca JavaScript simples para exportar tabelas HTML para arquivos Excel (.xlsx) sem dependências externas.
[](https://www.npmjs.com/package/html-table-excel-exporter)
[](https://opensource.org/licenses/MIT)
## Instalação
### NPM
```bash
npm install html-table-excel-exporter
```
### CDN
```html
<script src="https://cdn.jsdelivr.net/npm/html-table-excel-exporter@1.0.0/dist/table-excel-exporter.min.js"></script>
```
## Uso
```javascript
// 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...');
```
## Exemplo Completo
```html
<html>
<head>
<title>Exportar Tabela para Excel</title>
<script src="https://cdn.jsdelivr.net/npm/html-table-excel-exporter@1.0.0/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>joao@exemplo.com</td>
<td>(11) 98765-4321</td>
</tr>
<tr>
<td>Maria Souza</td>
<td>maria@exemplo.com</td>
<td>(21) 91234-5678</td>
</tr>
</tbody>
</table>
<button id="btnExportar">Exportar para Excel</button>
<script>
document.addEventListener('DOMContentLoaded', function() {
const exporter = exportTableToExcel();
exporter.setTable(document.getElementById('minhaTabela'));
exporter.setFileName('contatos');
exporter.setBtnAction(document.getElementById('btnExportar'));
});
</script>
</body>
</html>
```
## API
### `htmlExportTableToExcel()`
Inicializa o exportador e retorna um objeto com os seguintes métodos:
#### `setTable(tabela)`
Define a tabela HTML que será exportada para Excel.
- `tabela`: Elemento HTML da tabela a ser exportada (obrigatório)
#### `setFileName(nome)`
Define o nome do arquivo Excel a ser gerado.
- `nome`: String com o nome do arquivo sem extensão (padrão: 'relatorio')
#### `setBtnAction(botao)`
Configura um botão para iniciar o download quando clicado.
- `botao`: Elemento HTML do botão
#### `setLoadingContent(texto)`
Define o texto exibido no botão durante o download.
- `texto`: String com o texto (padrão: 'Baixando...')
#### `download()`
Inicia o download da tabela como arquivo Excel.
## Limitações
- 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](https://github.com/SheetJS/sheetjs).
## Contribuições
Contribuições são bem-vindas! Por favor, abra uma issue ou pull request no GitHub.
## Licença
[MIT](LICENSE)