Comment charger une feuille de calcul en Go

Comment charger une feuille de calcul en Go

Aspose.Cells FOSS pour Go charge un classeur .xlsx existant en mémoire sous forme de Workbook, vous donnant un accès complet à ses feuilles de calcul et cellules via la bibliothèque standard API. Installez le module avec go get avant de commencer.

Guide étape par étape

Étape 1: installer le package

go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26

Vérifiez la version du module dans votre go.mod après l’installation.


Étape 2: importer les classes requises

import (
	cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)

Étape 3: Créer et remplir un classeur à charger

Cet exemple crée d’abord un classeur pour disposer d’un vrai fichier .xlsx à charger — dans votre propre code, remplacez le chemin par une feuille de calcul existante:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Product")
ws.Cells().Set("B1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", 12.99)
wb.Save("outputfiles/products.xlsx")

Étape 4: Lire les valeurs des cellules de la feuille de calcul chargée

Accédez à la première feuille de calcul via Worksheets[0] et lisez les cellules individuelles avec Cells().Get(ref):

wb := cells_foss.NewWorkbook()
wb.Worksheets[0].Cells().Set("B2", 12.99)

ws2 := wb.Worksheets[0]
cell, err := ws2.Cells().Get("B2")
if err != nil {
	fmt.Printf("Error reading cell: %v\n", err)
	return
}
fmt.Printf("Price: %v\n", cell.Value)

Étape 5: Énumérer toutes les cellules remplies

Utilisez Cells().All() lorsque vous devez parcourir chaque cellule qui a été définie, plutôt que de lire les références connues une à une:

wb := cells_foss.NewWorkbook()
ws2 := wb.Worksheets[0]
ws2.Cells().Set("A1", "Product")

allCells := ws2.Cells().All()
for ref, c := range allCells {
	fmt.Printf("%s = %v\n", ref, c.Value)
}

Problèmes courants et solutions

Get renvoie une erreur pour une référence de cellule. La référence n’a pas encore été définie dans la collection. Confirmez que la cellule a été écrite avec Set, ou vérifiez le résultat renvoyé error explicitement avant d’utiliser la cellule.

Les valeurs semblent être du mauvais type. Cell.Value reflète le type qui a été passé à Set (string, int, float64, etc.) — inspectez-le avec un type switch si vous devez bifurquer selon le type Go sous-jacent.

Le classeur chargé ne contient aucune donnée sur la feuille attendue. Confirmez que vous indexez la bonne entrée dans Worksheets — un classeur peut contenir plus d’une feuille de calcul, et les données ciblées peuvent ne pas se trouver sur Worksheets[0].

Foire aux questions

Le chargement d’un classeur nécessite-t-il que le fichier original existe toujours sur le disque?

Oui — Workbook lit depuis le chemin de fichier que vous fournissez. Gardez le fichier source accessible pendant toute la durée du chargement.

Puis-je modifier une cellule après le chargement et enregistrer les modifications?

Oui — Cells().Set fonctionne sur un classeur chargé de la même façon que sur un classeur nouvellement créé; appelez Save à nouveau pour écrire vos modifications.

Existe-t-il un moyen d’éviter de charger le fichier entier en mémoire?

Oui — utilisez StreamingReader.ProcessRows pour les gros fichiers où vous devez uniquement lire les lignes séquentiellement plutôt que de charger l’ensemble du classeur.

Voir aussi

 Français