Classeur

Options définit les options de lecture et d'écriture des feuilles de calcul.

type Options struct {
    MaxCalcIterations uint
    Password          string
    RawCellValue      bool
    UnzipSizeLimit    int64
    UnzipXMLSizeLimit int64
    ShortDatePattern  string
    LongDatePattern   string
    LongTimePattern   string
    CultureInfo       CultureName
}

MaxCalcIterations est utilisé pour spécifier le nombre maximal d'itérations lors du calcul des formules, avec une valeur par défaut de 0.

Password est utilisé pour spécifier le mot de passe d'ouverture et d'enregistrement du classeur en texte brut, avec une valeur par défaut vide.

RawCellValue est utilisé pour spécifier si l'on doit récupérer la valeur brute lors de la lecture des valeurs des cellules, avec une valeur par défaut de false (application du format numérique).

UnzipSizeLimit est utilisé pour spécifier la limite de taille (en octets) pour la décompression lors de l'ouverture d'un document de feuille de calcul, qui doit être supérieure ou égale à UnzipXMLSizeLimit, avec une limite par défaut de 16 Go.

UnzipXMLSizeLimit est utilisé pour spécifier la limite de mémoire (en octets) lors de la décompression de chaque feuille de calcul et du tableau de chaînes partagées, et lorsque la taille dépasse cette valeur, le fichier XML de la feuille de calcul sera décompressé dans le répertoire temporaire du système. Cette valeur doit être inférieure ou égale à UnzipSizeLimit, avec une limite par défaut de 16 Mo.

ShortDatePattern est utilisé pour spécifier le code de format numérique de la date courte.

LongDatePattern est utilisé pour spécifier le code de format numérique de la date longue.

LongTimePattern est utilisé pour spécifier le code de format numérique de l'heure longue.

CultureInfo est utilisé pour spécifier le format régional, qui sera utilisé lors de la lecture des formats numériques influencés par les paramètres régionaux de date et d'heure spécifiques.

Créer

func NewFile(opts ...Options) *File

Utilisez NewFile pour créer un nouveau classeur Excel, qui contiendra par défaut une feuille nommée Feuille1.

Ouvrir

func OpenFile(filename string, opts ...Options) (*File, error)

Utilisez OpenFile pour ouvrir un document Excel existant. Par exemple, ouvrez un document de feuille de calcul avec une protection par mot de passe :

f, err := excelize.OpenFile("Book1.xlsx", excelize.Options{Password: "motdepasse"})
if err != nil {
    return
}

Utilisez Close() pour fermer le classeur ouvert.

Ouvrir un flux de données

func OpenReader(r io.Reader, opts ...Options) (*File, error)

OpenReader lit les données à partir de io.Reader.

Dans l'exemple suivant, nous créons un serveur HTTP simple pour recevoir des documents de feuille de calcul téléchargés, ajoutons une nouvelle feuille de calcul au document reçu et renvoyons une réponse de téléchargement :

package main

import (
    "fmt"
    "net/http"

    "github.com/xuri/excelize/v2"
)

func process(w http.ResponseWriter, req *http.Request) {
    fichier, _, err := req.FormFile("fichier")
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    defer fichier.Close()
    f, err := excelize.OpenReader(fichier)
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    f.Path = "Book1.xlsx"
    f.NewSheet("NouvelleFeuille")
    w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s", f.Path))
    w.Header().Set("Content-Type", req.Header.Get("Content-Type"))
    if err := f.Write(w); err != nil {
        fmt.Fprint(w, err.Error())
    }
}

func main() {
    http.HandleFunc("/processus", process)
    http.ListenAndServe(":8090", nil)
}

Testez à l'aide de cURL :

curl --location --request GET 'http://127.0.0.1:8090/processus' \
--form 'fichier=@/tmp/template.xltx' -O -J

Enregistrer

func (f *File) Save(opts ...Options) error

Utilisez Save pour enregistrer les modifications apportées à un document Excel.

Enregistrer sous

func (f *File) SaveAs(name string, opts ...Options) error

Utilisez SaveAs pour enregistrer le document Excel sous un fichier spécifié.

Fermer le classeur

func (f *File) Close() error

