Workbook

Options definisce le opzioni per la lettura e la scrittura di fogli di calcolo.

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

MaxCalcIterations viene utilizzato per specificare il numero massimo di iterazioni durante il calcolo delle formule, con un valore predefinito di 0.

Password viene utilizzato per specificare la password per aprire e salvare il workbook in testo normale, con un valore predefinito vuoto.

RawCellValue viene utilizzato per specificare se recuperare il valore grezzo durante la lettura dei valori delle celle, con un valore predefinito di false (applicando il formato del numero).

UnzipSizeLimit viene utilizzato per specificare il limite di dimensione (in byte) per la decompressione durante l'apertura di un documento di foglio di calcolo, che dovrebbe essere maggiore o uguale a UnzipXMLSizeLimit, con un limite predefinito di 16 GB.

UnzipXMLSizeLimit viene utilizzato per specificare il limite di memoria (in byte) durante la decompressione di ogni foglio di lavoro e tabella di stringhe condivisa, e quando la dimensione supera questo valore, il file XML del foglio di lavoro verrà decompresso nella directory temporanea del sistema. Questo valore dovrebbe essere minore o uguale a UnzipSizeLimit, con un limite predefinito di 16 MB.

ShortDatePattern viene utilizzato per specificare il codice di formato numerico della data breve.

LongDatePattern viene utilizzato per specificare il codice di formato numerico della data lunga.

LongTimePattern viene utilizzato per specificare il codice di formato numerico dell'ora lunga.

CultureInfo viene utilizzato per specificare il formato regionale, che verrà utilizzato durante la lettura dei formati numerici influenzati dalle impostazioni specifiche della data e dell'ora della regione.

Create

func NewFile(opts ...Options) *File

Usa NewFile per creare un nuovo workbook di Excel, che conterrà per impostazione predefinita un foglio di lavoro denominato Sheet1.

Open

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

Usa OpenFile per aprire un documento di Excel esistente. Ad esempio, apri un documento di foglio di calcolo con protezione password:

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

Utilizza Close() per chiudere il workbook aperto.

Open Data Stream

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

OpenReader legge i dati da io.Reader.

Nell'esempio seguente, creiamo un semplice server HTTP per ricevere documenti di fogli di calcolo caricati, aggiungere un nuovo foglio di lavoro al documento ricevuto e restituire una risposta di download:

package main

