package function

import (
	"fmt"
	"log"

	"github.com/xuri/excelize/v2"
)

func ReadExcel(path string,sheetSelect string)[]map[string]string {

	// var sql []string
	// var pathSite []string
	// var pathBackupSite[]string
	// var pathBackupSiteMysql[]string
	var headers []string
	f, err := excelize.OpenFile(path)
	if err != nil {
		fmt.Println(err)
		return nil
	}
	defer func() {
		// Close the spreadsheet.
		if err := f.Close(); err != nil {
			fmt.Println(err)
		}
	}()

	// Nom de la feuille
	sheetName := sheetSelect

	// Obtenir toutes les lignes
	rows, err := f.GetRows(sheetName)
	if err != nil {
		log.Fatalf("Erreur lors de la lecture des lignes: %v", err)
	}

	// Vérifier qu'il y a des lignes
	if len(rows) == 0 {
		log.Fatal("La feuille est vide ou introuvable")
	}

	// La première ligne est utilisée pour les en-têtes
	headers = rows[0]

	// Tableau pour stocker les données
	var data []map[string]string

	// Parcourir les lignes en ignorant la première
	for _, row := range rows[1:] { // rows[1:] commence à la deuxième ligne
		rowMap := make(map[string]string)
		for i, cell := range row {
			if i < len(headers) {
				rowMap[headers[i]] = cell
			}
		}
		data = append(data, rowMap)
	}

	// Afficher les résultats
	fmt.Println("Données associées :")
	for _, row := range data {
		fmt.Println(row)
	}
	return data
}