Fermez le classeur et nettoyez tout cache disque système qui aurait pu être créé lors de l'ouverture du document.

Nouvelle Feuille de calcul

func (f *File) NewSheet(sheet string) (int, error)

Créez une nouvelle feuille de calcul en fonction du nom de feuille de calcul donné et retournez l'index de la feuille de calcul dans le classeur. Veuillez noter qu'en créant un nouveau classeur, il contiendra une feuille de calcul par défaut nommée Sheet1.

Supprimer une Feuille de calcul

func (f *File) DeleteSheet(sheet string) error

Supprimez la feuille de calcul spécifiée en fonction du nom de la feuille de calcul donné. Utilisez cette méthode avec prudence, car elle affectera les formules, les références, les graphiques et d'autres éléments associés à la feuille de calcul supprimée. Si d'autres composants font référence à des valeurs sur la feuille de calcul supprimée, une erreur sera signalée, et cela peut même entraîner l'impossibilité d'ouvrir le classeur. Appeler cette méthode est invalide lorsque le classeur ne contient qu'une seule feuille de calcul.

Copier une Feuille de calcul

func (f *File) CopySheet(from, to int) error

Copiez la feuille de calcul en fonction de la feuille de calcul source donnée et de l'index de la feuille de calcul cible. Le développeur doit confirmer si l'index de la feuille de calcul cible existe déjà. Actuellement, seules la copie de feuilles de calcul contenant des valeurs de cellules et des formules sont prises en charge, tandis que la copie de feuilles de calcul contenant des tableaux, des images, des graphiques et des tableaux croisés dynamiques n'est pas prise en charge.

// La feuille de calcul nommée Sheet1 existe déjà ...
index, err := f.NewSheet("Feuil2")
if err != nil {
    fmt.Println(err)
    return
}
err := f.CopySheet(1, index)

Regrouper les Feuilles de calcul

func (f *File) GroupSheets(sheets []string) error

Regroupez les feuilles de calcul en fonction des noms de feuilles de calcul donnés, et la feuille de calcul par défaut doit être incluse dans les feuilles de calcul données.

Dégrouper les Feuilles de calcul

func (f *File) UngroupSheets() error

Dégroupez les feuilles de calcul.

Définir une Image d'arrière-plan de Feuille de calcul

func (f *File) SetSheetBackground(sheet, picture string) error

Définir une image d'arrière-plan en mosaïque pour la feuille de calcul spécifiée en fonction du nom de la feuille de calcul donné et du chemin du fichier image. Les formats de fichier image pris en charge incluent : BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF et WMZ.

func (f *File) SetSheetBackgroundFromBytes(sheet, extension string, picture []byte) error

Définir une image d'arrière-plan en mosaïque pour la feuille de calcul spécifiée en fonction du nom de la feuille de calcul donné, de l'extension de format d'image et des données de format d'image. Les formats de fichier image pris en charge incluent : BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF et WMZ.

Définir la Feuille de calcul par Défaut

func (f *File) SetActiveSheet(index int)

Définir la feuille de calcul par défaut en fonction de la valeur d'index donnée, où la valeur doit être supérieure ou égale à 0 et inférieure au nombre total cumulatif de feuilles de calcul dans le classeur.

Obtenir l'Index de Feuille de calcul par Défaut

func (f *File) GetActiveSheetIndex() int

Obtenez l'index de la feuille de calcul par défaut, renvoyant 0 s'il n'y a pas de feuille de calcul par défaut.

Définir la Visibilité de la Feuille de calcul

func (f *File) SetSheetVisible(sheet string, visible bool, veryHidden ...bool) error

Définissez la visibilité de la feuille de calcul en fonction du nom de la feuille de calcul donné et du paramètre de visibilité. Un classeur doit contenir au moins une feuille de calcul visible. Si la feuille de calcul donnée est la feuille de calcul par défaut, le paramètre de visibilité est invalide. Le troisième paramètre optionnel veryHidden est seulement valide lorsque la valeur du paramètre visible est false.

Par exemple, pour masquer la feuille de calcul nommée Feuil1:

err := f.SetSheetVisible("Feuil1", false)

Obtenir la Visibilité de la Feuille de calcul