import (
    "fmt"
    "net/http"

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

func process(w http.ResponseWriter, req *http.Request) {
    file, _, err := req.FormFile("file")
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    defer file.Close()
    f, err := excelize.OpenReader(file)
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    f.Path = "Book1.xlsx"
    f.NewSheet("NewSheet")
    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("/process", process)
    http.ListenAndServe(":8090", nil)
}

Test usando cURL:

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

Save

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

Usa Save per salvare le modifiche a un documento di Excel.

Save As

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

Usa SaveAs per salvare il documento di Excel come un file specificato.

Chiudi Workbook

func (f *File) Close() error

Chiudi il workbook e libera la cache del disco di sistema creata durante l'apertura del documento.

Nuovo Foglio di Lavoro

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

Crea un nuovo foglio di lavoro in base al nome del foglio di lavoro fornito e restituisce l'indice del foglio di lavoro nel workbook. Si noti che quando si crea un nuovo workbook, conterrà un foglio di lavoro predefinito chiamato Sheet1.

Elimina Foglio di Lavoro

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

Elimina il foglio di lavoro specificato in base al nome del foglio di lavoro fornito. Utilizzare questo metodo con cautela, poiché influenzerà formule, riferimenti, grafici e altri elementi associati al foglio di lavoro eliminato. Se altri componenti fanno riferimento a valori nel foglio di lavoro eliminato, verrà segnalato un errore e potrebbe persino causare l'impossibilità di aprire il workbook. Chiamare questo metodo non è valido quando il workbook contiene un solo foglio di lavoro.

Copia Foglio di Lavoro

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

Copia il foglio di lavoro in base al foglio di lavoro di origine fornito e all'indice del foglio di lavoro di destinazione. Lo sviluppatore deve confermare se l'indice del foglio di lavoro di destinazione esiste già. Attualmente è supportata solo la copia di fogli di lavoro contenenti valori delle celle e formule, mentre non è supportata la copia di fogli di lavoro contenenti tabelle, immagini, grafici e tabelle pivot.

// Il foglio di lavoro chiamato Sheet1 esiste già...
index, err := f.NewSheet("Sheet2")
if err != nil {
    fmt.Println(err)
    return
}
err := f.CopySheet(1, index)

Raggruppa Fogli di Lavoro

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

Raggruppa i fogli di lavoro in base ai nomi dei fogli di lavoro forniti e il foglio di lavoro predefinito deve essere incluso nei fogli di lavoro forniti.

Separa il Raggruppamento dei Fogli di Lavoro

func (f *File) UngroupSheets() error

Separa il raggruppamento dei fogli di lavoro.

Imposta Immagine di Sfondo del Foglio di Lavoro

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

Imposta un'immagine di sfondo a mosaico per il foglio di lavoro specificato in base al nome del foglio di lavoro e al percorso del file dell'immagine. I formati di file immagine supportati includono: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF e WMZ.

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

Imposta un'immagine di sfondo a mosaico per il foglio di lavoro specificato in base al nome del foglio di lavoro, all'estensione del formato dell'immagine e ai dati del formato dell'immagine. I formati di file immagine supportati includono: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF e WMZ.

Imposta Foglio di Lavoro Predefinito

func (f *File) SetActiveSheet(index int)

Imposta il foglio di lavoro predefinito in base al valore dell'indice fornito, dove il valore deve essere maggiore o uguale a 0 e minore del totale cumulativo del numero di fogli di lavoro nel workbook.

Ottieni l'Indice del Foglio di Lavoro Predefinito

func (f *File) GetActiveSheetIndex() int

Ottieni l'indice del foglio di lavoro predefinito, restituendo 0 se non viene trovato alcun foglio di lavoro predefinito.

Imposta la Visibilità del Foglio di Lavoro

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

Imposta la visibilità del foglio di lavoro in base al nome del foglio di lavoro fornito e al parametro di visibilità. Un workbook deve contenere almeno un foglio di lavoro visibile. Se il foglio di lavoro fornito è il foglio di lavoro predefinito, l'impostazione di visibilità non è valida. Il terzo parametro opzionale veryHidden è valido solo quando il valore del parametro visible è false.

Ad esempio, per nascondere il foglio di lavoro chiamato Sheet1:

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

Ottieni la Visibilità del Foglio di Lavoro

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

Ottieni l'impostazione di visibilità del foglio di lavoro in base al nome del foglio di lavoro fornito. Ad esempio, per recuperare l'impostazione di visibilità del foglio di lavoro chiamato Sheet1:

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

Impostare le proprietà del foglio

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

Imposta le proprietà di un foglio specificato in base al nome del foglio e alle opzioni di proprietà fornite. Le opzioni di proprietà del foglio supportate sono le seguenti:

Proprietà Tipo Descrizione
CodeName *string Nome codice
EnableFormatConditionsCalculation *bool Specifica se la formattazione condizionale viene calcolata automaticamente, con un valore predefinito di true
Pubblicato *bool Specifica se il foglio di lavoro è pubblicato, con un valore predefinito di true
AutoInterruzioniPagina *bool Specifica se il foglio interrompe le pagine automaticamente, con un valore predefinito di true
AdattaPagina *bool Specifica se abilitare la stampa adatta alla pagina, con un valore predefinito di false
TabColorIndexed *int Utilizzato per il valore di colore indicizzato retrocompatibile
TabColorRGB *string Valore di colore ARGB standard
TabColorTheme *int Indice del colore del tema a partire da 0
TabColorTint *float64 Valore di sfumatura applicato al colore, con un valore predefinito di 0.0
OutlineSummaryBelow *bool Specifica la direzione dell'analisi, sia sotto i dati di dettaglio, con un valore predefinito di true
OutlineSummaryRight *bool Specifica la direzione dell'analisi, sia a destra dei dati di dettaglio, con un valore predefinito di true
LarghezzaColonnaBase *uint8 Larghezza di base della colonna rappresentata dal numero di caratteri, con un valore predefinito di 8
LarghezzaColonnaPredefinita *float64 Larghezza predefinita della colonna inclusi margini e linee della griglia
AltezzaRigaPredefinita *float64 Altezza riga rappresentata in punti
AltezzaPersonalizzata *bool Specifica se è applicata un'altezza personalizzata della riga, con un valore predefinito di false
AltezzaZero *bool Specifica se le righe sono nascoste per impostazione predefinita, con un valore predefinito di false
SpessoreSuperiore *bool Specifica se le righe hanno un bordo superiore spesso per impostazione predefinita, con un valore predefinito di false
SpessoreInferiore *bool Specifica se le righe hanno un bordo inferiore spesso per impostazione predefinita, con un valore predefinito di false

Ad esempio, per impostare la riga predefinita nel foglio di lavoro denominato Foglio1 come nascosta:

Imposta le proprietà del foglio

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

Ottenere le proprietà del foglio

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

Ottieni le proprietà di un foglio specificato in base al nome del foglio.

Impostazione delle proprietà della vista del foglio

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

Imposta le proprietà della vista del foglio in base al nome del foglio, all'indice della vista e alle opzioni della vista date. viewIndex può essere un numero negativo, in tal caso il conteggio sarà fatto all'indietro (-1 rappresenta l'ultima vista). Le opzioni supportate per l'impostazione delle proprietà della vista del foglio sono le seguenti:

Proprietà Tipo Descrizione
DefaultGridColor *bool Specifica se utilizzare il colore predefinito delle linee di griglia, il valore predefinito è true
RightToLeft *bool Specifica se visualizzare da destra a sinistra, il valore predefinito è false
ShowFormulas *bool Specifica se il foglio di lavoro visualizza le formule, il valore predefinito è false
ShowGridLines *bool Specifica se il foglio di lavoro visualizza le linee della griglia, il valore predefinito è true
ShowRowColHeaders *bool Specifica se il foglio di lavoro visualizza gli intestazioni di riga e colonna, il valore predefinito è true
ShowRuler *bool Specifica se visualizzare il righello in visualizzazione layout pagina, il valore predefinito è true
ShowZeros *bool Specifica se visualizzare i valori zero nelle celle, il valore predefinito è true, altrimenti verranno visualizzati come vuoti
TopLeftCell *string Specifica le coordinate della cella in alto a sinistra visibile
View *string Indica il tipo di visualizzazione del foglio di lavoro, con valori enum normale, anteprimaInterruzPagina e layoutPagina
ZoomScale *float64 Percentuale di scala di zoom della finestra di visualizzazione corrente, limitata a un intervallo da 10 a 400, valore predefinito è 100

Ottenere le proprietà della vista del foglio

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

Recupera le proprietà della vista del foglio in base al nome del foglio e all'indice della vista. viewIndex può essere un numero negativo, in tal caso il conteggio sarà fatto all'indietro (-1 rappresenta l'ultima vista).

Impostare il Layout della Pagina del Foglio di Lavoro

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

Imposta gli attributi del layout della pagina del foglio di lavoro in base al nome del foglio di lavoro fornito e ai parametri del layout della pagina. Gli attributi del layout della pagina attualmente supportati includono:

L'attributo Size è utilizzato per specificare la dimensione del foglio di carta, con la dimensione predefinita del layout della pagina che è "Letter 8½ × 11 pollici". La tabella seguente mostra la relazione tra le dimensioni del layout della pagina e il parametro di indice Size in Excelize:

Indice Dimensione della Carta
1 Lettera 8½ × 11 pollici
2 Lettera Piccola 8½ × 11 pollici
3 Tabloid 11 × 17 pollici
4 Ledger 17 × 11 pollici
... ...
40 Ventaglio Tedesco Standard 8.5 × 12 pollici
| 41 | Ventaglio di carta legale tedesca 8.5 × 13 pollici |
| 42 | ISO B4 250 × 353 mm |
| 43 | Cartolina giapponese 100 × 148 mm |
| 44 | Carta standard 9 × 11 pollici |
| 45 | Carta standard 10 × 11 pollici |
| 46 | Carta standard 15 × 11 pollici |
| 47 | Lettera di invito 220 × 220 mm |
| 50 | Testata lettera ingrandita 9.275 × 12 pollici |
| 51 | Carta legale extra grande 9.275 × 15 pollici |
| 52 | Carta tabloid extra 11.69 × 18 pollici |
| 53 | A4 extra grande 236 × 322 mm |
| 54 | Testata di carta orizzontale 8.275 × 11 pollici |
| 55 | A4 orizzontale 210 × 297 mm |
| 56 | Testata di carta extra larga orizzontale 9.275 × 12 pollici |
| 57 | SuperA/SuperA/A4 carta 227 × 356 mm |
| 58 | SuperB/SuperB/A3 carta 305 × 487 mm |
| 59 | Testata di carta ingrandita 8.5 × 12.69 pollici |
| 60 | A4 ingrandita 210 × 330 mm |
| 61 | A5 orizzontale 148 × 210 mm |
| 62 | JIS B5 orizzontale 182 × 257 mm |
| 63 | A3 extra grande 322 × 445 mm |
| 64 | A5 extra grande 174 × 235 mm |
| 65 | ISO B5 extra grande 201 × 276 mm |
| 66 | A2 420 × 594 mm |
| 67 | A3 orizzontale 297 × 420 mm |
| 68 | A3 extra large orizzontale 322 × 445 mm |
| 69 | Doppia cartolina giapponese 200 × 148 mm |
| 70 | A6 105 × 148 mm |
| 71 | Busta giapponese Kaku #2 |
| 72 | Busta giapponese Kaku #3 |
| 73 | Busta giapponese Chou #3 |
| 74 | Busta giapponese Chou #4 |
| 75 | Testata di carta orizzontale 11 × 8½ pollici |
| 76 | A3 orizzontale 420 × 297 mm |
| 77 | A4 orizzontale 297 × 210 mm |
| 78 | A5 orizzontale 210 × 148 mm |
| 79 | B4 (JIS) orizzontale 364 × 257 mm |
| 80 | B5 (JIS) orizzontale 257 × 182 mm |
| 81 | Cartolina giapponese orizzontale 148 × 100 mm |
| 82 | Doppia cartolina giapponese orizzontale 148 × 200 mm |
| 83 | A6 orizzontale 148 × 105 mm |
| 84 | Busta giapponese Kaku #2 orizzontale |
| 85 | Busta giapponese Kaku #3 orizzontale |
| 86 | Busta giapponese Chou #3 orizzontale |
| 87 | Busta giapponese Chou #4 Orizzontale |
| 88 | B6 (JIS) 128 × 182 mm |
| 89 | B6 (JIS) Orizzontale 182 × 128 mm |
| 90 | 12 × 11 pollici |
| 91 | Busta giapponese You #4 |
| 92 | Busta giapponese You #4 Orizzontale |
| 93 | Cinese 16K 146 × 215 mm |
| 94 | Cinese 32K 97 × 151 mm |
| 95 | Grande Cinese 32K 97 × 151 mm |
| 96 | Busta Cinese #1 102 × 165 mm |
| 97 | Busta Cinese #2 102 × 176 mm |
| 98 | Busta Cinese #3 125 × 176 mm |
| 99 | Busta Cinese #4 110 × 208 mm |
| 100 | Busta Cinese #5 110 × 220 mm |
| 101 | Busta Cinese #6 120 × 230 mm |
| 102 | Busta Cinese #7 160 × 230 mm |
| 103 | Busta Cinese #8 120 × 309 mm |
| 104 | Busta Cinese #9 229 × 324 mm |
| 105 | Busta Cinese #10 324 × 458 mm |
| 106 | Cinese 16K Orizzontale |
| 107 | Cinese 32K Orizzontale |
| 108 | Grande Cinese 32K Orizzontale |
| 109 | Busta Cinese #1 Orizzontale 165 × 102 mm |
| 110 | Busta Cinese #2 Orizzontale 176 × 102 mm |
| 111 | Busta Cinese #3 Orizzontale 176 × 125 mm |
| 112 | Busta Cinese #4 Orizzontale 208 × 110 mm |
| 113 | Busta Cinese #5 Orizzontale 220 × 110 mm |
| 114 | Busta Cinese #6 Orizzontale 230 × 120 mm |
| 115 | Busta Cinese #7 Orizzontale 230 × 160 mm |
| 116 | Busta Cinese #8 Orizzontale 309 × 120 mm |
| 117 | Busta Cinese #9 Orizzontale 324 × 229 mm |
| 118 | Busta Cinese #10 Orizzontale 458 × 324 mm |

La proprietà `Orientation` viene utilizzata per specificare la direzione del layout della pagina, con la direzione predefinita del layout della pagina che è "verticale", e i valori opzionali sono `verticale` e `orizzontale`.

La proprietà `FirstPageNumber` viene utilizzata per specificare il numero di pagina di inizio, con il valore predefinito che è automatico.

La proprietà `AdjustTo` viene utilizzata per specificare il rapporto di ridimensionamento della pagina, con un intervallo da 10 a 400, cioè, ridimensionamento dal 10% al 400%, e il valore predefinito è `100` per la dimensione normale. Impostare `FitToHeight` o `FitToWidth` sovrascriverà questa proprietà.

La proprietà `FitToHeight` viene utilizzata per specificare il ridimensionamento della pagina per regolare la larghezza della pagina, con un valore predefinito di `1`.

La proprietà `FitToWidth` viene utilizzata per specificare il ridimensionamento della pagina per regolare l'altezza della pagina, con un valore predefinito di `1`.

La proprietà `BlackAndWhite` viene utilizzata per specificare la stampa in bianco e nero, con il predefinito che è spento.
f := excelize.NewFile()
var (
    size                 = 10
    orientation          = "landscape"
    firstPageNumber uint = 2
    adjustTo        uint = 100
    fitToHeight          = 2
    fitToWidth           = 2
    blackAndWhite        = true
)
if err := f.SetPageLayout("Foglio1", &excelize.PageLayoutOptions{
    Size:            &size,
    Orientation:     &orientation,
    FirstPageNumber: &firstPageNumber,
    AdjustTo:        &adjustTo,
    FitToHeight:     &fitToHeight,
    FitToWidth:      &fitToWidth,
    BlackAndWhite:   &blackAndWhite,
}); err != nil {
    fmt.Println(err)
}

Ottenere il layout della pagina del foglio di lavoro

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

Ottieni le proprietà del layout della pagina del foglio di lavoro in base al nome del foglio di lavoro fornito e ai parametri del layout della pagina.

Impostare i margini della pagina del foglio di lavoro

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

Imposta i margini della pagina del foglio di lavoro in base al nome del foglio di lavoro fornito e ai parametri dei margini. Le opzioni di margine supportate sono:

Opzione Tipo Descrizione
Inferiore *float64 Margine inferiore
Piè di pagina *float64 Margine piè di pagina
Intestazione *float64 Margine intestazione
Sinistra *float64 Margine sinistra
Destra *float64 Margine destra
Superiore *float64 Margine superiore
Orizzontale *bool Centratura orizzontale della pagina
Verticale *bool Centratura verticale della pagina

Ottenere i margini della pagina del foglio di lavoro

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

Ottieni i margini della pagina del foglio di lavoro in base al nome del foglio di lavoro fornito e ai parametri dei margini.

Impostare le proprietà del workbook

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

SetWorkbookProps viene utilizzato per impostare le proprietà del workbook. Le proprietà del workbook supportate sono:

Proprietà Tipo Descrizione
Data1904 *bool Indica se il workbook utilizza il sistema di data 1904
FilterPrivacy *bool Privacy del filtro, indica se l'applicazione controlla le informazioni personali nel workbook
NomeCodice *string Nome codice

Ottenere le proprietà del workbook

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

GetWorkbookProps viene utilizzato per ottenere le proprietà del workbook.

Impostare l'intestazione e il piè di pagina

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

Imposta l'intestazione e il piè di pagina del foglio di lavoro in base al nome del foglio di lavoro fornito e ai caratteri di controllo.

L'intestazione e il piè di pagina includono i seguenti campi:

Campo Descrizione
AlignWithMargins Imposta l'allineamento dell'intestazione e del piè di pagina con i margini della pagina
DifferentFirst Imposta l'intestazione e il piè di pagina per la prima pagina
DifferentOddEven Imposta l'intestazione e il piè di pagina per le pagine dispari e pari
ScaleWithDoc Imposta l'intestazione e il piè di pagina in scala con il documento
OddFooter Carattere di controllo per il piè di pagina delle pagine dispari, utilizzato per impostare il piè di pagina per la prima pagina quando il valore di DifferentOddEven è false
OddHeader Carattere di controllo per l'intestazione delle pagine dispari, utilizzato per impostare l'intestazione per la prima pagina quando il valore di DifferentOddEven è false
EvenFooter Carattere di controllo per il piè di pagina delle pagine pari
EvenHeader Carattere di controllo per l'intestazione delle pagine pari
FirstFooter Carattere di controllo per il piè di pagina della prima pagina
FirstHeader Carattere di controllo per l'intestazione della prima pagina

I codici di formato nella tabella sottostante possono essere utilizzati per i 6 campi di tipo stringa: OddHeader, OddFooter, EvenHeader, EvenFooter, FirstFooter, FirstHeader

Codice di formato Descrizione
&& Carattere "&"
&font-size Dimensione del carattere del testo, dove la dimensione del carattere è una dimensione del carattere decimale in punti
&"nome del carattere, tipo di carattere" Stringa del nome del carattere del testo, nome del carattere e stringa del tipo di carattere del testo, tipo di carattere
&"-,Regolare" Formato di testo normale. Disattiva i modi grassetto e corsivo
&A Nome del foglio di lavoro corrente
&B o &"-,Grassetto" Formato di testo in grassetto, disattivato o attivato, di default disattivato
&D Data corrente
&C Sezione centrale
&E Doppio sottolineatura per il testo
&F Nome del file del foglio di lavoro corrente
&G Specifica l'oggetto come sfondo (attualmente non supportato)
&H Ombra del testo
&I o &"-,Corsivo" Testo in corsivo
&K Formato del colore del carattere del testo nel formato colore RGB in RRGGBB. I colori del tema sono specificati come TTSNNN, dove TT è l'id del colore del tema, S è la tonalità o sfumatura del "+", "-", è il valore della tonalità o sfumatura
&L Sezione sinistra
&N Numero totale di pagine
&O Formato di testo dell'outline
&P[[+\|-]n] Se non c'è nessun suffisso opzionale, numero di pagina corrente (decimale)
&R Sezione destra
&S Corsivo del testo
&T Ora corrente
&U Aggiunge un singolo sottolineatura al testo. La modalità predefinita è disattivata
&X Formato di pedice
&Y Formato di apice
&Z Percorso del file del foglio di lavoro corrente

Ad esempio:

err := f.SetHeaderFooter("Foglio1", &excelize.HeaderFooterOptions{
    DifferentFirst:   true,
    DifferentOddEven: true,
    OddHeader:        "&R&P",
    OddFooter:        "&C&F",
    EvenHeader:       "&L&P",
    EvenFooter:       "&L&D&R&T",
    FirstHeader:      `&CCentro &"-,Grassetto"Grassetto&"-,Regolare"IntestazioneU+000A&D`,
})

L'esempio sopra contiene il seguente formato:

  • La prima pagina ha la propria intestazione e piè di pagina
  • Le pagine dispari e pari hanno intestazioni e piè di pagina diverse
  • La parte destra dell'intestazione della pagina dispari è il numero di pagina corrente
  • La parte centrale del piè di pagina della pagina dispari è il nome del file del foglio di lavoro corrente
  • La parte sinistra è il numero di pagina corrente nell'intestazione della pagina pari
  • La parte sinistra è la data corrente e la parte destra del piè di pagina della pagina pari è l'ora corrente
  • Il testo sulla prima riga nella parte centrale della prima pagina è "Intestazione Grassetto Centrale", e la seconda riga è la data
  • Non c'è piè di pagina sulla prima pagina

Imposta Nome

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

Imposta il nome e l'intervallo di riferimento in base al nome fornito, con lo scope predefinito che è il workbook. Per esempio:

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "Importo",
    RefersTo: "Foglio1!$A$2:$D$5",
    Comment:  "commento del nome definito",
    Scope:    "Foglio2",
})

Imposta l'area di stampa e i titoli di stampa del foglio di lavoro:

Impostazione dell'area di stampa e dei titoli di stampa del foglio di lavoro

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

Ottieni Nome

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

Ottieni l'elenco dei nomi del workbook e del foglio di lavoro all'interno dello scope.

Elimina Nome

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

Elimina il nome definito in base al nome e allo scope del nome forniti, con lo scope predefinito che è il workbook. Per esempio:

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

Imposta Proprietà dell'Applicazione Workbook

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

Imposta le proprietà dell'applicazione del workbook. Le proprietà che possono essere impostate includono:

Proprietà Descrizione
Applicazione Il nome dell'applicazione che ha creato questo documento
ScaleCrop Specifica la visualizzazione dell'anteprima del documento. Impostare su true per ridimensionare l'anteprima del documento e false per ritagliare l'anteprima del documento
DocSecurity Il livello di sicurezza del documento rappresentato come un valore numerico
Azienda Il nome dell'azienda associato al documento
CollegamentiAggiornati Imposta se i collegamenti ipertestuali nel documento sono aggiornati. Impostare su true per collegamenti ipertestuali aggiornati e false per collegamenti ipertestuali non aggiornati
HyperlinksChanged Specifica se i nuovi collegamenti ipertestuali specificati in questa sezione dovrebbero essere utilizzati per aggiornare le relazioni ipertestuali la prossima volta che questo documento viene aperto
VersioneApplicazione Specifica la versione dell'applicazione che ha generato questo documento. Il valore dovrebbe essere nel formato XX.YYYY, dove X e Y sono valori numerici, altrimenti il file non sarà conforme allo standard

Per esempio:

err := f.SetAppProps(&excelize.AppProperties{
    Application:       "Microsoft Excel",
    ScaleCrop:         true,
    DocSecurity:       3,
    Company:           "Nome Azienda",
    LinksUpToDate:     true,
    HyperlinksChanged: true,
    AppVersion:        "16.0000",
})

Ottieni Proprietà dell'Applicazione Workbook

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

Ottieni le proprietà dell'applicazione del workbook.

Imposta le proprietà del documento

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

Imposta le proprietà principali del documento di lavoro. Le proprietà che possono essere impostate includono:

Proprietà Descrizione
Categoria La categoria del contenuto del documento
StatoContenuto Lo stato del contenuto del documento. Ad esempio, i valori possono includere "Bozza", "Esaminato" e "Finale"
Creato Il momento in cui il documento è stato creato, rappresentato nel formato UTC ISO 8601, ad esempio 2019-06-04T22:00:10Z
Creatore Il creatore del documento
Descrizione La descrizione del contenuto della risorsa
Identificatore Un chiaro riferimento alla risorsa in un dato contesto
Parole chiave Parole chiave del documento
Lingua La lingua primaria del contenuto del documento
UltimaModificaDa L'utente che ha modificato per ultimo il documento
Modificato Il momento in cui il documento è stato modificato, rappresentato nel formato UTC ISO 8601, ad esempio 2019-06-04T22:00:10Z
Revisione La versione di revisione del documento
Soggetto Il soggetto del documento
Titolo Il titolo del documento
Versione Il numero di versione, che viene impostato dall'utente o dall'applicazione

Per esempio:

err := f.SetDocProps(&excelize.DocProperties{
    Categoria:       "categoria",
    StatoContenuto:  "Bozza",
    Creato:        "2019-06-04T22:00:10Z",
    Creatore:        "Go Excelize",
    Descrizione:    "Questo file creato da Go Excelize",
    Identificatore:     "xlsx",
    Parolechiave:       "Foglio di calcolo",
    UltimaModificaDa: "Go Autore",
    Modificato:       "2019-06-04T22:00:10Z",
    Revisione:       "0",
    Soggetto:        "Oggetto di test",
    Titolo:          "Titolo di test",
    Lingua:       "it-IT",
    Versione:        "1.0.0",
})

Ottieni le proprietà del documento

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

Ottieni le proprietà principali del documento di lavoro.

Proteggi il documento di lavoro

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

Proteggi la struttura del documento di lavoro con una password per impedire agli altri utenti di visualizzare i fogli di lavoro nascosti, aggiungere, spostare o nascondere fogli di lavoro e rinominare fogli di lavoro. Il campo NomeAlgoritmo supporta la specifica degli algoritmi hash XOR, MD4, MD5, SHA-1, SHA-256, SHA-384 o SHA-512. Se non viene specificato alcun algoritmo hash, viene utilizzato per impostazione predefinita l'algoritmo XOR. Per esempio, proteggi la struttura del documento di lavoro con una password:

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

WorkbookProtectionOptions definisce le opzioni per proteggere il documento di lavoro.

type WorkbookProtectionOptions struct {
    NomeAlgoritmo string
    Password      string
    BloccaStruttura bool
    BloccaFinestre   bool
}

Sblocca il documento di lavoro

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

Sblocca il documento di lavoro, specificando un parametro facoltativo password per verificare e rimuovere la protezione del documento di lavoro.