Célula
O RichTextRun
define as propriedades do texto formatado.
type RichTextRun struct {
Font *Font
Text string
}
O HyperlinkOpts
é usado para especificar as propriedades opcionais de hiperlink, como o texto de exibição e a dica de tela.
type HyperlinkOpts struct {
Display *string
Tooltip *string
}
O FormulaOpts
é usado para especificar tipos de fórmulas especiais na função SetCellFormula
.
type FormulaOpts struct {
Type *string // tipo de fórmula
Ref *string // referência de fórmula compartilhada
}
Definir o valor de uma célula
func (f *Arquivo) SetCellValue(planilha, célula string, valor interface{}) error
Define o valor de uma célula com base no nome da planilha e nas coordenadas da célula fornecidos. Essa função é segura para goroutines. As coordenadas especificadas não devem estar na primeira linha da tabela e caracteres no plural devem ser usados para configuração de texto.
Tipos de dados suportados |
---|
int |
int8 |
int16 |
int32 |
int64 |
uint |
uint8 |
uint16 |
uint32 |
uint64 |
float32 |
float64 |
string |
[]byte |
time.Duration |
time.Time |
bool |
nil |
Por favor, note que esta função define o valor de uma célula do tipo time.Time
com o formato numérico m/d/yy h:mm
por padrão e você pode alterar essa configuração usando SetCellStyle
. Se precisar definir datas Excel especiais que não possam ser representadas pelo tipo time.Time
da linguagem Go, como 0 de janeiro de 1900 ou 29 de fevereiro de 1900, defina o valor da célula como 0 ou 60 e, em seguida, defina com um estilo que tenha um formato de data.
Definir valor booleano
func (f *Arquivo) SetCellBool(planilha, célula string, valor bool) error
Define o valor de uma célula booleana com base no nome da planilha e nas coordenadas da célula fornecidos.
Definir valor de string padrão
func (f *Arquivo) SetCellDefault(planilha, célula, valor string) error
Define o valor de uma célula de string com base no nome da planilha e nas coordenadas da célula, e os caracteres não estarão sujeitos a filtragem de caracteres especiais.
Definir inteiro
func (f *Arquivo) SetCellInt(planilha, célula string, valor int) error
Define o valor de uma célula inteira com base no nome da planilha e nas coordenadas da célula fornecidos.
Definir ponto flutuante
func (f *Arquivo) SetCellFloat(planilha, célula string, valor float64, precisão, tamanhoBit int) error
Define o valor de uma célula de ponto flutuante com base no nome da planilha, coordenadas da célula, valor de ponto flutuante, precisão da parte fracionária do ponto flutuante e o tipo do ponto flutuante.
Definir valor de string
func (f *Arquivo) SetCellStr(planilha, célula, valor string) error
Define o valor de uma célula de string com base no nome da planilha e nas coordenadas da célula, os caracteres estarão sujeitos à filtragem de caracteres especiais e o comprimento acumulado da string não deve exceder 32767
, caracteres em excesso serão ignorados.
Definir Estilo da Célula
func (f *File) SetCellStyle(sheet, hCell, vCell string, styleID int) error
Define o valor de uma célula com base no nome da planilha, coordenadas da célula e índice de estilo fornecido. Esta função é segura para thread. O índice de estilo pode ser obtido por meio da função NewStyle
. Observe que o diagonalDown
e o diagonalUp
dentro da mesma área de coordenadas precisam manter cores consistentes. SetCellStyle
irá substituir o estilo existente da célula sem empilhar ou mesclar os estilos.
- Exemplo 1: Definir estilo de borda para a célula
D7
na planilha nomeadaPlanilha1
:
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("Planilha1", "D7", "D7", style)
As quatro bordas da célula D7
são definidas com diferentes estilos e cores, que estão relacionadas aos parâmetros passados para a função NewStyle
. Para definir estilos diferentes, consulte a documentação deste capítulo.
- Exemplo 2: Definir estilo de gradiente para a célula
D7
na planilha nomeadaPlanilha1
:
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("Planilha1", "D7", "D7", style)
A célula D7
é preenchida com cores de gradiente, que estão relacionadas aos parâmetros passados para a função NewStyle
. Para definir estilos diferentes, consulte a documentação deste capítulo.
- Exemplo 3: Definir preenchimento de cor sólida para a célula
D7
na planilha nomeadaPlanilha1
:
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("Planilha1", "D7", "D7", style)
A célula D7
é preenchida com uma cor sólida.
- Exemplo 4: Definir espaçamento de caracteres e ângulo de rotação para a célula
D7
na planilha nomeadaPlanilha1
:
f.SetCellValue("Planilha1", "D7", "Estilo")
style, err := f.NewStyle(&excelize.Style{
Alignment: &excelize.Alignment{
Horizontal: "centro",
Recuo: 1,
JustificarÚltimaLinha: true,
OrdemLeitura: 0,
RecuoRelativo: 1,
Reduzirajuste: true,
RotaçãoTexto: 45,
Vertical: "",
QuebrarTexto: true,
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Planilha1", "D7", "D7", style)
- Exemplo 5: As datas e horas no Excel são representadas por números reais, por exemplo,
2017/7/4 12:00:00 PM
pode ser representado pelo número42920,5
. Defina o formato de hora para a célulaD7
na planilha denominadaSheet1
:
f.SetCellValue("Sheet1", "D7", 42920,5)
f.SetColWidth("Sheet1", "D", "D", 13)
estilo, err := f.NewStyle(&excelize.Style{NumFmt: 22})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", estilo)
A célula D7
é definida com um formato de hora. Observe que quando a largura da célula é muito estreita para exibir o conteúdo completo, ela será exibida como ####
. Você pode ajustar a largura da coluna arrastando ou chamando a função SetColWidth
para definir a largura da coluna para um tamanho apropriado para exibição normal.
- Exemplo 6: Defina a fonte, tamanho da fonte, cor e estilo em itálico para a célula
D7
na planilha denominadaSheet1
:
f.SetCellValue("Sheet1", "D7", "Excel")
estilo, err := f.NewStyle(&excelize.Style{
Font: &excelize.Font{
Negrito: true,
Itálico: true,
Família: "Times New Roman",
Tamanho: 36,
Cor: "777777",
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", estilo)
- Exemplo 7: Bloquear e ocultar a célula
D7
na planilha denominadaSheet1
:
estilo, err := f.NewStyle(&excelize.Style{
Proteção: &excelize.Protection{
Oculto: true,
Bloqueado: true,
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", estilo)
Para bloquear ou ocultar células, proteja a planilha. Na guia "Revisão", clique em "Proteger Planilha".
```go
func (f *File) SetCellHyperLink(sheet, cell, link, linkType string, opts ...HyperlinkOpts) error
Defina o hyperlink para uma célula com base na planilha, coordenadas da célula, recurso de link e tipo de recurso fornecidos. O tipo de recurso inclui dois tipos: endereço de link externo Externo
e link de posição interna dentro da pasta de trabalho Localização
. O número máximo de hyperlinks em cada planilha é limitado a 65530
. Este método apenas define o hyperlink para a célula sem afetar o valor da célula. Se precisar definir o valor da célula, defina-o separadamente por meio de funções como SetCellStyle
ou SetSheetRow
.
- Exemplo 1: Adicionar um link externo à célula
A3
na planilha denominadaSheet1
:
exibição, dica := "https://github.com/xuri/excelize", "Excelize no GitHub"
if err := f.SetCellHyperLink("Sheet1", "A3",
"https://github.com/xuri/excelize", "Externo", excelize.HyperlinkOpts{
Exibição: &exibição,
Dica: &dica,
}); err != nil {
fmt.Println(err)
}
// Definir estilo de fonte e sublinhado para a célula
estilo, err := f.NewStyle(&excelize.Style{
Fonte: &excelize.Fonte{Cor: "1265BE", Sublinhado: "simples"},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "A3", "A3", estilo)
- Exemplo 2: Adicionar um link de localização à célula
A3
na planilha denominadaSheet1
:
err := f.SetCellHyperLink("Sheet1", "A3", "Sheet1!A40", "Localização")
func (f *File) SetCellRichText(sheet, cell string, runs []RichTextRun) error
Defina o formato de texto rico para a célula especificada com base na planilha, coordenadas da célula e formato de texto rico fornecidos.
Por exemplo, defina o formato de texto rico para a célula A1
na planilha chamada Planilha1
:
```go
pacote principal
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("Planilha1", 1, 35); err != nil {
fmt.Println(err)
return
}
if err := f.SetColWidth("Planilha1", "A", "A", 44); err != nil {
fmt.Println(err)
return
}
if err := f.SetCellRichText("Planilha1", "A1", []excelize.RichTextRun{
{
Text: "em negrito",
Font: &excelize.Font{
Negrito: true,
Cor: "2354E8",
Familia: "Times New Roman",
},
},
// ... (Outras execuções de texto rico)
}); err != nil {
fmt.Println(err)
return
}
// ... (Outras configurações de estilo de célula e salvamento)
}
func (f *File) GetCellRichText(planilha, célula string) ([]RichTextRun, error)
Obtenha o formato de texto rico da célula especificada com base na planilha e coordenadas da célula fornecidas.
func (f *File) GetCellValue(planilha, célula string, opts ...Opções) (string, error)
Obtenha o valor da célula especificada com base na planilha e coordenadas da célula, e o valor de retorno será convertido para o tipo string
. Se o formato da célula puder ser aplicado ao valor da célula, o valor aplicado será retornado; caso contrário, o valor original será retornado. Os valores de todas as células dentro de uma área mesclada são iguais. Esta função é segura para concorrência.
func (f *File) GetCellType(planilha, célula string) (TipoCélula, error)
Obtenha o tipo de dados da célula especificada com base na planilha e coordenadas da célula fornecidas.
func (f *File) GetCols(planilha string, opts ...Opções) ([][]string, error)
Recupere os valores de todas as células na planilha especificada por coluna e retorne-os na forma de uma matriz bidimensional, com os valores das células convertidos para o tipo string
. Se o formato da célula puder ser aplicado ao valor da célula, o valor aplicado será usado; caso contrário, o valor original será usado.
Por exemplo, para recuperar e iterar por todos os valores das células na planilha chamada Planilha1
por coluna:
cols, err := f.GetCols("Planilha1")
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(planilha string, opts ...Opções) ([][]string, error)
Recupere os valores de todas as células na planilha especificada por linha e retorne-os na forma de uma matriz bidimensional, com os valores das células convertidos para o tipo string
. Se o formato da célula puder ser aplicado ao valor da célula, o valor aplicado será usado; caso contrário, o valor original será usado. GetRows
recupera linhas com células contendo valores ou fórmulas. As células vazias no final de uma linha serão ignoradas, e o número de células em cada linha pode variar.
Por exemplo, para recuperar e iterar por todos os valores das células na planilha chamada Planilha1
por linha:
rows, err := f.GetRows("Planilha1")
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(planilha, célula string) (bool, string, error)
Recupere o hiperlink da célula especificada com base na planilha e coordenadas da célula fornecidas. Se a célula contiver um hiperlink, ele retornará `true` e o endereço do link; caso contrário, retornará `false` e um endereço de link vazio.
Por exemplo, para recuperar o hiperlink da célula nas coordenadas `H6` na planilha chamada `Sheet1`:
```go
link, target, err := f.GetCellHyperLink("Sheet1", "H6")
func (f *File) GetCellStyle(planilha, célula string) (int, error)
Recupere o índice de estilo da célula especificada com base na planilha e coordenadas da célula fornecidas, e o índice recuperado pode ser usado como parâmetro ao chamar a função SetCellStyle
para definir o estilo da célula.
func (f *File) MergeCell(planilha, célulaH, célulaV string) error
Junte as células na região de coordenadas da célula fornecida na planilha. Apenas o valor da célula superior esquerda na região mesclada será mantido, e os valores das outras células serão ignorados. Por exemplo, mesclar as células na região D3:E9
na planilha chamada Sheet1
:
err := f.MergeCell("Sheet1", "D3", "E9")
Se a região de coordenadas da célula fornecida se sobrepõe a células mescladas existentes, as células mescladas existentes serão removidas.
func (f *File) UnmergeCell(planilha string, célulaH, célulaV string) error
Desagrupe as células na região de coordenadas da célula fornecida na planilha. Por exemplo, desagrupar as células na região D3:E9
na planilha chamada Sheet1
:
err := f.UnmergeCell("Sheet1", "D3", "E9")
Se a região de coordenadas da célula fornecida contiver várias células mescladas, todas as células mescladas serão desagrupadas.
Obtenha a região de coordenadas e valores de todas as células mescladas na planilha fornecida.
func (f *File) GetMergeCells(planilha string) ([]MergeCell, error)
func (m *MergeCell) GetCellValue() string
GetCellValue retorna o valor da célula mesclada.
func (m *MergeCell) GetStartAxis() string
GetStartAxis retorna a coordenada da célula superior esquerda da região de células mescladas, por exemplo, C2
.
func (m *MergeCell) GetEndAxis() string
GetEndAxis retorna a coordenada da célula inferior direita da região de células mescladas, por exemplo, D4
.
func (f *File) AddComment(planilha string, comentário Comment) error
Adicione um comentário à planilha, coordenadas da célula e parâmetros de estilo (informações do autor e texto). As informações do autor têm um comprimento máximo de 255 caracteres, e o comprimento máximo do conteúdo de texto é de 32512 caracteres. Caracteres além dessa faixa serão ignorados. Por exemplo, adicione um comentário à célula Sheet1!$A$3
:
err := f.AddComment("Sheet1", excelize.Comment{
Cell: "A3",
Author: "Excelize",
Paragraph: []excelize.RichTextRun{
{Text: "Excelize: ", Font: &excelize.Font{Bold: true}},
{Text: "Este é um comentário."},
},
})
func (f *File) GetComments(planilha string) ([]Comment, error)
Obtenha todos os comentários de células na planilha fornecida.
func (f *File) DeleteComment(planilha, célula string) error
Exclua o comentário na planilha e coordenada da célula fornecidas. Por exemplo, exclua o comentário na célula Sheet1!$A$30
:
err := f.DeleteComment("Sheet1", "A30")