func (f *File) GetSheetVisible(sheet string) (bool, error)

Obtenez le paramètre de visibilité de la feuille de calcul en fonction du nom de la feuille de calcul donné. Par exemple, pour récupérer le paramètre de visibilité de la feuille de calcul nommée Feuil1:

visible, err := f.GetSheetVisible("Feuil1")

Définir les propriétés de la feuille

func (f *File) SetSheetProps(sheet string, opts *SheetPropsOptions) error

Définit les propriétés d'une feuille spécifiée en fonction du nom de la feuille donné et des options de propriétés. Les options de propriétés de feuille prises en charge sont les suivantes :

Propriété Type Description
CodeName *string Nom de code
EnableFormatConditionsCalculation *bool Spécifie si la mise en forme conditionnelle est calculée automatiquement, avec une valeur par défaut de true
Published *bool Spécifie si la feuille de calcul est publiée, avec une valeur par défaut de true
AutoPageBreaks *bool Spécifie si la feuille de calcul effectue des sauts de page automatiquement, avec une valeur par défaut de true
FitToPage *bool Spécifie si l'adaptation à la page est activée pour l'impression, avec une valeur par défaut de false
TabColorIndexed *int Valeur de la couleur indexée compatible avec les versions antérieures
TabColorRGB *string Valeur de couleur ARGB standard
TabColorTheme *int Index de couleur du thème démarrant à partir de 0
TabColorTint *float64 Valeur de teinte appliquée à la couleur, avec une valeur par défaut de 0.0
OutlineSummaryBelow *bool Spécifie la direction du résumé, en dessous des données détaillées, avec une valeur par défaut de true
OutlineSummaryRight *bool Spécifie la direction du résumé, à droite des données détaillées, avec une valeur par défaut de true
BaseColWidth *uint8 Largeur de colonne de base représentée par le nombre de caractères, avec une valeur par défaut de 8
DefaultColWidth *float64 Largeur de colonne par défaut incluant les marges et les lignes de grille
DefaultRowHeight *float64 Hauteur de ligne représentée en points
CustomHeight *bool Spécifie si la hauteur de ligne personnalisée est appliquée, avec une valeur par défaut de false
ZeroHeight *bool Spécifie si les lignes sont masquées par défaut, avec une valeur par défaut de false
ThickTop *bool Spécifie si les lignes ont une bordure supérieure épaisse par défaut, avec une valeur par défaut de false
ThickBottom *bool Spécifie si les lignes ont une bordure inférieure épaisse par défaut, avec une valeur par défaut de false

Par exemple, pour masquer la ligne par défaut dans la feuille nommée Sheet1 :

Définir les propriétés de la feuille

f, enable := excelize.NewFile(), true
if err := f.SetSheetProps("Sheet1", &excelize.SheetPropsOptions{
    ZeroHeight: &enable,
}); err != nil {
    fmt.Println(err)
}
if err := f.SetRowVisible("Sheet1", 10, true); err != nil {
    fmt.Println(err)
}
f.SaveAs("Book1.xlsx")

Obtenir les propriétés de la feuille

func (f *File) GetSheetProps(sheet string) (SheetPropsOptions, error)

Obtient les propriétés d'une feuille spécifiée en fonction du nom de la feuille donné.

Définir les propriétés de la vue de la feuille

func (f *File) SetSheetView(sheet string, viewIndex int, opts *ViewOptions) error

Définit les propriétés de la vue de la feuille en fonction du nom de la feuille, de l'index de la vue et des options de vue. viewIndex peut être un nombre négatif, auquel cas le décompte se fera à rebours (-1 représente la dernière vue). Les options prises en charge pour définir les propriétés de la vue de la feuille sont les suivantes:

Propriété Type Description
DefaultGridColor *bool Spécifie s'il faut utiliser la couleur de ligne de grille par défaut, la valeur par défaut est true
RightToLeft *bool Spécifie si l'affichage se fait de droite à gauche, la valeur par défaut est false
ShowFormulas *bool Spécifie si la feuille de calcul affiche les formules, la valeur par défaut est false
ShowGridLines *bool Spécifie si la feuille de calcul affiche les lignes de grille, la valeur par défaut est true
ShowRowColHeaders *bool Spécifie si la feuille de calcul affiche les en-têtes de ligne et de colonne, la valeur par défaut est true
ShowRuler *bool Spécifie s'il faut afficher la règle en mode mise en page, la valeur par défaut est true
ShowZeros *bool Spécifie s'il faut afficher les valeurs zéro dans les cellules, la valeur par défaut est true, sinon elles s'afficheront comme vides
TopLeftCell *string Spécifie les coordonnées de la cellule supérieure gauche visible
View *string Indique le type de vue de la feuille de calcul, avec les valeurs énumérées normal, pageBreakPreview et pageLayout
ZoomScale *float64 Pourcentage actuel de l'échelle de zoom de la fenêtre d'affichage, limité à une plage de 10 à 400, la valeur par défaut est 100

Obtenir les propriétés de la vue de la feuille

func (f *File) GetSheetView(sheet string, viewIndex int) (ViewOptions, error)

Récupère les propriétés de la vue de la feuille en fonction du nom de la feuille et de l'index de la vue. viewIndex peut être un nombre négatif, auquel cas le décompte se fera à rebours (-1 représente la dernière vue).

Définir la mise en page de la feuille de calcul

func (f *File) SetPageLayout(sheet string, opts *OptionsMiseEnPage) error

Définir les attributs de mise en page de la feuille de calcul en fonction du nom de la feuille de calcul donné et des paramètres de mise en page. Les attributs de mise en page actuellement pris en charge comprennent :

L'attribut Taille est utilisé pour spécifier la taille du papier de la page, la taille par défaut de la mise en page étant "Letter 8½ × 11 pouces". Le tableau suivant montre la relation entre les tailles de mise en page et l'index du paramètre Taille dans Excelize :

Index Format de papier
1 Letter 8½ × 11 pouces
2 Letter Small 8½ × 11 pouces
3 Tabloid 11 × 17 pouces
4 Ledger 17 × 11 pouces
... ...
40 German Standard Fanfold 8.5 × 12 pouces
| 41 | German legal paper fanfold 8.5 × 13 pouces |
| 42 | ISO B4 250 × 353 mm |
| 43 | Carte postale japonaise 100 × 148 mm |
| 44 | Papier standard 9 × 11 pouces |
| 45 | Papier standard 10 × 11 pouces |
| 46 | Papier standard 15 × 11 pouces |
| 47 | Lettre d'invitation 220 × 220 mm |
| 50 | En-tête agrandi 9.275 × 12 pouces |
| 51 | Papier légal extra large 9.275 × 15 pouces |
| 52 | Papier supplémentaire Tabloid 11.69 × 18 pouces |
| 53 | A4 extra large 236 × 322 mm |
| 54 | En-tête en format paysage 8.275 × 11 pouces |
| 55 | A4 en format paysage 210 × 297 mm |
| 56 | En-tête extra large en format paysage 9.275 × 12 pouces |
| 57 | SuperA/SuperA/A4 227 × 356 mm |
| 58 | SuperB/SuperB/A3 305 × 487 mm |
| 59 | En-tête agrandi 8.5 × 12.69 pouces |
| 60 | A4 agrandi 210 × 330 mm |
| 61 | A5 en format paysage 148 × 210 mm |
| 62 | JIS B5 en format paysage 182 × 257 mm |
| 63 | A3 extra large 322 × 445 mm |
| 64 | A5 extra large 174 × 235 mm |
| 65 | ISO B5 extra large 201 × 276 mm |
| 66 | A2 420 × 594 mm |
| 67 | A3 en format paysage 297 × 420 mm |
| 68 | A3 extra large en format paysage 322 × 445 mm |
| 69 | Double carte postale japonaise 200 × 148 mm |
| 70 | A6 105 × 148 mm |
| 71 | Enveloppe japonaise Kaku #2 |
| 72 | Enveloppe japonaise Kaku #3 |
| 73 | Enveloppe japonaise Chou #3 |
| 74 | Enveloppe japonaise Chou #4 |
| 75 | En-tête en format paysage 11 × 8½ pouces |
| 76 | A3 en format paysage 420 × 297 mm |
| 77 | A4 en format paysage 297 × 210 mm |
| 78 | A5 en format paysage 210 × 148 mm |
| 79 | B4 (JIS) en format paysage 364 × 257 mm |
| 80 | B5 (JIS) en format paysage 257 × 182 mm |
| 81 | Carte postale japonaise en format paysage 148 × 100 mm |
| 82 | Double carte postale japonaise en format paysage 148 × 200 mm |
| 83 | A6 en format paysage 148 × 105 mm |
| 84 | Enveloppe japonaise Kaku #2 en format paysage |
| 85 | Enveloppe japonaise Kaku #3 en format paysage |
| 86 | Enveloppe japonaise Chou #3 en format paysage |
| 87 | Enveloppe japonaise Chou n°4 Paysage |
| 88 | B6 (JIS) 128 × 182 mm |
| 89 | B6 (JIS) Paysage 182 × 128 mm |
| 90 | 12 × 11 pouces |
| 91 | Enveloppe japonaise You n°4 |
| 92 | Enveloppe japonaise You n°4 Paysage |
| 93 | Chinois 16K 146 × 215 mm |
| 94 | Chinois 32K 97 × 151 mm |
| 95 | Chinois Grand 32K 97 × 151 mm |
| 96 | Enveloppe chinoise #1 102 × 165 mm |
| 97 | Enveloppe chinoise #2 102 × 176 mm |
| 98 | Enveloppe chinoise #3 125 × 176 mm |
| 99 | Enveloppe chinoise #4 110 × 208 mm |
| 100 | Enveloppe chinoise #5 110 × 220 mm |
| 101 | Enveloppe chinoise #6 120 × 230 mm |
| 102 | Enveloppe chinoise #7 160 × 230 mm |
| 103 | Enveloppe chinoise #8 120 × 309 mm |
| 104 | Enveloppe chinoise #9 229 × 324 mm |
| 105 | Enveloppe chinoise #10 324 × 458 mm |
| 106 | Chinois 16K Paysage |
| 107 | Chinois 32K Paysage |
| 108 | Chinois Grand 32K Paysage |
| 109 | Enveloppe chinoise #1 Paysage 165 × 102 mm |
| 110 | Enveloppe chinoise #2 Paysage 176 × 102 mm |
| 111 | Enveloppe chinoise #3 Paysage 176 × 125 mm |
| 112 | Enveloppe chinoise #4 Paysage 208 × 110 mm |
| 113 | Enveloppe chinoise #5 Paysage 220 × 110 mm |
| 114 | Enveloppe chinoise #6 Paysage 230 × 120 mm |
| 115 | Enveloppe chinoise #7 Paysage 230 × 160 mm |
| 116 | Enveloppe chinoise #8 Paysage 309 × 120 mm |
| 117 | Enveloppe chinoise #9 Paysage 324 × 229 mm |
| 118 | Enveloppe chinoise #10 Paysage 458 × 324 mm |

La propriété `Orientation` est utilisée pour spécifier la direction de la mise en page de la page, la direction de la mise en page par défaut étant "portrait", et les valeurs facultatives sont `portrait` et `paysage`.

La propriété `FirstPageNumber` est utilisée pour spécifier le numéro de page de départ, le réglage par défaut étant automatique.

La propriété `AdjustTo` est utilisée pour spécifier le ratio de mise à l'échelle de la page, avec une plage de 10 à 400, c'est-à-dire une mise à l'échelle de 10% à 400%, et la valeur par défaut est `100` pour une taille normale. Le réglage de `FitToHeight` ou `FitToWidth` remplacera cette propriété.

La propriété `FitToHeight` est utilisée pour spécifier la mise à l'échelle de la page pour ajuster la largeur de la page, avec une valeur par défaut de `1`.

La propriété `FitToWidth` est utilisée pour spécifier la mise à l'échelle de la page pour ajuster la hauteur de la page, avec une valeur par défaut de `1`.

