golang_pvnet/function/main.go

75 lines
1.6 KiB
Go
Raw Normal View History

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
}