From 400d6cf7320c654fde469630961256be9af268c7 Mon Sep 17 00:00:00 2001 From: jsyang Date: Tue, 23 Sep 2025 11:07:23 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=91=EC=85=80=20=EC=88=AB=EC=9E=90?= =?UTF-8?q?=ED=98=95=EC=8B=9D=20=EB=8B=A4=EC=9A=B4=EB=A1=9C=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ui/excel/index.tsx | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/packages/common/business_components/src/ui/excel/index.tsx b/packages/common/business_components/src/ui/excel/index.tsx index cbe77293b..1e4626440 100644 --- a/packages/common/business_components/src/ui/excel/index.tsx +++ b/packages/common/business_components/src/ui/excel/index.tsx @@ -6,6 +6,9 @@ type ExcelDownloadProps = { fileName: string; sheetNameArray: string[]; headerRange?: string; + decimalArray1? : number[]; + decimalArray2? : number[]; + decimalArray3? : number[]; } export const downloadExcel = ({ data, fileName = new Date().getTime().toString() + '.xlsx', sheetNameArray = ["Sheet1"], headerRange='A1:V3'}: ExcelDownloadProps) => { @@ -15,6 +18,43 @@ export const downloadExcel = ({ data, fileName = new Date().getTime().toString() excelStyle(XLSX.write(workbook, { bookType: "xlsx", type: "buffer" }), headerRange, fileName); }; +export const downloadExcelFormat = ({ data, fileName = new Date().getTime().toString() + '.xlsx', sheetNameArray = ["Sheet1"], headerRange='A1:V3', decimalArray1=[], decimalArray2=[], decimalArray3=[]}: ExcelDownloadProps) => { + const worksheet = XLSX.utils.json_to_sheet(Array.isArray(data) ? data : [data]); + const workbook = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(workbook, worksheet, sheetNameArray[0]); + + const headerEnd = XLSX.utils.decode_range(headerRange).e.r; // 0-based index + const startRow = headerEnd + 1; + + // 🔹 전체 범위 + const range = XLSX.utils.decode_range(worksheet["!ref"] as string); + + const chaneValue = (array: number[], decimal: number) => { + for (let row = startRow; row <= range.e.r; row++) { + if(array.length>0){ + for(let idx=0; idx