La propriété `BlackAndWhite` est utilisée pour spécifier l'impression monochrome, le réglage par défaut étant désactivé.
f := excelize.NewFile()
var (
    size                 = 10
    orientation          = "paysage"
    firstPageNumber uint = 2
    adjustTo        uint = 100
    fitToHeight          = 2
    fitToWidth           = 2
    blackAndWhite        = true
)
if err := f.SetPageLayout("Feuille1", &excelize.PageLayoutOptions{
    Size:            &size,
    Orientation:     &orientation,
    FirstPageNumber: &firstPageNumber,
    AdjustTo:        &adjustTo,
    FitToHeight:     &fitToHeight,
    FitToWidth:      &fitToWidth,
    BlackAndWhite:   &blackAndWhite,
}); err != nil {
    fmt.Println(err)
}

Obtenir la mise en page de la feuille de calcul

func (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error)

Obtenez les propriétés de mise en page de la feuille de calcul en fonction du nom de la feuille de calcul donné et des paramètres de mise en page.

Définir les marges de la page de la feuille de calcul

func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error

Définissez les marges de la page de la feuille de calcul en fonction du nom de la feuille de calcul donné et des paramètres de marge. Les options de marge prises en charge sont les suivantes :

Option Type Description
Bottom *float64 Marge inférieure
Footer *float64 Marge du pied de page
Header *float64 Marge d'en-tête
Left *float64 Marge gauche
Right *float64 Marge droite
Top *float64 Marge supérieure
Horizontally *bool Centrage horizontal de la page
Vertically *bool Centrage vertical de la page

Obtenir les marges de la page de la feuille de calcul

func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)

Obtenez les marges de la page de la feuille de calcul en fonction du nom de la feuille de calcul donné et des paramètres de marge.

Définir les propriétés du classeur

func (f *File) SetWorkbookProps(opts *WorkbookPropsOptions) error

SetWorkbookProps est utilisé pour définir les propriétés du classeur. Les propriétés de classeur prises en charge sont les suivantes :

Property Type Description
Date1904 *bool Indique si le classeur utilise le système de dates 1904
FilterPrivacy *bool Confidentialité du filtre, indique si l'application vérifie les informations personnelles dans le classeur
CodeName *string Nom de code

Obtenir les propriétés du classeur

func (f *File) GetWorkbookProps() (WorkbookPropsOptions, error)

GetWorkbookProps est utilisé pour obtenir les propriétés du classeur.

Définir l'en-tête et le pied de page

func (f *File) SetHeaderFooter(sheet string, opts *HeaderFooterOptions) error

Définir l'en-tête et le pied de page de la feuille de calcul en fonction du nom de la feuille de calcul donnée et des caractères de contrôle.

L'en-tête et le pied de page comprennent les champs suivants:

Champ Description
AlignWithMargins Définir l'alignement de l'en-tête et du pied de page avec les marges de la page
DifferentFirst Définir l'en-tête et le pied de page pour la première page
DifferentOddEven Définir l'en-tête et le pied de page pour les pages impaires et paires
ScaleWithDoc Définir l'adaptation de l'en-tête et du pied de page au document
OddFooter Caractère de contrôle pour le pied de page des pages impaires, utilisé pour définir le pied de page pour la première page lorsque la valeur de DifferentOddEven est false
OddHeader Caractère de contrôle pour l'en-tête des pages impaires, utilisé pour définir l'en-tête pour la première page lorsque la valeur de DifferentOddEven est false
EvenFooter Caractère de contrôle pour le pied de page des pages paires
EvenHeader Caractère de contrôle pour l'en-tête des pages paires
FirstFooter Caractère de contrôle pour le pied de page de la première page
FirstHeader Caractère de contrôle pour l'en-tête de la première page

Les codes de format dans le tableau ci-dessous peuvent être utilisés pour les 6 champs de type chaîne: OddHeader, OddFooter, EvenHeader, EvenFooter, FirstFooter, FirstHeader

