From f9b6be710402fa55eef9c021dcbe9538330b9706 Mon Sep 17 00:00:00 2001 From: "b.razafimandimbihery" Date: Fri, 30 May 2025 10:50:02 +0300 Subject: [PATCH] maj excel --- lib/Views/HandleProduct.dart | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/lib/Views/HandleProduct.dart b/lib/Views/HandleProduct.dart index f2af6af..d069d3e 100644 --- a/lib/Views/HandleProduct.dart +++ b/lib/Views/HandleProduct.dart @@ -103,13 +103,16 @@ void _showExcelCompatibilityError() { Future _downloadExcelTemplate() async { try { + // Créez un nouveau fichier Excel final excel = Excel.createExcel(); + + // Supprimez la feuille par défaut si elle existe excel.delete('Sheet1'); - excel.copy('Sheet1', 'Produits'); - excel.delete('Sheet1'); - + + // Créez une nouvelle feuille nommée "Produits" final sheet = excel['Produits']; - + + // Ajoutez les en-têtes final headers = ['Nom', 'Prix', 'Catégorie', 'Description', 'Stock']; for (int i = 0; i < headers.length; i++) { final cell = sheet.cell(CellIndex.indexByColumnRow(columnIndex: i, rowIndex: 0)); @@ -119,45 +122,50 @@ Future _downloadExcelTemplate() async { backgroundColorHex: '#E8F4FD', ); } - + + // Ajoutez des exemples de données final examples = [ ['Croissant', '1.50', 'Sucré', 'Délicieux croissant beurré', '20'], ['Sandwich jambon', '4.00', 'Salé', 'Sandwich fait maison', '15'], ['Jus d\'orange', '2.50', 'Jus', 'Jus d\'orange frais', '30'], ['Gâteau chocolat', '18.00', 'Gateaux', 'Gâteau au chocolat portion 8 personnes', '5'], ]; - + for (int row = 0; row < examples.length; row++) { for (int col = 0; col < examples[row].length; col++) { final cell = sheet.cell(CellIndex.indexByColumnRow(columnIndex: col, rowIndex: row + 1)); cell.value = examples[row][col]; } } - + + // Définissez la largeur des colonnes sheet.setColWidth(0, 20); - sheet.setColWidth(1, 10); + sheet.setColWidth(1, 10); sheet.setColWidth(2, 15); sheet.setColWidth(3, 30); sheet.setColWidth(4, 10); - + + // Sauvegardez le fichier Excel final bytes = excel.save(); - + if (bytes == null) { Get.snackbar('Erreur', 'Impossible de créer le fichier modèle'); return; } - + + // Demandez à l'utilisateur où sauvegarder le fichier final String? outputFile = await FilePicker.platform.saveFile( fileName: 'modele_import_produits.xlsx', allowedExtensions: ['xlsx'], type: FileType.custom, ); - + if (outputFile != null) { try { + // Écrivez les données dans le fichier await File(outputFile).writeAsBytes(bytes); Get.snackbar( - 'Succès', + 'Succès', 'Modèle téléchargé avec succès\n$outputFile', duration: const Duration(seconds: 4), backgroundColor: Colors.green, @@ -173,6 +181,7 @@ Future _downloadExcelTemplate() async { } } + Future _importFromExcel() async { try { final result = await FilePicker.platform.pickFiles(