2024-12-11 11:26:42 +00:00
|
|
|
package function
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
2024-12-11 19:59:13 +00:00
|
|
|
"log"
|
|
|
|
|
|
2024-12-11 11:26:42 +00:00
|
|
|
"github.com/xuri/excelize/v2"
|
|
|
|
|
)
|
|
|
|
|
|
2024-12-11 19:59:13 +00:00
|
|
|
func ReadExcel(path string)[]map[string]string {
|
2024-12-11 14:10:03 +00:00
|
|
|
|
|
|
|
|
// var sql []string
|
|
|
|
|
// var pathSite []string
|
|
|
|
|
// var pathBackupSite[]string
|
|
|
|
|
// var pathBackupSiteMysql[]string
|
2024-12-11 19:59:13 +00:00
|
|
|
var headers []string
|
2024-12-11 11:26:42 +00:00
|
|
|
f, err := excelize.OpenFile(path)
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err)
|
2024-12-11 19:59:13 +00:00
|
|
|
return nil
|
2024-12-11 11:26:42 +00:00
|
|
|
}
|
|
|
|
|
defer func() {
|
|
|
|
|
// Close the spreadsheet.
|
|
|
|
|
if err := f.Close(); err != nil {
|
|
|
|
|
fmt.Println(err)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
// Get value from cell by given worksheet name and cell reference.
|
|
|
|
|
cell, err := f.GetCellValue("julien", "A2")
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err)
|
2024-12-11 19:59:13 +00:00
|
|
|
return nil
|
2024-12-11 11:26:42 +00:00
|
|
|
}
|
2024-12-11 14:10:03 +00:00
|
|
|
fmt.Println("-------------------------------------")
|
2024-12-11 11:26:42 +00:00
|
|
|
fmt.Println(cell)
|
2024-12-11 14:10:03 +00:00
|
|
|
fmt.Println("-------------------------------------")
|
2024-12-11 11:26:42 +00:00
|
|
|
// Get all the rows in the Sheet1.
|
2024-12-11 19:59:13 +00:00
|
|
|
// Nom de la feuille
|
|
|
|
|
sheetName := "julien"
|
|
|
|
|
|
|
|
|
|
// Obtenir toutes les lignes
|
|
|
|
|
rows, err := f.GetRows(sheetName)
|
2024-12-11 11:26:42 +00:00
|
|
|
if err != nil {
|
2024-12-11 19:59:13 +00:00
|
|
|
log.Fatalf("Erreur lors de la lecture des lignes: %v", err)
|
2024-12-11 11:26:42 +00:00
|
|
|
}
|
2024-12-11 19:59:13 +00:00
|
|
|
|
|
|
|
|
// 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)
|
2024-12-11 11:26:42 +00:00
|
|
|
}
|
2024-12-11 19:59:13 +00:00
|
|
|
return data
|
2024-12-11 11:26:42 +00:00
|
|
|
}
|