1. Download modul Base Report XLSX disini.
2. Letakkan modul Report XLSX sejajar dengan lokasi addons.
3. Tambahkan dependencies di file manifest modul kalian yang ingin dibuat report excel-nya.
4. Buat wizard jika diperlukan untuk memfilter data report-nya.
5. Buat report action, boleh buat file baru dengan nama report.xml atau bisa di letakkan di tempat lain.
Pinjaman Karyawan" report_type="xlsx"
name="ab_hr_cicilan.report_pinjaman_xlsx" file="Laporan Pinjaman Karyawan"
attachment_use="False"/>
6. Buat button atau menu item dengan menjalankan function berikut:
Variabel template_report adalah 'nama_modul.id_report_xml'.
7. Buat file python untuk membuat format dan menarik data dari odoo ke Excel, dengan isi kurang lebih seperti berikut:
Yang perlu diperhatikan adalah:
- Variabel _name diisi dengan format "report.nama_modul.id_report_xml".
- Variabel _inherit biarkan default seperti itu.
- Nama function (generate_xlsx_report) juga biarkan default.
8. Tambahkan format excel seperti berikut:
'right': 1, 'top': 1, 'align': 'center', 'valign': 'vcenter',
'text_wrap': True, })
'size': 11, 'bold': True})
'bold': True, 'size': 12})
'valign': 'vcenter', 'bold': True, 'size': 11, 'top': 1,
'left': 1, 'right': 1, 'bottom': 1})
Yang perlu diperhatikan adalah:
- Format diatas yang nantinya akan dipanggil disetiap kolom atau baris yang kita buat.
- Variabel worksheet yang akan muncul di sheet excel ketika di cetak nanti, juga sebagai variabel yang dipanggil ketika membuat kolom atau baris.
Kita juga dapat mengatur ukuran kolom excel dengan:
Keterangan:
- Worksheet diambil dari variabel worksheet yang sudah kita definisikan diatas.
- 'A:B' Adalah mengatur panjang kolom A sampai B sejumlah 20px.
- '1, 1' Adalah mengatur panjang kolom Kedua (karena hitungannya mulai dari 0, jadi kalo 1 adalah 2) sejumlah 20px.
Jadi, kita dapat menentukan kolom dengan 2 cara, yaitu dengan memanggil nama kolom atau dengan angka.
Untuk mengisi sebuah kolom atau row bisa gunakan cara berikut:
Keterangan:
- Format write adalah worksheet.write(baris, kolom, 'Isi text', nama_format)
Kita juga dapat melakukan merge atau menggabungkan sebuah kolom atau baris seperti berikut:
Keterangan:
- Format merge_range adalah worksheet.merge_range(baris_awal, kolom_awal, baris_akhir, kolom_akhir, 'Isi text', nama_format)
Untuk dokumentasi lengkapnya, bisa langsung ke website resminya https://xlsxwriter.readthedocs.io/
Cukup sekian artikel saya hari ini, terimakasih, Wassalamualaikum Wr. Wb.