- 이전 잘 작동하던 코드 로직을 현재 프로세서에 적용 - LuckyExcel 우선 시도 + SheetJS Fallback 패턴 도입 - CSV, XLS, XLSX 모든 형식에 대한 안정적 처리 - 한글 시트명 정규화 및 워크북 구조 검증 강화 - 복잡한 SheetJS 옵션 단순화로 안정성 향상 - 에러 발생 시 빈 시트 생성으로 앱 중단 방지 - 테스트 환경 및 Cursor 규칙 업데이트 Technical improvements: - convertSheetJSToLuckyExcel 함수로 안정적 데이터 변환 - UTF-8 codepage 설정으로 한글 지원 강화 - validateWorkbook 함수로 방어적 프로그래밍 적용
64 lines
1.2 KiB
TypeScript
64 lines
1.2 KiB
TypeScript
/// <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,
|
|
};
|
|
}
|