Code de format Description
&& Caractère "&"
&font-size Taille de police de texte, où la taille de police est une taille de police décimale en points
&"nom de la police, type de police" Chaîne de nom de police de texte, nom de police, et chaîne de type de police de texte, type de police
&"-,Normal" Format de texte normal. Désactive les modes gras et italique
&A Nom de la feuille de calcul actuelle
&B ou &"-,Gras" Format de texte en gras, désactivé ou activé, par défaut désactivé
&D Date actuelle
&C Section centrale
&E Double soulignement pour le texte
&F Nom du fichier de classeur actuel
&G Spécifier l'objet comme arrière-plan (actuellement non pris en charge)
&H Ombre du texte
&I ou &"-,Italique" Texte en italique
&K Format de couleur de police au format couleur RVB en RRGGBB. Les couleurs de thème sont spécifiées comme TTSNNN, où TT est l'identifiant de couleur de thème, S est la teinte ou l'ombre du "+", "-", est la valeur de la teinte ou de l'ombre
&L Section gauche
&N Nombre total de pages
&O Format de texte de contour
&P[[+\|-]n] S'il n'y a pas de suffixe facultatif, numéro de page actuel (décimal)
&R Section droite
&S Barré le texte
&T Heure actuelle
&U Ajouter un seul soulignement au texte. Le mode par défaut est désactivé
&X Format en exposant
&Y Format en indice
&Z Chemin du fichier de classeur actuel

Par exemple:

err := f.SetHeaderFooter("Feuille1", &excelize.HeaderFooterOptions{
    DifferentFirst:   true,
    DifferentOddEven: true,
    OddHeader:        "&R&P",
    OddFooter:        "&C&F",
    EvenHeader:       "&L&P",
    EvenFooter:       "&L&D&R&T",
    FirstHeader:      `&CCenter &"-,Gras"Gras&"-,Normal"En-têteU+000A&D`,
})

L'exemple ci-dessus contient le format suivant:

  • La première page a son propre en-tête et pied de page
  • Les pages impaires et paires ont des en-têtes et pieds de page différents
  • La partie droite de l'en-tête de la page impaire est le numéro de page actuel
  • La partie centrale du pied de page de la page impaire est le nom du fichier du classeur actuel
  • La partie gauche est le numéro de page actuel dans l'en-tête de la page paire
  • La partie gauche est la date actuelle, et la partie droite du pied de page de la page paire est l'heure actuelle
  • Le texte sur la première ligne dans la section centrale de la première page est "Centre Gras En-tête", et la deuxième ligne est la date
  • Il n'y a pas de pied de page sur la première page

Définir le nom

func (f *File) SetDefinedName(definedName *DefinedName) error

Définit le nom et la plage de référence en fonction du nom donné, la portée par défaut étant le classeur. Par exemple :

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "Montant",
    RefersTo: "Feuille1!$A$2:$D$5",
    Comment:  "commentaire sur le nom défini",
    Scope:    "Feuille2",
})

Définition de la zone d'impression et des titres d'impression de la feuille de calcul :

Définition de la zone d'impression et des titres d'impression de la feuille de calcul

if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Zone_Impression",
    RefersTo: "Feuille1!$A$1:$Z$100",
    Scope:    "Feuille1",
}); err != nil {
    fmt.Println(err)
}
if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Titres_Impression",
    RefersTo: "Feuille1!$A:$A,Feuille1!$1:$1",
    Scope:    "Feuille1",
}); err != nil {
    fmt.Println(err)
}

Obtenir le nom

func (f *File) GetDefinedName() []DefinedName

Obtient la liste des noms du classeur et de la feuille de calcul dans la portée donnée.

Supprimer le nom

func (f *File) DeleteDefinedName(definedName *DefinedName) error

Supprime le nom défini en fonction du nom et de la portée du nom donnés, la portée par défaut étant le classeur. Par exemple :

err := f.DeleteDefinedName(&excelize.DefinedName{
    Name:     "Montant",
    Scope:    "Feuille2",
})

Définir les propriétés de l'application du classeur

func (f *File) SetAppProps(appProperties *AppProperties) error

Définit les propriétés de l'application du classeur. Les propriétés qui peuvent être définies incluent :

