From 16e400a36a999b5b91abf8e14ab48429cde25ecc Mon Sep 17 00:00:00 2001 From: kur0nek-o Date: Fri, 29 Mar 2024 14:04:01 +0700 Subject: [PATCH] feat: create export xlsx in detail rekapitulasi gangguan per posko --- .../Gangguan/Rekap/RGangguan_PerPosko.vue | 5 ++- .../Gangguan/Rekap/RGangguan_PerPosko.ts | 37 ++++++++++++++++++- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue index f9929f2..f0e6198 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue @@ -876,7 +876,8 @@ import { provideApolloClient } from '@vue/apollo-composable' import { exportToPDF, exportToXLSX, - exportDetailToPDF + exportDetailToPDF, + exportDetailToXLSX } from '@/report/Gangguan/Rekap/RGangguan_PerPosko' const client = apolloClient() @@ -967,7 +968,7 @@ const onExportingDetail = (e: any) => { if (e.format === 'pdf') { exportDetailToPDF(reportMeta.value, dataSub.value) } else if (e.format === 'xlsx') { - // exportToXLSX(reportMeta.value, e) + exportDetailToXLSX(reportMeta.value, e) } else { } } diff --git a/src/report/Gangguan/Rekap/RGangguan_PerPosko.ts b/src/report/Gangguan/Rekap/RGangguan_PerPosko.ts index 9a368a3..932fa05 100644 --- a/src/report/Gangguan/Rekap/RGangguan_PerPosko.ts +++ b/src/report/Gangguan/Rekap/RGangguan_PerPosko.ts @@ -622,4 +622,39 @@ const exportToXLSX = (reportMeta: any, e: any) => { e.cancel = true } -export { exportToPDF, exportToXLSX, exportDetailToPDF } +const exportDetailToXLSX = (reportMeta: any, e: any) => { + const meta = formatMetaData(reportMeta) + const workbook = new Workbook() + const worksheet = workbook.addWorksheet(`${reportName}`) + + setHeaderStyle(worksheet, 1, 1, 'PT. PLN(Persero)') + setHeaderStyle(worksheet, 3, 8, `Daftar Detail ${reportName}`.toUpperCase(), true) + setHeaderStyle( + worksheet, + 4, + 8, + `PERIODE TANGGAL : ${meta.dateFromFormat} SD TGL ${meta.dateToFormat}`, + true + ) + + worksheet.mergeCells('H3:J3') + worksheet.mergeCells('H4:J4') + + exportToExcel({ + component: e.component, + worksheet, + autoFilterEnabled: true, + topLeftCell: { row: 6, column: 1 } + }).then(() => { + workbook.xlsx.writeBuffer().then((buffer: any) => { + saveAs( + new Blob([buffer], { type: 'application/octet-stream' }), + `Laporan Detail ${reportName}.xlsx` + ) + }) + }) + + e.cancel = true +} + +export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX }