Cell
Il RichTextRun
definisce le proprietà del testo formattato.
type RichTextRun struct {
Font *Font
Text string
}
L'HyperlinkOpts
viene utilizzato per specificare le proprietà opzionali del collegamento ipertestuale, come il testo visualizzato e il suggerimento schermo.
type HyperlinkOpts struct {
Display *string
Tooltip *string
}
I FormulaOpts
vengono utilizzati per specificare tipi di formule speciali nella funzione SetCellFormula
.
type FormulaOpts struct {
Type *string // tipo di formula
Ref *string // riferimento della formula condivisa
}
Imposta il valore di una cella
func (f *File) SetCellValue(sheet, cell string, value interface{}) error
Imposta il valore di una cella in base al nome del foglio e alle coordinate della cella fornite. Questa funzione è sicura per le goroutine. Le coordinate specificate non devono trovarsi nella prima riga della tabella e dovrebbero essere utilizzati caratteri al plurale per l'impostazione del testo.
Tipi di dati supportati |
---|
int |
int8 |
int16 |
int32 |
int64 |
uint |
uint8 |
uint16 |
uint32 |
uint64 |
float32 |
float64 |
string |
[]byte |
time.Duration |
time.Time |
bool |
nil |
Si noti che questa funzione imposta il valore di una cella di tipo time.Time
con il formato numerico m/gg/aa h:mm
per impostazione predefinita e è possibile modificare questa impostazione utilizzando SetCellStyle
. Se è necessario impostare date Excel speciali che non possono essere rappresentate dal tipo time.Time
del linguaggio Go, come ad esempio il 0 gennaio 1900 o il 29 febbraio 1900, impostare il valore della cella su 0 o 60 e quindi impostarlo con uno stile che abbia un formato numerico per le date.
Imposta il valore booleano
func (f *File) SetCellBool(sheet, cell string, value bool) error
Imposta il valore di una cella booleana in base al nome del foglio e alle coordinate della cella fornite.
Imposta il valore di stringa predefinito
func (f *File) SetCellDefault(sheet, cell, value string) error
Imposta il valore di una cella di stringa in base al nome del foglio e alle coordinate della cella fornite, e i caratteri non saranno soggetti a filtri per caratteri speciali.
Imposta intero
func (f *File) SetCellInt(sheet, cell string, value int) error
Imposta il valore di una cella intera in base al nome del foglio e alle coordinate della cella fornite.
Imposta float
func (f *File) SetCellFloat(sheet, cell string, value float64, precision, bitSize int) error
Imposta il valore di una cella float in base al nome del foglio, alle coordinate della cella, al valore float, alla precisione della parte frazionaria del float e al tipo del float.
Imposta il valore di stringa
func (f *File) SetCellStr(sheet, cell, value string) error
Imposta il valore di una cella di stringa in base al nome del foglio e alle coordinate della cella, i caratteri saranno soggetti a filtri per caratteri speciali e la lunghezza accumulata della stringa non deve superare 32767
, qualsiasi carattere in eccesso verrà ignorato.
Imposta lo stile della cella
func (f *File) SetCellStyle(foglio, cellaOrizzontale, cellaVerticale string, idStile int) error
Imposta il valore di una cella in base al nome del foglio, alle coordinate della cella e all'indice dello stile. Questa funzione è thread-safe. L'indice dello stile può essere ottenuto tramite la funzione NewStyle
. Si noti che i parametri diagonalDown
e diagonalUp
all'interno della stessa area di coordinate devono mantenere colori consistenti. SetCellStyle
sovrascriverà lo stile esistente della cella senza impilare o unire gli stili.
- Esempio 1: Imposta lo stile del bordo per la cella
D7
nel foglio chiamatoFoglio1
:
stile, 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("Foglio1", "D7", "D7", stile)
I quattro bordi della cella D7
sono impostati con stili e colori diversi, che sono correlati ai parametri passati alla funzione NewStyle
. Per impostare stili diversi, fare riferimento alla documentazione in questo capitolo.
- Esempio 2: Imposta lo stile a gradiente per la cella
D7
nel foglio chiamatoFoglio1
:
stile, 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("Foglio1", "D7", "D7", stile)
La cella D7
è riempita con colori a gradiente, che sono correlati ai parametri passati alla funzione NewStyle
. Per impostare stili diversi, fare riferimento alla documentazione in questo capitolo.
- Esempio 3: Imposta il riempimento con un colore solido per la cella
D7
nel foglio chiamatoFoglio1
:
stile, err := f.NewStyle(&excelize.Style{
Fill: excelize.Fill{Type: "pattern", Color: []string{"E0EBF5"}, Pattern: 1},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Foglio1", "D7", "D7", stile)
La cella D7
è riempita con un colore solido.
- Esempio 4: Imposta il carattere di spaziatura e l'angolo di rotazione per la cella
D7
nel foglio chiamatoFoglio1
:
f.SetCellValue("Foglio1", "D7", "Stile")
stile, 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("Foglio1", "D7", "D7", stile)
- Esempio 5: Le date e gli orari in Excel sono rappresentati da numeri reali, ad esempio,
4/7/2017 12:00:00 PM
può essere rappresentato dal numero42920.5
. Imposta il formato dell'orario per la cellaD7
nel foglio di lavoro chiamatoFoglio1
:
f.SetCellValue("Foglio1", "D7", 42920.5)
f.SetColWidth("Foglio1", "D", "D", 13)
stile, err := f.NewStyle(&excelize.Style{NumFmt: 22})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Foglio1", "D7", "D7", stile)
La cella D7
è impostata con un formato orario. Nota che quando la larghezza della cella è troppo stretta per visualizzare il contenuto completo, verrà mostrato come ####
. È possibile regolare la larghezza della colonna trascinando o chiamando la funzione SetColWidth
per impostare la larghezza della colonna a una dimensione appropriata per una visualizzazione normale.
- Esempio 6: Imposta il carattere, la dimensione del carattere, il colore e lo stile corsivo per la cella
D7
nel foglio di lavoro chiamatoFoglio1
:
f.SetCellValue("Foglio1", "D7", "Excel")
stile, err := f.NewStyle(&excelize.Style{
Font: &excelize.Font{
Grassetto: true,
Corsivo: true,
Famiglia: "Times New Roman",
Dimensione: 36,
Colore: "777777",
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Foglio1", "D7", "D7", stile)
- Esempio 7: Blocca e nascondi la cella
D7
nel foglio di lavoro chiamatoFoglio1
:
stile, err := f.NewStyle(&excelize.Style{
Protezione: &excelize.Protection{
Nascosto: true,
Bloccato: true,
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Foglio1", "D7", "D7", stile)
Per bloccare o nascondere le celle, proteggere il foglio di lavoro. Nella scheda "Revisione", fare clic su "Proteggi foglio".
func (f *File) SetCellHyperLink(foglio, cella, collegamento, tipoCollegamento string, opts ...HyperlinkOpts) error
Imposta il collegamento ipertestuale per una cella in base al foglio di lavoro, alle coordinate della cella, alla risorsa del collegamento e al tipo di risorsa. Il tipo di risorsa include due tipi: indirizzo del collegamento esterno Esterno
e collegamento alla posizione interna all'interno del workbook Posizione
. Il numero massimo di collegamenti ipertestuali in ogni foglio di lavoro è limitato a 65530
. Questo metodo imposta solo il collegamento ipertestuale per la cella senza influenzare il valore della cella. Se è necessario impostare il valore della cella, si prega di impostarlo separatamente attraverso funzioni come SetCellStyle
o SetSheetRow
.
- Esempio 1: Aggiungi un collegamento esterno alla cella
A3
nel foglio di lavoro chiamatoFoglio1
:
visualizzazione, suggerimento := "https://github.com/xuri/excelize", "Excelize su GitHub"
if err := f.SetCellHyperLink("Foglio1", "A3",
"https://github.com/xuri/excelize", "Esterno", excelize.HyperlinkOpts{
Visualizzazione: &visualizzazione,
Suggerimento: &suggerimento,
}); err != nil {
fmt.Println(err)
}
// Imposta il carattere e lo stile sottolineato per la cella
stile, err := f.NewStyle(&excelize.Style{
Font: &excelize.Font{Colore: "1265BE", Sottolineato: "singolo"},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Foglio1", "A3", "A3", stile)
- Esempio 2: Aggiungi un collegamento di posizione alla cella
A3
nel foglio di lavoro chiamatoFoglio1
:
err := f.SetCellHyperLink("Foglio1", "A3", "Foglio1!A40", "Posizione")
func (f *File) SetCellRichText(foglio, cella string, runs []RichTextRun) error
Imposta il formato del testo ricco per la cella specificata in base al foglio di lavoro, alle coordinate della cella e al formato del testo ricco forniti.
Ad esempio, imposta il formato del testo ricco per la cella `A1` nel foglio di lavoro chiamato `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: "grassetto",
Font: &excelize.Font{
Bold: true,
Color: "2354E8",
Family: "Times New Roman",
},
},
// ... (Altri blocchi di testo ricco)
}); err != nil {
fmt.Println(err)
return
}
// ... (Altre impostazioni di stile della cella e salvataggio)
}
func (f *File) GetCellRichText(sheet, cell string) ([]RichTextRun, error)
Ottieni il formato del testo ricco per la cella specificata in base al foglio di lavoro e alle coordinate della cella.
func (f *File) GetCellValue(sheet, cell string, opts ...Options) (string, error)
Ottieni il valore della cella specificata in base al foglio di lavoro e alle coordinate della cella, e il valore restituito verrà convertito in tipo stringa
. Se il formato della cella può essere applicato al valore della cella, verrà restituito il valore applicato; altrimenti, verrà restituito il valore originale. I valori di tutte le celle all'interno di un'area unita sono gli stessi. Questa funzione è sicura per la concorrenza.
func (f *File) GetCellType(sheet, cell string) (CellType, error)
Ottieni il tipo di dato della cella specificata in base al foglio di lavoro e alle coordinate della cella.
func (f *File) GetCols(sheet string, opts ...Options) ([][]string, error)
Recupera i valori di tutte le celle sul foglio di lavoro specificato per colonna, e li restituisce sotto forma di un array bidimensionale, con i valori delle celle convertiti in tipo stringa
. Se il formato della cella può essere applicato al valore della cella, verrà utilizzato il valore applicato; altrimenti, verrà utilizzato il valore originale.
Ad esempio, per recuperare e iterare attraverso tutti i valori delle celle nel foglio di lavoro chiamato Sheet1
per colonna:
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)
Recupera i valori di tutte le celle sul foglio di lavoro specificato per riga, e li restituisce sotto forma di un array bidimensionale, con i valori delle celle convertiti in tipo stringa
. Se il formato della cella può essere applicato al valore della cella, verrà utilizzato il valore applicato; altrimenti, verrà utilizzato il valore originale. GetRows
recupera righe con celle contenenti valori o formule. Le celle vuote alla fine di una riga verranno saltate, e il numero di celle in ogni riga può variare.
Ad esempio, per recuperare e iterare attraverso tutti i valori delle celle nel foglio di lavoro chiamato Sheet1
per riga:
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)
Ottieni l'iperlink della cella specificata in base al foglio di lavoro e alle coordinate della cella fornite. Se la cella contiene un'iperlink, restituirà `true` e l'indirizzo del link; in caso contrario, restituirà `false` e un indirizzo del link vuoto.
Ad esempio, per ottenere l'iperlink della cella alle coordinate `H6` nel foglio di lavoro chiamato `Sheet1`:
```go
link, target, err := f.GetCellHyperLink("Sheet1", "H6")
func (f *File) GetCellStyle(sheet, cell string) (int, error)
Ottieni l'indice dello stile della cella specificata in base al foglio di lavoro e alle coordinate della cella fornite, e l'indice ottenuto può essere utilizzato come parametro quando si chiama la funzione SetCellStyle
per impostare lo stile della cella.
func (f *File) MergeCell(sheet, hCell, vCell string) error
Unisci le celle nella regione delle coordinate della cella fornita nel foglio di lavoro dato. Sarà mantenuto solo il valore della cella in alto a sinistra della regione unita, mentre i valori delle altre celle verranno ignorati. Ad esempio, unisci le celle nella regione D3:E9
nel foglio di lavoro chiamato Sheet1
:
err := f.MergeCell("Sheet1", "D3", "E9")
Se la regione di coordinate della cella fornita si sovrappone con celle unite esistenti, le celle unite esistenti verranno rimosse.
func (f *File) UnmergeCell(sheet string, hCell, vCell string) error
Dividi le celle nella regione delle coordinate della cella fornita nel foglio di lavoro dato. Ad esempio, divide le celle nella regione D3:E9
nel foglio di lavoro chiamato Sheet1
:
err := f.UnmergeCell("Sheet1", "D3", "E9")
Se la regione di coordinate della cella fornita contiene più celle unite, tutte le celle unite verranno divise.
Ottieni la regione di coordinate e i valori di tutte le celle unite nel foglio di lavoro dato.
func (f *File) GetMergeCells(sheet string) ([]MergeCell, error)
func (m *MergeCell) GetCellValue() string
GetCellValue restituisce il valore della cella unita.
func (m *MergeCell) GetStartAxis() string
GetStartAxis restituisce le coordinate della cella in alto a sinistra della regione della cella unita, ad esempio, C2
.
func (m *MergeCell) GetEndAxis() string
GetEndAxis restituisce le coordinate della cella in basso a destra della regione della cella unita, ad esempio, D4
.
func (f *File) AddComment(sheet string, comment Comment) error
Aggiungi un commento al foglio di lavoro, alle coordinate della cella e ai parametri dello stile (autore e informazioni di testo). Le informazioni sull'autore hanno una lunghezza massima di 255 caratteri, e la lunghezza massima del contenuto del testo è di 32512 caratteri. Caratteri al di là di questo intervallo verranno ignorati. Ad esempio, aggiungi un commento alla cella Sheet1!$A$3
:
err := f.AddComment("Sheet1", excelize.Comment{
Cell: "A3",
Author: "Excelize",
Paragraph: []excelize.RichTextRun{
{Text: "Excelize: ", Font: &excelize.Font{Bold: true}},
{Text: "Questo è un commento."},
},
})
func (f *File) GetComments(sheet string) ([]Comment, error)
Ottieni tutti i commenti delle celle nel foglio di lavoro dato.
func (f *File) DeleteComment(sheet, cell string) error
Elimina il commento nelle coordinate di foglio di lavoro e cella fornite. Ad esempio, elimina il commento nella cella Sheet1!$A$30
:
err := f.DeleteComment("Sheet1", "A30")