From e67ee94e072b1119417e1b9d3b38826126b23df6 Mon Sep 17 00:00:00 2001 From: Fadli Date: Thu, 29 Dec 2022 17:52:14 +0700 Subject: [PATCH] - add design for export xlsx transaction history --- src/transaction/transaction.service.ts | 76 +++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/src/transaction/transaction.service.ts b/src/transaction/transaction.service.ts index 53b4259..c811487 100644 --- a/src/transaction/transaction.service.ts +++ b/src/transaction/transaction.service.ts @@ -2295,6 +2295,8 @@ export class TransactionService { {header: 'Alasan Gagal', key: 'failed_reason'}, ]; + this.styleSheet(sheet) + const tmp = require('tmp'); let File = await new Promise((resolve, reject) => { @@ -2645,4 +2647,76 @@ export class TransactionService { } } } -} + + private styleSheet(sheet) { + //set the width of each column + sheet.getColumn(1).width = 40; + sheet.getColumn(2).width = 20.5; + sheet.getColumn(3).width = 20.5; + sheet.getColumn(4).width = 20.5; + sheet.getColumn(5).width = 20.5; + sheet.getColumn(6).width = 20.5; + sheet.getColumn(7).width = 20.5; + sheet.getColumn(8).width = 20.5; + sheet.getColumn(9).width = 20.5; + sheet.getColumn(10).width = 20.5; + sheet.getColumn(11).width = 20.5; + sheet.getColumn(12).width = 20.5; + + //set the height of header + sheet.getRow(1).height = 30.5; + + //font color + sheet.getRow(1).font = {size: 11.5, bold: true, color: {argb: 'FFFFFF'}} + + //background color + sheet.getRow(1).fill = {type: 'pattern', pattern: 'solid', bgColor: {argb: '000000'}, fgColor: {argb: '000000'}} + + //alignments + sheet.getColumn(1).alignment = {vertical: "start", horizontal: "start", wrapText: true} + sheet.getColumn(2).alignment = {vertical: "middle", horizontal: "center", wrapText: true} + sheet.getColumn(3).alignment = {vertical: "middle", horizontal: "center", wrapText: true} + sheet.getColumn(4).alignment = {vertical: "middle", horizontal: "center", wrapText: true} + sheet.getColumn(5).alignment = {vertical: "middle", horizontal: "center", wrapText: true} + sheet.getColumn(6).alignment = {vertical: "middle", horizontal: "center", wrapText: true} + sheet.getColumn(7).alignment = {vertical: "middle", horizontal: "center", wrapText: true} + sheet.getColumn(8).alignment = {vertical: "middle", horizontal: "center", wrapText: true} + sheet.getColumn(9).alignment = {vertical: "middle", horizontal: "center", wrapText: true} + sheet.getColumn(10).alignment = {vertical: "middle", horizontal: "center", wrapText: true} + sheet.getColumn(11).alignment = {vertical: "middle", horizontal: "center", wrapText: true} + sheet.getColumn(12).alignment = {vertical: "start", horizontal: "start", wrapText: true} + + sheet.getRow(1).alignment = {vertical: "middle", horizontal: "center", wrapText: true} + + //borders + const borderStyle = { + top: {style: 'double', color: {argb: 'FF00FF00'}}, + left: {style: 'double', color: {argb: '000000'}}, + bottom: {style: 'double', color: {argb: '000000'}}, + right: {style: 'double', color: {argb: '000000'}} + } + + sheet.getColumn(1).border = borderStyle + sheet.getColumn(2).border = borderStyle + sheet.getColumn(3).border = borderStyle + sheet.getColumn(4).border = borderStyle + sheet.getColumn(5).border = borderStyle + sheet.getColumn(6).border = borderStyle + sheet.getColumn(7).border = borderStyle + sheet.getColumn(8).border = borderStyle + sheet.getColumn(9).border = borderStyle + sheet.getColumn(10).border = borderStyle + sheet.getColumn(11).border = borderStyle + sheet.getColumn(12).border = borderStyle + + + sheet.getRow(1).border = { + top: {style: 'thin', color: {argb: '000000'}}, + left: {style: 'thin', color: {argb: 'FFFFFF'}}, + bottom: {style: 'thin', color: {argb: '000000'}}, + right: {style: 'thin', color: {argb: 'FFFFFF'}} + } + + } + } +