Cell (Cellule)
Le RichTextRun
définit les propriétés du texte enrichi.
type RichTextRun struct {
Font *Font
Text string
}
Le HyperlinkOpts
est utilisé pour spécifier les propriétés optionnelles des hyperliens, telles que le texte d'affichage et l'infobulle.
type HyperlinkOpts struct {
Display *string
Tooltip *string
}
Le FormulaOpts
est utilisé pour spécifier des types de formules spéciales dans la fonction SetCellFormula
.
type FormulaOpts struct {
Type *string // type de formule
Ref *string // référence de formule partagée
}
Définir la valeur d'une cellule
func (f *File) SetCellValue(sheet, cell string, value interface{}) error
Définit la valeur d'une cellule en fonction du nom de la feuille donnée et des coordonnées de la cellule. Cette fonction est sûre pour les goroutines. Les coordonnées spécifiées ne doivent pas être dans la première ligne du tableau, et des caractères au pluriel doivent être utilisés pour le paramétrage du texte.
Types de données pris en charge |
---|
int |
int8 |
int16 |
int32 |
int64 |
uint |
uint8 |
uint16 |
uint32 |
uint64 |
float32 |
float64 |
string |
[]byte |
time.Duration |
time.Time |
bool |
nil |
Veuillez noter que cette fonction définit la valeur d'une cellule de type time.Time
avec le format de nombre m/d/yy h:mm
par défaut, et vous pouvez modifier ce paramètre en utilisant SetCellStyle
. Si vous avez besoin de définir des dates Excel spéciales qui ne peuvent pas être représentées par le type time.Time
du langage Go, telles que le 0 janvier 1900 ou le 29 février 1900, définissez la valeur de la cellule à 0 ou 60, puis définissez-la avec un style ayant un format de nombre de date.
Définir une valeur booléenne
func (f *File) SetCellBool(sheet, cell string, value bool) error
Définit la valeur d'une cellule booléenne en fonction du nom de la feuille donnée et des coordonnées de la cellule.
Définir la valeur par défaut d'une chaîne de caractères
func (f *File) SetCellDefault(sheet, cell, value string) error
Définit la valeur d'une cellule de chaîne de caractères en fonction du nom de la feuille donnée et des coordonnées de la cellule, et les caractères ne seront pas soumis à un filtrage de caractères spéciaux.
Définir un entier
func (f *File) SetCellInt(sheet, cell string, value int) error
Définit la valeur d'une cellule d'entier en fonction du nom de la feuille donnée et des coordonnées de la cellule.
Définir un flottant
func (f *File) SetCellFloat(sheet, cell string, value float64, precision, bitSize int) error
Définit la valeur d'une cellule de flottant en fonction du nom de la feuille donnée, des coordonnées de la cellule, de la valeur de flottant, de la précision de la partie fractionnaire du flottant et du type de flottant.
Définir une valeur de chaîne de caractères
func (f *File) SetCellStr(sheet, cell, value string) error
Définit la valeur d'une cellule de chaîne de caractères en fonction du nom de la feuille donnée et des coordonnées de la cellule, les caractères seront soumis à un filtrage de caractères spéciaux, et la longueur cumulée de la chaîne ne doit pas dépasser 32767
, tout caractère excédentaire sera ignoré.
Définir le style de cellule
func (f *File) SetCellStyle(sheet, hCell, vCell string, styleID int) error
Définissez la valeur d'une cellule en fonction du nom de la feuille, des coordonnées de la cellule et de l'indice de style donnés. Cette fonction est thread-safe. L'indice de style peut être obtenu via la fonction NewStyle
. Notez que les attributs diagonalDown
et diagonalUp
dans la même zone de coordonnées doivent maintenir des couleurs cohérentes. SetCellStyle
remplacera le style existant de la cellule sans empiler ou fusionner les styles.
- Exemple 1 : Définir le style de bordure pour la cellule
D7
dans la feuille nomméeSheet1
:
style, err := f.NewStyle(&excelize.Style{
Border: []excelize.Border{
{Type: "left", Color: "0000FF", Style: 3},
{Type: "top", Color: "00FF00", Style: 4},
{Type: "bottom", Color: "FFFF00", Style: 5},
{Type: "right", Color: "FF0000", Style: 6},
{Type: "diagonalDown", Color: "A020F0", Style: 8},
{Type: "diagonalUp", Color: "A020F0", Style: 8},
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
Les quatre bordures de la cellule D7
sont définies avec différents styles et couleurs, qui sont liés aux paramètres transmis à la fonction NewStyle
. Pour définir différents styles, veuillez vous référer à la documentation dans ce chapitre.
- Exemple 2 : Définir le style de dégradé pour la cellule
D7
dans la feuille nomméeSheet1
:
style, err := f.NewStyle(&excelize.Style{
Fill: excelize.Fill{Type: "gradient", Color: []string{"FFFFFF", "E0EBF5"}, Shading: 1},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
La cellule D7
est remplie de couleurs en dégradé, qui sont liées aux paramètres transmis à la fonction NewStyle
. Pour définir différents styles, veuillez vous référer à la documentation dans ce chapitre.
- Exemple 3 : Définir le remplissage de couleur unie pour la cellule
D7
dans la feuille nomméeSheet1
:
style, err := f.NewStyle(&excelize.Style{
Fill: excelize.Fill{Type: "pattern", Color: []string{"E0EBF5"}, Pattern: 1},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
La cellule D7
est remplie d'une couleur unie.
- Exemple 4 : Définir l'espacement des caractères et l'angle de rotation pour la cellule
D7
dans la feuille nomméeSheet1
:
f.SetCellValue("Sheet1", "D7", "Style")
style, err := f.NewStyle(&excelize.Style{
Alignment: &excelize.Alignment{
Horizontal: "center",
Indent: 1,
JustifyLastLine: true,
ReadingOrder: 0,
RelativeIndent: 1,
ShrinkToFit: true,
TextRotation: 45,
Vertical: "",
WrapText: true,
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
- Exemple 5 : Les dates et heures dans Excel sont représentées par des nombres réels, par exemple,
2017/7/4 12:00:00 PM
peut être représenté par le nombre42920.5
. Définissez le format horaire pour la celluleD7
dans la feuille de calcul nomméeFeuille1
:
f.SetCellValue("Feuille1", "D7", 42920.5)
f.SetColWidth("Feuille1", "D", "D", 13)
style, err := f.NewStyle(&excelize.Style{NumFmt: 22})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Feuille1", "D7", "D7", style)
La cellule D7
est définie avec un format horaire. Notez que si la largeur de la cellule est trop étroite pour afficher le contenu complet, il sera affiché en tant que ####
. Vous pouvez ajuster la largeur de la colonne en la faisant glisser ou en appelant la fonction SetColWidth
pour définir la largeur de la colonne à une taille appropriée pour un affichage normal.
- Exemple 6 : Définir la police, la taille de la police, la couleur et le style italique pour la cellule
D7
dans la feuille de calcul nomméeFeuille1
:
f.SetCellValue("Feuille1", "D7", "Excel")
style, err := f.NewStyle(&excelize.Style{
Font: &excelize.Font{
Bold: true,
Italic: true,
Family: "Times New Roman",
Size: 36,
Color: "777777",
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Feuille1", "D7", "D7", style)
- Exemple 7 : Verrouiller et masquer la cellule
D7
dans la feuille de calcul nomméeFeuille1
:
style, err := f.NewStyle(&excelize.Style{
Protection: &excelize.Protection{
Hidden: true,
Locked: true,
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Feuille1", "D7", "D7", style)
Pour verrouiller ou masquer des cellules, protégez la feuille de calcul. Sur l'onglet "Révision", cliquez sur "Protéger la feuille".
func (f *File) SetCellHyperLink(sheet, cell, link, linkType string, opts ...HyperlinkOpts) error
Définissez le lien hypertexte pour une cellule en fonction de la feuille de calcul donnée, des coordonnées de la cellule, de la ressource du lien et du type de ressource. Le type de ressource comprend deux types : adresse de lien externe External
et lien de position interne dans le classeur Location
. Le nombre maximum de liens hypertextes dans chaque feuille de calcul est limité à 65530
. Cette méthode définit uniquement le lien hypertexte pour la cellule sans affecter la valeur de la cellule. Si vous devez définir la valeur de la cellule, veuillez le définir séparément via des fonctions telles que SetCellStyle
ou SetSheetRow
.
- Exemple 1 : Ajouter un lien externe à la cellule
A3
dans la feuille de calcul nomméeFeuille1
:
display, tooltip := "https://github.com/xuri/excelize", "Excelize sur GitHub"
if err := f.SetCellHyperLink("Feuille1", "A3",
"https://github.com/xuri/excelize", "External", excelize.HyperlinkOpts{
Display: &display,
Tooltip: &tooltip,
}); err != nil {
fmt.Println(err)
}
// Définir la police et le style souligné pour la cellule
style, err := f.NewStyle(&excelize.Style{
Font: &excelize.Font{Color: "1265BE", Underline: "single"},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Feuille1", "A3", "A3", style)
- Exemple 2 : Ajouter un lien de position à la cellule
A3
dans la feuille de calcul nomméeFeuille1
:
err := f.SetCellHyperLink("Feuille1", "A3", "Feuille1!A40", "Location")
func (f *File) SetCellRichText(sheet, cell string, runs []RichTextRun) error
Définir le format de texte enrichi pour la cellule spécifiée en fonction de la feuille de calcul, des coordonnées de la cellule et du format de texte riche donnés.
Par exemple, définir le format de texte enrichi pour la cellule A1
dans la feuille de calcul nommée Sheet1
:
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f := excelize.NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
if err := f.SetRowHeight("Sheet1", 1, 35); err != nil {
fmt.Println(err)
return
}
if err := f.SetColWidth("Sheet1", "A", "A", 44); err != nil {
fmt.Println(err)
return
}
if err := f.SetCellRichText("Sheet1", "A1", []excelize.RichTextRun{
{
Text: "gras",
Font: &excelize.Font{
Bold: true,
Color: "2354E8",
Family: "Times New Roman",
},
},
// ... (Autres éléments de texte enrichi)
}); err != nil {
fmt.Println(err)
return
}
// ... (Autres paramètres de style de cellule et sauvegarde)
}
func (f *File) GetCellRichText(sheet, cell string) ([]RichTextRun, error)
Obtenir le format de texte enrichi de la cellule spécifiée en fonction de la feuille de calcul et des coordonnées de la cellule données.
func (f *File) GetCellValue(sheet, cell string, opts ...Options) (string, error)
Obtenir la valeur de la cellule spécifiée en fonction de la feuille de calcul et des coordonnées de la cellule, et la valeur de retour sera convertie en type string
. Si le format de cellule peut être appliqué à la valeur de la cellule, la valeur appliquée sera retournée ; sinon, la valeur d'origine sera retournée. Les valeurs de toutes les cellules à l'intérieur d'une zone fusionnée sont identiques. Cette fonction est sécurisée pour la concurrence.
func (f *File) GetCellType(sheet, cell string) (CellType, error)
Obtenir le type de données de la cellule spécifiée en fonction de la feuille de calcul et des coordonnées de la cellule données.
func (f *File) GetCols(sheet string, opts ...Options) ([][]string, error)
Récupérer les valeurs de toutes les cellules sur la feuille de calcul spécifiée par colonne, et les retourner sous forme d'un tableau bidimensionnel, avec les valeurs de cellule converties en type string
. Si le format de cellule peut être appliqué à la valeur de la cellule, la valeur appliquée sera utilisée ; sinon, la valeur d'origine sera utilisée.
Par exemple, pour récupérer et itérer à travers toutes les valeurs de cellule sur la feuille de calcul nommée Sheet1
par colonne:
cols, err := f.GetCols("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for _, col := range cols {
for _, rowCell := range col {
fmt.Print(rowCell, "\t")
}
fmt.Println()
}
func (f *File) GetRows(sheet string, opts ...Options) ([][]string, error)
Récupérer les valeurs de toutes les cellules sur la feuille de calcul spécifiée par ligne, et les retourner sous forme d'un tableau bidimensionnel, avec les valeurs de cellule converties en type string
. Si le format de cellule peut être appliqué à la valeur de la cellule, la valeur appliquée sera utilisée ; sinon, la valeur d'origine sera utilisée. GetRows
récupère les lignes avec des cellules contenant des valeurs ou des formules. Les cellules vides à la fin d'une ligne seront ignorées, et le nombre de cellules dans chaque ligne peut varier.
Par exemple, pour récupérer et itérer à travers toutes les valeurs de cellule sur la feuille de calcul nommée Sheet1
par ligne:
rows, err := f.GetRows("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
func (f *File) GetCellHyperLink(sheet, cell string) (bool, string, error)
Récupérez l'hyperlien de la cellule spécifiée en fonction de la feuille de calcul et des coordonnées de la cellule données. Si la cellule contient un hyperlien, cela renverra `true` et l'adresse du lien; sinon, cela renverra `false` et une adresse de lien vide.
Par exemple, pour récupérer l'hyperlien de la cellule aux coordonnées `H6` sur la feuille de calcul nommée `Sheet1`:
```go
lien, cible, err := f.GetCellHyperLink("Sheet1", "H6")
func (f *File) GetCellStyle(feuiile, cellule string) (int, error)
Récupère l'index de style de la cellule spécifiée en fonction de la feuille de calcul donnée et des coordonnées de la cellule, et l'index récupéré peut être utilisé en tant que paramètre lors de l'appel de la fonction SetCellStyle
pour définir le style de la cellule.
func (f *File) MergeCell(feuiile, celluleH, celluleV string) error
Fusionnez les cellules dans la région de coordonnées de la feuille de calcul donnée. Seule la valeur de la cellule en haut à gauche de la région fusionnée sera conservée, et les valeurs des autres cellules seront ignorées. Par exemple, fusionnez les cellules dans la région D3:E9
de la feuille de calcul nommée Sheet1
:
err := f.MergeCell("Sheet1", "D3", "E9")
Si la région de coordonnées de cellule donnée chevauche des cellules fusionnées existantes, les cellules fusionnées existantes seront supprimées.
func (f *File) UnmergeCell(feuiile string, celluleH, celluleV string) error
Défusionez les cellules dans la région de coordonnées de la feuille de calcul donnée. Par exemple, défusionnez les cellules dans la région D3:E9
de la feuille de calcul nommée Sheet1
:
err := f.UnmergeCell("Sheet1", "D3", "E9")
Si la région de coordonnées de cellule donnée contient plusieurs cellules fusionnées, toutes les cellules fusionnées seront défusionnées.
Obtenez la région de coordonnées et les valeurs de toutes les cellules fusionnées dans la feuille de calcul donnée.
func (f *File) GetMergeCells(feuiile string) ([]MergeCell, error)
func (m *MergeCell) GetCellValue() string
GetCellValue retourne la valeur de la cellule fusionnée.
func (m *MergeCell) GetStartAxis() string
GetStartAxis renvoie les coordonnées de la cellule en haut à gauche de la région de cellules fusionnées, par exemple, C2
.
func (m *MergeCell) GetEndAxis() string
GetEndAxis renvoie les coordonnées de la cellule en bas à droite de la région de cellules fusionnées, par exemple, D4
.
func (f *File) AddComment(feuiile string, commentaire Commentaire) error
Ajoutez un commentaire à la feuille de calcul donnée, aux coordonnées de cellule et aux paramètres de style (auteur et informations de texte). Les informations de l'auteur ont une longueur maximale de 255 caractères, et la longueur maximale du contenu texte est de 32512 caractères. Les caractères au-delà de cette plage seront ignorés. Par exemple, ajoutez un commentaire à la cellule Sheet1!$A$3
:
err := f.AddComment("Sheet1", excelize.Commentaire{
Cellule: "A3",
Auteur: "Excelize",
Paragraphe: []excelize.RichTextRun{
{Texte: "Excelize: ", Police: &excelize.Police{Gras: true}},
{Texte: "Ceci est un commentaire."},
},
})
func (f *Fichier) GetComments(feuiile string) ([]Commentaire, error)
Obtenez tous les commentaires de cellules dans la feuille de calcul donnée.
func (f *Fichier) DeleteComment(feuiile, cellule string) error
Supprimez le commentaire aux coordonnées de cellule de la feuille de calcul donnée. Par exemple, supprimez le commentaire dans la cellule Sheet1!$A$30
:
err := f.DeleteComment("Sheet1", "A30")