Aperçu des fonctionnalités
Aperçu des fonctionnalités
Aspose.Cells FOSS for Go’s API se concentre sur Workbook, Worksheet, Cells et Cell. Ce guide explore les autres capacités de la bibliothèque : le style, la validation des données, les tableaux, les images et la lecture en flux pour les gros fichiers.
Style de cellule
Regroupez les paramètres Font, Fill, Alignment et Border dans un Style réutilisable, puis appliquez-le à une cellule avec Cell.SetStyle :
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12
highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
Type: cells_foss.FillTypeSolid,
Color: "FF4472C4",
}
cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)Alignment contrôle Horizontal, Vertical et WrapText; Border contrôle la visibilité des règles Top, Bottom, Left et Right ainsi que Color.
Validation des données
Worksheet.AddDataValidation attache une règle de validation à une plage de cellules. La structure DataValidation transporte la règle Type, une ou deux valeurs Formula, ainsi que les champs de message d’erreur:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
dv := &cells_foss.DataValidation{
Type: cells_foss.DataValidationTypeList,
Formula1: `"Apple,Banana,Cherry,Dragonfruit"`,
AllowBlank: true,
ShowErrorMessage: true,
ErrorTitle: "Invalid Fruit",
ErrorMessage: "Please pick a fruit from the list.",
ErrorStyle: cells_foss.ErrorStyleStop,
}
ws.AddDataValidation("A2:A10", dv)Une validation de plage d’entiers utilise DataValidationTypeWhole avec Formula1/Formula2 comme limites inférieure et supérieure.
Tableaux
Worksheet.AddTable crée un Table structuré sur une plage, avec une ligne d’en-tête facultative et un style de tableau nommé:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"Récupérez un tableau existant par son nom avec Worksheet.GetTable(name).
Images
Worksheet.AddPicture intègre une image; Picture.SetAnchor(row, col) la positionne:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use
pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)Diffusion en continu de gros fichiers
StreamingReader lit une feuille de calcul ligne par ligne via un rappel, de sorte qu’un classeur de plusieurs milliers de lignes n’a jamais besoin d’être entièrement chargé en mémoire:
path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
// process one row at a time
return nil
})
if err != nil {
fmt.Printf("Error streaming: %v\n", err)
}Conseils et meilleures pratiques
- Utilisez
StreamingReaderau lieu d’un chargement completWorkbooklorsqu’un fichier peut contenir des milliers de lignes et que vous avez seulement besoin de le lire, pas de le modifier. - Créez un
Styleune fois et réutilisez-le sur de nombreuses cellules plutôt que d’en créer un nouveau pour chaque cellule. Cell.SetFormulastocke une chaîne de formule telle quelle — elle est évaluée par Excel ou LibreOffice à l’ouverture, pas par la bibliothèque au moment de l’enregistrement.- Vérifiez la valeur de retour
errordeSave,AddDataValidationet des appels d’import/export CSV — les I/O de feuilles de calcul peuvent échouer en cas de chemins invalides ou d’entrées malformées.
Problèmes courants
| Issue | Cause | Correction |
|---|---|---|
Valeur de cellule non visible après Set | Référence à la mauvaise feuille ou référence de cellule hors limites | Confirmez l’index Worksheet et que la référence de style A1 correspond à la cellule prévue |
| La formule s’affiche en texte brut au lieu d’être calculée | La bibliothèque ne fait que stocker la chaîne de formule ; elle n’évalue pas les formules | Ouvrez le fichier dans Excel ou LibreOffice, qui effectuent le calcul à l’ouverture |
| Validation des données non visible dans Excel | La validation a été ajoutée à une plage qui n’inclut pas la cellule cible | Confirmez que la chaîne de plage (p. ex. "A2:A10") couvre les cellules que vous souhaitez valider |
FAQ
La bibliothèque évalue-t-elle les formules elle-même?
No. Cell.SetFormula/GetFormula stockent une chaîne de formule qu’Excel ou LibreOffice évalue lorsque le fichier est ouvert.
Puis-je stream-write de grands classeurs, et pas seulement les stream-read ?
StreamingReader couvre les lectures en streaming. L’écriture de grands classeurs passe actuellement par le standard en mémoire Workbook/Worksheet API.
Est-ce que AddTable applique automatiquement un auto-filter ?
Cela n’est pas confirmé dans la surface actuelle de API — seuls HasHeaderRow et StyleName sont documentés comme champs Table. Vérifiez le fichier .xlsx généré si cela importe pour votre cas d’utilisation.
API Reference Résumé
| Classe / Méthode | Description |
|---|---|
Workbook.NewWorkbook / Save | Créer et enregistrer un classeur |
Worksheet.Cells | Accéder à la collection de cellules d’une feuille de calcul |
Cells.Get / Set / Remove / All | Lire, écrire, supprimer et énumérer les cellules |
Cell.SetStyle / SetFormula / GetFormula | Appliquer la mise en forme et les formules à une cellule |
Style, Font, Fill, Alignment, Border | Composer une mise en forme de cellule réutilisable |
Worksheet.AddDataValidation | Attacher une règle de validation à une plage de cellules |
Worksheet.AddTable / GetTable | Créer et récupérer des plages de tableau structurées |
Worksheet.AddPicture / Picture.SetAnchor(row, col) | Intégrer et positionner des images |
StreamingReader.ProcessRows | Diffuser une feuille de calcul ligne par ligne |
Workbook.ExportToCSV / ImportFromCSV | Convertir entre XLSX et CSV |
Workbook.SetPassword / VerifyPassword | Protéger et vérifier le mot de passe d’un classeur |