Export data dari DataTables ke file Excel adalah kebutuhan umum dalam pengelolaan data. Dalam artikel ini, saya akan membahas enam metode yang dapat digunakan, beserta kelebihan dan kekurangannya. Saya juga telah menggunakan satu diantara mentode berikut dan berhasil dengan baik.
1. SheetJS (XLSX)
SheetJS adalah pustaka JavaScript yang sangat kuat dan fleksibel untuk bekerja dengan file Excel (.xlsx).
Kelebihan:
- Mendukung berbagai format file, termasuk .xlsx dan .csv.
- Fleksibilitas tinggi dalam mengelola dan memanipulasi data.
- Dapat digunakan di browser dan
Kekurangan:
- Memiliki kurva belajar yang lebih tinggi dibandingkan pustaka lainnya.
- Membutuhkan penambahan eksternal untuk mendukung berbagai fitur.
Contoh Penggunaan:
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.3/xlsx.full.min.js"></script>
<script>
var workbook = XLSX.utils.book_new();
var worksheet = XLSX.utils.aoa_to_sheet(data);
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
XLSX.writeFile(workbook, 'ExportData.xlsx');
</script>
2. Export ke CSV
Metode ini menggunakan JavaScript murni untuk membuat dan mengunduh file CSV.
Kelebihan:
- Sederhana dan tidak memerlukan pustaka tambahan.
- Cepat dan mudah diimplementasikan.
Kekurangan:
- Tidak mendukung fitur dan format Excel (.xlsx) yang kompleks.
- Hanya menghasilkan file CSV.
Contoh Penggunaan:
var csv = 'data:text/csv;charset=utf-8,';
data.forEach(function(rowArray) {
let row = rowArray.join(",");
csv += row + "\r\n";
});
var encodedUri = encodeURI(csv);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "ExportData.csv");
document.body.appendChild(link);
link.click();
3. Pustaka table2excel
table2excel
adalah plugin jQuery yang digunakan untuk mengekspor tabel HTML ke file Excel (.xls).
Kelebihan:
- Mudah digunakan dengan jQuery.
- Sederhana dan cepat diimplementasikan.
Kekurangan:
- Hanya mendukung format .xls.
- Tidak mendukung fitur Excel yang kompleks.
Contoh Penggunaan:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-table2excel/1.1.1/table2excel.min.js"></script>
<button id="export">Export to Excel</button>
<script>
$("#export").click(function() {
$("#table").table2excel({
exclude: ".noExl",
name: "Worksheet Name",
filename: "ExportData",
fileext: ".xls"
});
});
</script>
4. Pustaka jQuery DataTables Buttons
Plugin ini adalah tambahan dari jQuery DataTables yang mendukung ekspor data ke file Excel menggunakan tombol.
Kelebihan:
- Terintegrasi dengan baik dengan jQuery DataTables.
- Mendukung berbagai format ekspor.
Kekurangan:
- Membutuhkan beberapa dependensi tambahan.
- Konfigurasi mungkin memerlukan pengetahuan lebih mendalam.
Contoh Penggunaan:
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.7.1/css/buttons.dataTables.min.css">
<script src="https://cdn.datatables.net/buttons/1.7.1/js/dataTables.buttons.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.7.1/js/buttons.html5.min.js"></script>
<script>
$('#table').DataTable({
dom: 'Bfrtip',
buttons: [
{
extend: 'excelHtml5',
text: 'Export Excel'
}
]
});
</script>
5. alasql
alasql
adalah pustaka SQL-like untuk JavaScript yang dapat digunakan untuk mengekspor data tabel ke berbagai format termasuk Excel.
Kelebihan:
- Fleksibel dan mendukung berbagai operasi SQL pada data.
- Dapat menghasilkan berbagai format file.
Kekurangan:
- Mungkin berlebihan untuk kebutuhan sederhana.
- Memiliki kurva belajar yang lebih tinggi.
Contoh Penggunaan:
<script src="https://cdn.jsdelivr.net/alasql/0.4/alasql.min.js"></script>
<button id="exportExcel">Export to Excel</button>
<script>
$("#exportExcel").click(function() {
alasql('SELECT * INTO XLSX("ExportData.xlsx",{headers:true}) FROM HTML("#table",{headers:true})');
});
</script>
6. ExcelJS
ExcelJS
adalah pustaka JavaScript modern untuk membaca, menulis, dan memanipulasi file Excel (.xlsx).
Kelebihan:
- Mendukung fitur Excel yang kompleks.
- Sangat fleksibel dan kaya fitur.
Kekurangan:
- Umumnya digunakan dalam proyek Node.js, sehingga membutuhkan instalasi melalui terminal.
- Lebih kompleks dibandingkan pustaka lainnya.
Contoh Penggunaan:
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('My Sheet');
worksheet.columns = [
{ header: 'NIK', key: 'nik' },
{ header: 'NAMA', key: 'nama' },
// Add other columns as needed
];
worksheet.addRows(dataArray);
workbook.xlsx.writeFile('ExportData.xlsx');
Dari enam metode yang telah dijelaskan, SheetJS
(XLSX) adalah salah satu yang paling fleksibel dan kuat, namun memiliki kurva belajar yang lebih tinggi. Untuk kebutuhan sederhana dan implementasi yang cepat, Export ke CSV
adalah metode yang paling mudah dan cepat diterapkan, terutama jika kamu tidak memerlukan fitur kompleks dari Excel.
Namun, jika menginginkan solusi yang lebih kaya fitur dengan dukungan penuh untuk format Excel, jQuery DataTables Buttons
bisa menjadi pilihan terbaik karena integrasinya yang baik dengan DataTables dan kemudahan penggunaan dengan pustaka tambahan yang minimal.
Selamat mencoba!