feat: 파일프로세서 개선 - 안정적인 Excel 파일 처리
- 이전 잘 작동하던 코드 로직을 현재 프로세서에 적용 - LuckyExcel 우선 시도 + SheetJS Fallback 패턴 도입 - CSV, XLS, XLSX 모든 형식에 대한 안정적 처리 - 한글 시트명 정규화 및 워크북 구조 검증 강화 - 복잡한 SheetJS 옵션 단순화로 안정성 향상 - 에러 발생 시 빈 시트 생성으로 앱 중단 방지 - 테스트 환경 및 Cursor 규칙 업데이트 Technical improvements: - convertSheetJSToLuckyExcel 함수로 안정적 데이터 변환 - UTF-8 codepage 설정으로 한글 지원 강화 - validateWorkbook 함수로 방어적 프로그래밍 적용
This commit is contained in:
62
src/vite-env.d.ts
vendored
62
src/vite-env.d.ts
vendored
@@ -1 +1,63 @@
|
||||
/// <reference types="vite/client" />
|
||||
|
||||
/**
|
||||
* LuckyExcel 타입 선언
|
||||
*/
|
||||
declare module "luckyexcel" {
|
||||
interface LuckyExcelOptions {
|
||||
container?: string;
|
||||
title?: string;
|
||||
lang?: string;
|
||||
data?: any[];
|
||||
options?: {
|
||||
showtoolbar?: boolean;
|
||||
showinfobar?: boolean;
|
||||
showsheetbar?: boolean;
|
||||
showstatisticBar?: boolean;
|
||||
allowCopy?: boolean;
|
||||
allowEdit?: boolean;
|
||||
enableAddRow?: boolean;
|
||||
enableAddCol?: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
interface LuckySheetData {
|
||||
name: string;
|
||||
index: string;
|
||||
celldata: any[];
|
||||
status: number;
|
||||
order: number;
|
||||
row: number;
|
||||
column: number;
|
||||
}
|
||||
|
||||
interface LuckyExcelResult {
|
||||
sheets: Array<{
|
||||
name: string;
|
||||
row: number;
|
||||
column: number;
|
||||
celldata: Array<{
|
||||
r: number;
|
||||
c: number;
|
||||
v: {
|
||||
v: any;
|
||||
m: string;
|
||||
ct?: any;
|
||||
};
|
||||
}>;
|
||||
}>;
|
||||
}
|
||||
|
||||
function transformExcelToLucky(
|
||||
arrayBuffer: ArrayBuffer,
|
||||
fileName: string,
|
||||
callback: (exportJson: LuckyExcelResult, luckysheetfile: any) => void,
|
||||
): void;
|
||||
|
||||
export {
|
||||
transformExcelToLucky,
|
||||
LuckyExcelOptions,
|
||||
LuckySheetData,
|
||||
LuckyExcelResult,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user