first commit
This commit is contained in:
117
README.md
Normal file
117
README.md
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
# 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** - для логирования
|
||||||
Reference in New Issue
Block a user