Actualiser Readme.md
This commit is contained in:
parent
ec0123dfbd
commit
2ea5ff9a9c
84
Readme.md
84
Readme.md
|
@ -0,0 +1,84 @@
|
|||
# 📦 Import CSV & Excel Service (Symfony)
|
||||
|
||||
Un service Symfony modulaire pour importer, valider et transformer automatiquement des fichiers **CSV** et **Excel** (XLS/XLSX). Idéal pour les pipelines d'importation robustes avec gestion des erreurs et validation dynamique.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
Ajoutez ce package via Composer :
|
||||
|
||||
```bash
|
||||
composer require ton-vendor/import-csv-service
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📂 Fonctionnalités
|
||||
|
||||
- ✅ Import de fichiers `.csv`, `.xls`, `.xlsx`
|
||||
- ⚖️ Validation dynamique des colonnes avec regex
|
||||
- 📊 Log des erreurs via le logger Symfony (PSR-3)
|
||||
- 📃 Colonne obligatoire supportée
|
||||
- ⚙️ Architecture extensible via des `Processor`
|
||||
- 🔄 Conversion automatique des `.xls` vers `.xlsx`
|
||||
- ❌ Suppression des colonnes vides pour éviter les erreurs de duplicat
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Utilisation
|
||||
|
||||
Voici un exemple typique dans votre contrôleur ou service d'importation :
|
||||
|
||||
```php
|
||||
if (strtolower(pathinfo($filePath, PATHINFO_EXTENSION)) === 'xlsx' || strtolower(pathinfo($filePath, PATHINFO_EXTENSION)) === 'xls') {
|
||||
$filePath = $excelTransformer->transform($filePath, 'Csv', 3); // 3 correspond à la ligne d'entête
|
||||
}
|
||||
|
||||
$result = $importService->import(
|
||||
$filePath,
|
||||
$this->HeaderGeneral,
|
||||
$this->regexListe,
|
||||
$this->ColonneObligatoire,
|
||||
$logger
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Configuration attendue
|
||||
|
||||
- `$HeaderGeneral` : tableau des en-têtes attendues (ordre et contenu exact)
|
||||
- `$regexListe` : tableau associatif `colonne => regex`
|
||||
- `$ColonneObligatoire` : tableau contenant les noms de colonnes obligatoires
|
||||
|
||||
---
|
||||
|
||||
## 🚫 Gestion des erreurs
|
||||
|
||||
Les erreurs de validation sont automatiquement loggées via `LoggingErrorHandler` qui utilise le logger PSR-3 de Symfony.
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Transformations Excel
|
||||
|
||||
Géré via `ExcelFileTransformer` :
|
||||
- Conversion `.xls` → `.xlsx`
|
||||
- Extraction des données via `Box\Spout`
|
||||
- Ignorer les lignes pré-étêtées via `$headerPosition`
|
||||
- Formatage des dates
|
||||
|
||||
---
|
||||
|
||||
## 🎓 Exigences
|
||||
|
||||
- PHP >= 8.1
|
||||
- Symfony >= 5.4
|
||||
- Extensions PHP : `ext-fileinfo`, `ext-mbstring`
|
||||
|
||||
---
|
||||
|
||||
## 📄 License
|
||||
|
||||
MIT — Faites-vous plaisir ✨
|
||||
|
Loading…
Reference in New Issue