Membuat Export Excell Dengan Nodejs Framework Expressjs

Expressjs

Kali ini saya akan berbagi tips tentang export excell menggunakan nodejs framework expressjs, di tips kali ini ada dua macam yaitu

  1. Export menggunakan html
  2. Export menggunakan library npm json2xls
Dalam development sebuah aplikasi pasti tidak luput dari namanya reporting berbentuk xlsx, biasanya user atau stakeholder kita sering meminta report berformat xlsx ataupun pdf untuk kebutuhan reporting mereka.

Sedangakan didalam tim development biasanya untuk menggenerate report berbentuk xlsx itu dilakukan disisi server atau backend, kenapa demikian karena disisi client atau frontend disarankan hanya merequest dan menerima jadi saja dari backend, sebenarnya disisi frontend pun bisa untuk menggenerate xlsx tapi di tim saya biasanya di lakukan disisi server atau backend.

1. Export menggunakan html

langsung kita praktek saja pertama pastikan nodejs sudah terinstall dan juga expressjs nya sudah terinstall jika teman-teman ingin cepat dalam development pembuatan app berbasis nodejs dengan framework expressjs bisa menggunakan express generator caranya install dengan menggunakan perintah sebagai berikut di terminal teman-teman
npm install -g express-generator
setelah generator terinstall selanjutnya menggenerate app kita contoh 
express --view=ejs myapp
untuk view engine expressjs menyediakan berbagai template engine seperti
  1. Handlebars dengan extensi .hbs
  2. Pug dengna extensi .pug
  3. Ejs dengan extensi .ejs
  4. Dan Hogan
disini kita akan menggunakan yang simple saja yaitu menggunakan template engine EJS.

Lanjut setelah selesai kita buat data dummy dulu dengna nama dummy.json simpan di root kita seperti pada gambar dibawah ini

Dummy data

{
"data":[
{
"nama":"user1",
"role":"backend"
},{
"nama":"user2",
"role":"backend"
},{
"nama":"user3",
"role":"backend"
},{
"nama":"user4",
"role":"backend"
},{
"nama":"user5",
"role":"backend"
}
]
}

lanjut kita buat script untuk download file excellnya edit file app.js tambahkan code seperti ini sesudah baris code app.use('/users', usersRouter);

app.use('/excell',(req, res) => {
  const readJson = JSON.parse(fs.readFileSync(path.join("dummy.json"), "utf8"));
  res.set({
    'Content-Type': 'application/vnd.ms-excel',
    'Content-Disposition':'attachment;Filename=Excells.xls'
  })
  res.render('excell', {res:readJson});
})
setelah itu di dalam view buat file bernama excell.ejs dan ketikan script seperti ini

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv=\"Content-Type\"
content=\"text/html; charset=Windows-1252\">
<title>Export Excell</title>
</head>
<body>
<table border="1">
<tr>
<th>No.</th>
<th>Nama</th>
<th>Role</th>
</tr>
<% var no = 1; for (var i = 0; i < res.data.length; i++) { %>
<tr>
<td width='10px'><%= no %></td>
<td width='300px'><%= res.data[i].nama %></td>
<td width='250px' align='center'><%= res.data[i].role %></td>
</tr>
<% no++ } %>
</table>
</body>
</html>

buka terminal dan ketikan perintah 
npm install 
setelah depedencies terinstall lalu ketikan perintah
npm start
buka browser dan ketikan http://localhost:3000/ secara default jika kita mengguankan express generator port yang berjalan yaitu port 3000 kita juga bisa mengubah port number sesuai selera kita sih.

Expressjs running berhasil

lalu buka di browser ketik url seperti ini http://localhost:3000/excell jika mendownload file berarti proses generate berhasil dan jangan lupa cek data hasil download tadi apakah sudah benar atau belum

Hasil download dan generate

2. Export menggunakan package json2xls

Setelah kita berhasil membuat export excell tanpa menggunakan package manager selanjutnya kita akan membuat generate excell menggunakan library json2xls edit file app.js tambah var json2xls = require('json2xls'); dan app.use(json2xls.middleware); seperti pada gambar di bawah ini

Edit file app.js

app.use('/excell-via-package',(req, res) => {
  const readJson = JSON.parse(fs.readFileSync(path.join("dummy.json"), "utf8"));
  res.xls('data.xlsx', readJson.data);
})
lalu testing lagi buka terminal dan install package excell nya
npm install json2xls
npm start
lalu buka di browser ketik url seperti ini http://localhost:3000/excell-via-package maka file generate akan terdownload buka file nya dan cek apakah udah sesuai atau belum. Oke mungkin segitu yang bisa aku sharing selamat mencoba dan semoga bermanfaa'at, Source code lengkap ada disini 

Posting Komentar

1 Komentar