Propriété Description
Application Le nom de l'application qui a créé ce document
ScaleCrop Spécifie l'affichage de la miniature du document. Définir sur true pour adapter la miniature du document et false pour recadrer la miniature du document
DocSecurity Niveau de sécurité du document représenté sous forme de valeur numérique
Company Le nom de l'entreprise associé au document
LinksUpToDate Définit si les hyperliens dans le document sont à jour. Définir sur true pour des hyperliens mis à jour et false pour des hyperliens obsolètes
HyperlinksChanged Spécifie si les nouveaux hyperliens spécifiés dans cette section doivent être utilisés pour mettre à jour les relations d'hyperlien la prochaine fois que ce document est ouvert
AppVersion Spécifie la version de l'application qui a généré ce document. La valeur doit être au format XX.YYYY, où X et Y sont des valeurs numériques, sinon le fichier ne sera pas conforme à la norme

Par exemple :

err := f.SetAppProps(&excelize.AppProperties{
    Application:       "Microsoft Excel",
    ScaleCrop:         true,
    DocSecurity:       3,
    Company:           "Nom de l'entreprise",
    LinksUpToDate:     true,
    HyperlinksChanged: true,
    AppVersion:        "16.0000",
})

Obtenir les propriétés de l'application du classeur

func (f *File) GetAppProps() (*AppProperties, error)

Obtient les propriétés de l'application du classeur.

Définir les propriétés du document

func (f *File) SetDocProps(docProperties *DocProperties) error

Définit les propriétés principales du classeur. Les propriétés qui peuvent être définies comprennent:

Propriété Description
Catégorie La catégorie du contenu du document
ÉtatDuContenu L'état du contenu du document. Par exemple, les valeurs peuvent inclure "Brouillon", "Révisé" et "Finalisé"
Créé L'heure à laquelle le document a été créé, représentée au format UTC ISO 8601, par exemple 2019-06-04T22:00:10Z
Créateur Le créateur du document
Description La description du contenu de la ressource
Identifiant Une référence claire à la ressource dans un contexte donné
MotsClés Mots-clés du document
Langue La langue principale du contenu du document
DernièreModificationPar L'utilisateur qui a dernièrement modifié le document
Modifié L'heure à laquelle le document a été modifié, représentée au format UTC ISO 8601, par exemple 2019-06-04T22:00:10Z
Révision La version de révision du document
Sujet Le sujet du document
Titre Le titre du document
Version Le numéro de version, défini par l'utilisateur ou l'application

Par exemple:

err := f.SetDocProps(&excelize.DocProperties{
    Category:       "catégorie",
    ContentStatus:  "Brouillon",
    Created:        "2019-06-04T22:00:10Z",
    Creator:        "Go Excelize",
    Description:    "Ce fichier a été créé par Go Excelize",
    Identifier:     "xlsx",
    Keywords:       "Feuille de calcul",
    LastModifiedBy: "Go Author",
    Modified:       "2019-06-04T22:00:10Z",
    Revision:       "0",
    Subject:        "Sujet de test",
    Title:          "Titre de test",
    Language:       "fr-FR",
    Version:        "1.0.0",
})

Obtenir les propriétés du document

func (f *File) GetDocProps() (*DocProperties, error)

Obtient les propriétés principales du classeur.

Protéger le classeur

func (f *File) ProtectWorkbook(opts *WorkbookProtectionOptions) error

Protège la structure du classeur avec un mot de passe pour empêcher d'autres utilisateurs de visualiser des feuilles de calcul masquées, d'ajouter, de déplacer, ou de masquer des feuilles de calcul, et de renommer les feuilles de calcul. Le champ NomAlgorithme prend en charge la spécification des algorithmes de hachage XOR, MD4, MD5, SHA-1, SHA-256, SHA-384, ou SHA-512. Si aucun algorithme de hachage n'est spécifié, l'algorithme XOR est utilisé par défaut. Par exemple, protéger la structure du classeur avec un mot de passe:

err := f.ProtectWorkbook(&excelize.WorkbookProtectionOptions{
    Password:      "motdepasse",
    LockStructure: true,
})

WorkbookProtectionOptions définit les options de protection du classeur.

type WorkbookProtectionOptions struct {
    NomAlgorithme string
    MotDePasse    string
    VerrouillerLaStructure bool
    VerrouillerLesFenêtres  bool
}

Déprotéger le classeur

func (f *File) UnprotectWorkbook(motdepasse ...string) error

Déprotège le classeur, en spécifiant éventuellement un mot de passe pour vérifier et supprimer la protection du classeur.