diff --git a/packages/common/business_components/src/ui/excel/excelStyle.tsx b/packages/common/business_components/src/ui/excel/excelStyle.tsx index 1319aad82..221e1387c 100644 --- a/packages/common/business_components/src/ui/excel/excelStyle.tsx +++ b/packages/common/business_components/src/ui/excel/excelStyle.tsx @@ -53,7 +53,8 @@ export const excelArrayStyle = async (data: ArrayBuffer, range: SheetParameter[] if (item.data && item.data.length > 0) { const numCols = item.data[0]?.length || 0; const numRows = item.data.length; - const dataRange = workbook.activeSheet(index)?.sheet(index)?.range(`A1:${String.fromCharCode(65 + numCols - 1)}${numRows}`); + const lastColLetter = getExcelColumnLetter(numCols); + const dataRange = workbook.activeSheet(index)?.sheet(index)?.range(`A1:${lastColLetter}${numRows}`); dataRange?.style((styleQ) => { styleQ.verticalAlignment("center"); }); @@ -106,4 +107,16 @@ export const excelStyleWithKoreanHeaders = async ( // 4. 파일 다운로드 await makeExcelFile(workbook, fileNm); -}; \ No newline at end of file +}; + + +const getExcelColumnLetter = (colIndex: number): string => { + let letter = ''; + while (colIndex > 0) { + const mod = (colIndex - 1) % 26; + letter = String.fromCharCode(65 + mod) + letter; + colIndex = Math.floor((colIndex - 1) / 26); + } + return letter; + }; +