118 lines
3.9 KiB
Markdown
118 lines
3.9 KiB
Markdown
# Excel to Access Migration Tool
|
||
|
||
Инструмент для миграции данных из Excel файлов в Microsoft Access базу данных с использованием Java 24 и UCanAccess.
|
||
|
||
## Возможности
|
||
|
||
- Графический интерфейс для выбора файлов Excel и Access
|
||
- Конфигурационный файл JSON для настройки маппинга колонок
|
||
- Поддержка множественных листов Excel
|
||
- Автоматическое создание таблиц в Access
|
||
- Пакетная вставка данных для повышения производительности
|
||
- Логирование процесса миграции
|
||
|
||
## Требования
|
||
|
||
- Java 24
|
||
- Maven 3.6+
|
||
- Microsoft Access база данных (.accdb или .mdb)
|
||
|
||
## Установка и запуск
|
||
|
||
1. Клонируйте репозиторий или скачайте проект
|
||
2. Убедитесь, что у вас установлена Java 24
|
||
3. Выполните команды:
|
||
|
||
```bash
|
||
# Сборка проекта
|
||
mvn clean compile
|
||
|
||
# Запуск приложения
|
||
mvn javafx:run
|
||
```
|
||
|
||
## Конфигурация
|
||
|
||
Создайте файл конфигурации `mapping-config.json` в корне проекта или укажите путь к нему в UI:
|
||
|
||
```json
|
||
{
|
||
"database": {
|
||
"accessFilePath": "path/to/your/database.accdb",
|
||
"connectionString": "jdbc:ucanaccess://path/to/your/database.accdb"
|
||
},
|
||
"mappings": [
|
||
{
|
||
"excelSheet": "Sheet1",
|
||
"accessTable": "Table1",
|
||
"columnMappings": [
|
||
{
|
||
"excelColumn": "A",
|
||
"accessColumn": "ID",
|
||
"dataType": "INTEGER"
|
||
},
|
||
{
|
||
"excelColumn": "B",
|
||
"accessColumn": "Name",
|
||
"dataType": "VARCHAR"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"settings": {
|
||
"skipEmptyRows": true,
|
||
"skipHeaderRow": true,
|
||
"batchSize": 1000,
|
||
"createTableIfNotExists": true
|
||
}
|
||
}
|
||
```
|
||
|
||
## Использование
|
||
|
||
1. Запустите приложение
|
||
2. Выберите Excel файл для миграции
|
||
3. Выберите Access базу данных
|
||
4. Выберите файл конфигурации
|
||
5. Нажмите "Start Migration"
|
||
|
||
## Поддерживаемые типы данных
|
||
|
||
- `INTEGER` - целые числа
|
||
- `DECIMAL`/`DOUBLE`/`FLOAT` - числа с плавающей точкой
|
||
- `VARCHAR`/`STRING`/`TEXT` - текстовые данные
|
||
- `BOOLEAN`/`BOOL` - логические значения
|
||
- `DATE` - даты
|
||
|
||
## Логирование
|
||
|
||
Логи сохраняются в папке `logs/` и отображаются в UI приложения.
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
src/main/java/com/excelaccess/
|
||
├── MainApplication.java # Главный класс приложения
|
||
├── controller/
|
||
│ └── MainController.java # Контроллер UI
|
||
├── model/ # Модели данных
|
||
│ ├── MappingConfig.java
|
||
│ ├── DatabaseConfig.java
|
||
│ ├── SheetMapping.java
|
||
│ ├── ColumnMapping.java
|
||
│ └── MigrationSettings.java
|
||
└── service/ # Сервисы
|
||
├── ExcelService.java # Работа с Excel
|
||
├── AccessService.java # Работа с Access
|
||
├── ConfigService.java # Загрузка конфигурации
|
||
└── MigrationService.java # Основной сервис миграции
|
||
```
|
||
|
||
## Зависимости
|
||
|
||
- **UCanAccess** - для работы с Access базами данных
|
||
- **Apache POI** - для чтения Excel файлов
|
||
- **Jackson** - для работы с JSON конфигурацией
|
||
- **JavaFX** - для графического интерфейса
|
||
- **SLF4J + Logback** - для логирования
|