Skip to content

Star001-KR/FileConverter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FileConverter

Excel 파일을 JSON 형식으로 변환하고, 데이터 유효성 검사를 수행하는 Python GUI 도구입니다.

📋 주요 기능

  • Excel to JSON 변환: Excel 파일(.xlsx)을 JSON 형식으로 자동 변환
  • TID(Table ID) 자동 생성: 각 데이터 행에 고유한 식별자 자동 부여
  • 데이터 유효성 검사:
    • 키 중복 검사 (Key Duplicate Check)
    • 빈 값 검사 (Empty Value Check)
    • 데이터 타입 검사 (Data Type Check)
    • 유니크 값 검사 (Unique Value Check)
    • 참조 데이터 검사 (Reference Validation)
    • 값 크기 비교 검사 (Value Size Compare)
  • GUI 인터페이스: Tkinter 기반의 사용자 친화적 인터페이스
  • 로깅 시스템: 모든 작업 내역을 로그 파일로 기록
  • 크로스 플랫폼 지원: macOS 및 Windows 지원

📁 프로젝트 구조

FileConverter/
├── Config/
│   ├── config.json           # 변환 설정 (시트명, 컬럼 정보, TID 설정)
│   ├── directory.json        # 디렉토리 경로 설정 (Mac/Windows)
│   ├── guisetting.json       # GUI 설정 (윈도우 크기, 버튼 크기)
│   └── validationconfig.yml  # 유효성 검사 규칙 설정
├── Data/
│   ├── ExcelData/            # 입력 Excel 파일 (.xlsx)
│   └── JsonData/             # 출력 JSON 파일
├── FileConverter/
│   ├── FileConverter.py      # 메인 실행 파일
│   └── Package/
│       ├── Convert/          # 변환 로직
│       ├── Data/             # 설정 및 Excel 데이터 처리
│       ├── Debug/            # 로깅 및 에러 처리
│       ├── Gui/              # GUI 화면 및 기능
│       ├── ValidateCheck/    # 유효성 검사 로직
│       └── directory/        # 디렉토리 관리
└── Logs/                     # 로그 파일 저장

⚙️ 요구사항

  • Python 3.x
  • 필수 라이브러리:
    • openpyxl - Excel 파일 처리
    • PyYAML - YAML 설정 파일 처리
    • tkinter - GUI (Python 기본 포함)

🚀 설치 및 실행

1. 의존성 설치

pip install openpyxl PyYAML

2. 실행

cd FileConverter
python FileConverter.py

📖 사용 방법

GUI 사용

  1. 프로그램 실행 시 메인 화면이 표시됩니다.
  2. Excel List: 변환할 Excel 파일을 선택합니다.
  3. File Convert: 선택한 파일만 JSON으로 변환합니다.
  4. Validate Check: 데이터 유효성 검사만 실행합니다.
  5. Run All: 유효성 검사 후 모든 파일을 변환합니다.

Excel 파일 형식

  • 첫 번째 행(Row 0): 컬럼 이름
  • 두 번째 행(Row 1): 데이터 타입 (int, float, string 등)
  • 세 번째 행부터: 실제 데이터
  • #으로 시작하는 컬럼은 변환에서 제외됩니다.
  • ?로 끝나는 타입은 nullable입니다.
  • !로 끝나는 타입은 유니크 값입니다.

설정 파일

config.json

설정 항목 설명
targetSheetName 대상 시트 이름
columnNameNum 컬럼 이름 행 번호
columnTypeNum 데이터 타입 행 번호
keyColumnName 키 컬럼 이름
tidString TID 컬럼 이름
{
    "excel": {
        "targetSheetName": "Sheet1",
        "columnNameNum": 0,
        "columnTypeNum": 1,
        "keyColumnName": "ID",
        "tidString": "TID"
    }
}

validationconfig.yml

ref_validation:  # 참조 데이터 검증 규칙
    MonsterSpawn.MonsterID: Monster.ID
    
value_size_compare:  # 값 크기 비교 규칙
    FieldObjectGrowth.PhysicDamage_Max: FieldObjectGrowth.PhysicDamage_Min

📝 로그

모든 작업 내역은 Logs/ 디렉토리에 타임스탬프가 포함된 로그 파일로 저장됩니다.

log_2021_11_15_23.20.28.txt

👨‍💻 개발자

  • 김태형 (Tae Hyung Kim) - 2021.12.28

📄 라이센스

이 프로젝트는 개발 중입니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages