golang_pvnet/function/main.go

75 lines
1.6 KiB
Go

package function
import (
"fmt"
"log"
"github.com/xuri/excelize/v2"
)
func ReadExcel(path 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)
}
}()
// Get value from cell by given worksheet name and cell reference.
cell, err := f.GetCellValue("julien", "A2")
if err != nil {
fmt.Println(err)
return nil
}
fmt.Println("-------------------------------------")
fmt.Println(cell)
fmt.Println("-------------------------------------")
// Get all the rows in the Sheet1.
// Nom de la feuille
sheetName := "julien"
// 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
}