엑셀 열짤려서 업로드 되는거랑 다운로드시 카테고리 두개이상이면 코드로 나오던거 수정했습니당

This commit is contained in:
leeheejin
2026-01-21 09:25:21 +09:00
parent 7039cca1cf
commit a55115ac48
3 changed files with 62 additions and 14 deletions

View File

@@ -4737,7 +4737,24 @@ export class ButtonActionExecutor {
const filteredRow: Record<string, any> = {};
visibleColumns!.forEach((columnName: string) => {
const label = columnLabels?.[columnName] || columnName;
filteredRow[label] = row[columnName];
let value = row[columnName];
// 카테고리 코드를 라벨로 변환 (CATEGORY_로 시작하는 값)
if (value && typeof value === "string" && value.includes("CATEGORY_")) {
// 먼저 _label 필드 확인 (API에서 제공하는 경우)
const labelFieldName = `${columnName}_label`;
if (row[labelFieldName]) {
value = row[labelFieldName];
} else {
// _value_label 필드 확인
const valueLabelFieldName = `${columnName}_value_label`;
if (row[valueLabelFieldName]) {
value = row[valueLabelFieldName];
}
}
}
filteredRow[label] = value;
});
return filteredRow;
});
@@ -5010,8 +5027,15 @@ export class ButtonActionExecutor {
value = row[`${columnName}_name`];
}
// 카테고리 타입 필드는 라벨로 변환 (백엔드에서 정의된 컬럼만)
else if (categoryMap[columnName] && typeof value === "string" && categoryMap[columnName][value]) {
value = categoryMap[columnName][value];
else if (categoryMap[columnName] && typeof value === "string") {
// 쉼표로 구분된 다중 값 처리
if (value.includes(",")) {
const values = value.split(",").map((v) => v.trim()).filter((v) => v);
const labels = values.map((v) => categoryMap[columnName][v] || v);
value = labels.join(", ");
} else if (categoryMap[columnName][value]) {
value = categoryMap[columnName][value];
}
}
filteredRow[label] = value;

View File

@@ -116,8 +116,10 @@ export async function importFromExcel(
return;
}
// JSON으로 변환
const jsonData = XLSX.utils.sheet_to_json(worksheet);
// JSON으로 변환 (빈 셀도 포함하여 모든 컬럼 키 유지)
const jsonData = XLSX.utils.sheet_to_json(worksheet, {
defval: "", // 빈 셀에 빈 문자열 할당
});
console.log("✅ 엑셀 가져오기 완료:", {
sheetName: targetSheetName,