Pasta de trabalho

Options define as opções para ler e escrever planilhas.

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

MaxCalcIterations é usado para especificar o número máximo de iterações ao calcular fórmulas, com um valor padrão de 0.

Password é usado para especificar a senha para abrir e salvar a pasta de trabalho em texto simples, com um valor padrão vazio.

RawCellValue é usado para especificar se deve recuperar o valor bruto ao ler os valores das células, com um valor padrão de false (aplicando formato de número).

UnzipSizeLimit é usado para especificar o limite de tamanho (em bytes) para descompressão ao abrir um documento de planilha, que deve ser maior ou igual a UnzipXMLSizeLimit, com um limite padrão de 16GB.

UnzipXMLSizeLimit é usado para especificar o limite de memória (em bytes) ao descomprimir cada planilha e tabela de strings compartilhadas, e quando o tamanho excede esse valor, o arquivo XML da planilha será descomprimido para o diretório temporário do sistema. Este valor deve ser menor ou igual a UnzipSizeLimit, com um limite padrão de 16MB.

ShortDatePattern é usado para especificar o código de formato numérico de data curta.

LongDatePattern é usado para especificar o código de formato numérico de data longa.

LongTimePattern é usado para especificar o código de formato numérico de hora longa.

CultureInfo é usado para especificar o formato regional, que será usado ao ler os formatos numéricos influenciados pelas configurações de data e hora específicas da região.

Criar

func NewFile(opts ...Options) *File

Use NewFile para criar uma nova pasta de trabalho do Excel, que por padrão conterá uma planilha chamada Sheet1.

Abrir

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

Use OpenFile para abrir um documento do Excel existente. Por exemplo, abra um documento de planilha com proteção por senha:

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

Use Close() para fechar a pasta de trabalho aberta.

Abrir fluxo de dados

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

OpenReader lê dados de io.Reader.

No exemplo a seguir, criamos um servidor HTTP simples para receber documentos de planilha enviados, adicionar uma nova planilha ao documento recebido e retornar uma resposta de 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)
}

Testando usando cURL:

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

Salvar

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

Use Save para salvar as edições em um documento do Excel.

Salvar como

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

Use SaveAs para salvar o documento do Excel como um arquivo especificado.

Fechar Pasta de Trabalho

func (f *File) Close() error

Feche a pasta de trabalho e limpe qualquer cache de disco do sistema que possa ter sido criado ao abrir o documento.

Nova Planilha

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

Crie uma nova planilha com base no nome da planilha fornecido e retorne o índice da planilha no livro. Por favor, note que ao criar um novo livro, ele conterá uma planilha padrão chamada Planilha1.

Excluir Planilha

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

Exclua a planilha especificada com base no nome da planilha fornecido. Use este método com cautela, pois afetará fórmulas, referências, gráficos e outros elementos associados à planilha excluída. Se outros componentes referenciarem valores na planilha excluída, será exibido um erro e poderá até impedir a abertura do livro. A chamada deste método é inválida quando o livro contém apenas uma planilha.

Copiar Planilha

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

Copie a planilha com base na planilha de origem fornecida e no índice da planilha de destino. O desenvolvedor precisa confirmar se o índice da planilha de destino já existe. Atualmente, apenas a cópia de planilhas contendo valores de células e fórmulas é suportada, enquanto a cópia de planilhas contendo tabelas, imagens, gráficos e tabelas dinâmicas não é suportada.

// A planilha chamada Planilha1 já existe ...
index, err := f.NewSheet("Planilha2")
if err != nil {
    fmt.Println(err)
    return
}
err := f.CopySheet(1, index)

Agrupar Planilhas

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

Agrupe as planilhas com base nos nomes das planilhas fornecidos, e a planilha padrão deve estar incluída nas planilhas fornecidas.

Desagrupar Planilhas

func (f *File) UngroupSheets() error

Desagrupe as planilhas.

Definir Imagem de Fundo da Planilha

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

Defina uma imagem de fundo em mosaico para a planilha especificada com base no nome da planilha e no caminho do arquivo de imagem. Os formatos de arquivo de imagem suportados incluem: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF e WMZ.

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

Defina uma imagem de fundo em mosaico para a planilha especificada com base no nome da planilha, extensão do formato de imagem e dados de formato de imagem. Os formatos de arquivo de imagem suportados incluem: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF e WMZ.

Definir Planilha Padrão

func (f *File) SetActiveSheet(index int)

Defina a planilha padrão com base no valor do índice fornecido, onde o valor deve ser maior ou igual a 0 e menor que o número total cumulativo de planilhas no livro.

Obter Índice da Planilha Padrão

func (f *File) GetActiveSheetIndex() int

Obtenha o índice da planilha padrão, retornando 0 se nenhuma planilha padrão for encontrada.

Definir Visibilidade da Planilha

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

Defina a visibilidade da planilha com base no nome da planilha fornecido e parâmetro de visibilidade. Um livro deve conter pelo menos uma planilha visível. Se a planilha fornecida for a planilha padrão, a configuração de visibilidade é inválida. O terceiro parâmetro opcional veryHidden é válido apenas quando o valor do parâmetro visible for false.

Por exemplo, para ocultar a planilha chamada Planilha1:

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

Obter Visibilidade da Planilha

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

Obtenha a configuração de visibilidade da planilha com base no nome da planilha fornecido. Por exemplo, para recuperar a configuração de visibilidade da planilha chamada Planilha1:

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

Definir Propriedades da Planilha

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

Defina as propriedades de uma planilha especificada com base no nome da planilha fornecido e nas opções de propriedade. As opções de propriedade da planilha suportadas são as seguintes:

Propriedade Tipo Descrição
CodeName *string Nome de código
EnableFormatConditionsCalculation *bool Especifica se a formatação condicional é calculada automaticamente, com um valor padrão de true
Published *bool Especifica se a planilha está publicada, com um valor padrão de true
AutoPageBreaks *bool Especifica se a planilha quebra páginas automaticamente, com um valor padrão de true
FitToPage *bool Especifica se permite a impressão ajustada à página, com um valor padrão de false
TabColorIndexed *int Usado para um valor de cor indexada compatível com versões anteriores
TabColorRGB *string Valor de cor ARGB padrão
TabColorTheme *int Índice de cor do tema a partir de 0
TabColorTint *float64 Valor de tonalidade aplicado à cor, com um valor padrão de 0,0
OutlineSummaryBelow *bool Especifica a direção das informações resumidas, se abaixo dos dados detalhados, com um valor padrão de true
OutlineSummaryRight *bool Especifica a direção das informações resumidas, se à direita dos dados detalhados, com um valor padrão de true
BaseColWidth *uint8 Largura básica da coluna representada pelo número de caracteres, com um valor padrão de 8
DefaultColWidth *float64 Largura padrão da coluna incluindo margens e linhas de grade
DefaultRowHeight *float64 Altura da linha representada em pontos
CustomHeight *bool Especifica se a altura da linha personalizada é aplicada, com um valor padrão de false
ZeroHeight *bool Especifica se as linhas estão ocultas por padrão, com um valor padrão de false
ThickTop *bool Especifica se as linhas têm uma borda superior espessa por padrão, com um valor padrão de false
ThickBottom *bool Especifica se as linhas têm uma borda inferior espessa por padrão, com um valor padrão de false

Por exemplo, para definir a linha padrão na planilha chamada Planilha1 como oculta:

Definir propriedades da planilha

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

Obter Propriedades da Planilha

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

Obtenha as propriedades de uma planilha especificada com base no nome da planilha fornecido.

Definir Propriedades de Visualização da Planilha

func (f *File) SetSheetView(planilha string, indiceVisualizacao int, opts *OpcoesVisualizacao) error

Define as propriedades de visualização da planilha com base no nome da planilha, no índice de visualização e nas opções de visualização fornecidas. indiceVisualizacao pode ser um número negativo, caso em que a contagem será feita de trás para frente (-1 representa a última visualização). As opções suportadas para definir as propriedades de visualização da planilha são as seguintes:

Propriedade Tipo Descrição
DefaultGridColor *bool Especifica se deve usar a cor padrão da linha de grade, o valor padrão é true
DireitaParaEsquerda *bool Especifica se deve ser exibido da direita para a esquerda, o valor padrão é false
MostrarFormulas *bool Especifica se a planilha exibe fórmulas, o valor padrão é false
MostrarLinhasGrade *bool Especifica se a planilha exibe linhas de grade, o valor padrão é true
MostrarCabecalhosLinhaColuna *bool Especifica se a planilha exibe cabeçalhos de linha e coluna, o valor padrão é true
MostrarRegua *bool Especifica se deve exibir a régua na visualização de layout de página, o valor padrão é true
MostrarZeros *bool Especifica se deve exibir valores zero nas células, o valor padrão é true, caso contrário, será exibido em branco
CelulaSuperiorEsquerda *string Especifica a coordenada da célula superior esquerda visível
Visualizacao *string Indica o tipo de visualização da planilha, com valores enum normal, visualizacaoQuebraPagina e visualizacaoLayoutPagina
EscalaZoom *float64 Porcentagem de escala de zoom da janela de exibição da visualização atual, limitada a um intervalo de 10 a 400, o valor padrão é 100

Obter Propriedades de Visualização da Planilha

func (f *File) GetSheetView(planilha string, indiceVisualizacao int) (OpcoesVisualizacao, error)

Recupere as propriedades de visualização da planilha com base no nome da planilha e no índice de visualização. indiceVisualizacao pode ser um número negativo, caso em que a contagem será feita de trás para frente (-1 representa a última visualização).

Definir Layout da Página da Planilha

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

Define os atributos do layout da página da planilha com base no nome da planilha fornecido e nos parâmetros de layout da página. Os atributos de layout de página atualmente suportados incluem:

O atributo Size é usado para especificar o tamanho do papel da página, sendo o tamanho padrão do layout da página "Letter 8½ × 11 inches". A tabela a seguir mostra a relação entre os tamanhos do layout da página e o índice do parâmetro Size no Excelize:

Índice Tamanho do Papel
1 Letter 8½ × 11 inches
2 Letter Small 8½ × 11 inches
3 Tabloid 11 × 17 inches
4 Ledger 17 × 11 inches
... ...
40 German Standard Fanfold 8.5 × 12 inches
41 German legal paper fanfold 8.5 × 13 inches
42 ISO B4 250 × 353 mm
43 Japanese postcard 100 × 148 mm
44 Standard paper 9 × 11 inches
45 Standard paper 10 × 11 inches
46 Standard paper 15 × 11 inches
47 Convite 220 × 220 mm
50 Cabeçalho aumentado 9.275 × 12 inches
51 Papel extra grande legal 9.275 × 15 inches
52 Papel extra tabloide 11.69 × 18 inches
53 A4 extra grande 236 × 322 mm
54 Cabeçalho em paisagem 8.275 × 11 inches
55 A4 em paisagem 210 × 297 mm
56 Cabeçalho extra grande em paisagem 9.275 × 12 inches
57 Papel SuperA/SuperA/A4 227 × 356 mm
58 Papel SuperB/SuperB/A3 305 × 487 mm
59 Cabeçalho aumentado 8.5 × 12.69 inches
60 A4 aumentado 210 × 330 mm
61 A5 em paisagem 148 × 210 mm
62 JIS B5 em paisagem 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 em paisagem 297 × 420 mm
68 A3 extra grande em paisagem 322 × 445 mm
69 Dobro de cartão postal japonês 200 × 148 mm
70 A6 105 × 148 mm
71 Envelope japonês Kaku #2
72 Envelope japonês Kaku #3
73 Envelope japonês Chou #3
74 Envelope japonês Chou #4
75 Cabeçalho em paisagem 11 × 8½ inches
76 A3 em paisagem 420 × 297 mm
77 A4 em paisagem 297 × 210 mm
78 A5 em paisagem 210 × 148 mm
79 B4 (JIS) em paisagem 364 × 257 mm
80 B5 (JIS) em paisagem 257 × 182 mm
81 Cartão postal japonês em paisagem 148 × 100 mm
82 Dobro de cartão postal japonês em paisagem 148 × 200 mm
83 A6 em paisagem 148 × 105 mm
84 Envelope japonês Kaku #2 em paisagem
85 Envelope japonês Kaku #3 em paisagem
86 Envelope japonês Chou #3 em paisagem
```markdown
| 87 | Envelope japonês Chou #4 Paisagem |
| 88 | B6 (JIS) 128 × 182 mm |
| 89 | B6 (JIS) Paisagem 182 × 128 mm |
| 90 | 12 × 11 polegadas |
| 91 | Envelope japonês You #4 |
| 92 | Envelope japonês You #4 Paisagem |
| 93 | Chinês 16K 146 × 215 mm |
| 94 | Chinês 32K 97 × 151 mm |
| 95 | Chinês Grande 32K 97 × 151 mm |
| 96 | Envelope chinês #1 102 × 165 mm |
| 97 | Envelope chinês #2 102 × 176 mm |
| 98 | Envelope chinês #3 125 × 176 mm |
| 99 | Envelope chinês #4 110 × 208 mm |
| 100 | Envelope chinês #5 110 × 220 mm |
| 101 | Envelope chinês #6 120 × 230 mm |
| 102 | Envelope chinês #7 160 × 230 mm |
| 103 | Envelope chinês #8 120 × 309 mm |
| 104 | Envelope chinês #9 229 × 324 mm |
| 105 | Envelope chinês #10 324 × 458 mm |
| 106 | Chinês 16K Paisagem |
| 107 | Chinês 32K Paisagem |
| 108 | Chinês Grande 32K Paisagem |
| 109 | Envelope chinês #1 Paisagem 165 × 102 mm |
| 110 | Envelope chinês #2 Paisagem 176 × 102 mm |
| 111 | Envelope chinês #3 Paisagem 176 × 125 mm |
| 112 | Envelope chinês #4 Paisagem 208 × 110 mm |
| 113 | Envelope chinês #5 Paisagem 220 × 110 mm |
| 114 | Envelope chinês #6 Paisagem 230 × 120 mm |
| 115 | Envelope chinês #7 Paisagem 230 × 160 mm |
| 116 | Envelope chinês #8 Paisagem 309 × 120 mm |
| 117 | Envelope chinês #9 Paisagem 324 × 229 mm |
| 118 | Envelope chinês #10 Paisagem 458 × 324 mm |

A propriedade `Orientation` é usada para especificar a direção do layout da página, com a direção padrão do layout da página sendo "retrato", e os valores opcionais sendo `portrait` e `landscape`.

A propriedade `FirstPageNumber` é usada para especificar o número da página inicial, sendo o padrão automático.

A propriedade `AdjustTo` é usada para especificar a taxa de escala da página, com uma faixa de 10 a 400, ou seja, escalando de 10% a 400%, e o valor padrão é `100` para o tamanho normal. Configurar `FitToHeight` ou `FitToWidth` substituirá esta propriedade.

A propriedade `FitToHeight` é usada para especificar a escala da página para ajustar a largura da página, com um valor padrão de `1`.

A propriedade `FitToWidth` é usada para especificar a escala da página para ajustar a altura da página, com um valor padrão de `1`.

A propriedade `BlackAndWhite` é usada para especificar a impressão monocromática, sendo o padrão desligado.
f := excelize.NewFile()
var (
    size                 = 10
    orientation          = "landscape"
    firstPageNumber uint = 2
    adjustTo        uint = 100
    fitToHeight          = 2
    fitToWidth           = 2
    blackAndWhite        = true
)
if err := f.SetPageLayout("Sheet1", &excelize.PageLayoutOptions{
    Size:            &size,
    Orientation:     &orientation,
    FirstPageNumber: &firstPageNumber,
    AdjustTo:        &adjustTo,
    FitToHeight:     &fitToHeight,
    FitToWidth:      &fitToWidth,
    BlackAndWhite:   &blackAndWhite,
}); err != nil {
    fmt.Println(err)
}

Obter Layout da Página da Planilha

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

Obtenha as propriedades de layout da página da planilha com base no nome da planilha fornecido e nos parâmetros de layout da página.

Definir Margens da Página da Planilha

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

Defina as margens da página da planilha com base no nome da planilha fornecido e nos parâmetros de margem. As opções de margem suportadas são:

Opção Tipo Descrição
Inferior *float64 Margem inferior
Rodapé *float64 Margem do rodapé
Cabeçalho *float64 Margem do cabeçalho
Esquerda *float64 Margem esquerda
Direita *float64 Margem direita
Superior *float64 Margem superior
Horizontalmente *bool Centralização da página horizontalmente
Verticalmente *bool Centralização da página verticalmente

Obter Margens da Página da Planilha

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

Obtenha as margens da página da planilha com base no nome da planilha fornecido e nos parâmetros de margem.

Definir Propriedades do Livro de Trabalho

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

SetWorkbookProps é usado para definir as propriedades do livro de trabalho. As propriedades de livro de trabalho suportadas são:

Propriedade Tipo Descrição
Data1904 *bool Indica se o livro de trabalho usa o sistema de data 1904
PrivacidadeFiltro *bool Privacidade do filtro, indica se a aplicação verifica informações pessoais no livro de trabalho
NomeCódigo *string Nome do código

Obter Propriedades do Livro de Trabalho

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

GetWorkbookProps é usado para obter as propriedades do livro de trabalho.

Definir Cabeçalho e Rodapé

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

Defina o cabeçalho e o rodapé da planilha com base no nome da planilha fornecido e nos caracteres de controle.

O cabeçalho e o rodapé incluem os seguintes campos:

Campo Descrição
AlignWithMargins Define o alinhamento do cabeçalho e do rodapé com as margens da página
DifferentFirst Define o cabeçalho e o rodapé para a primeira página
DifferentOddEven Define o cabeçalho e o rodapé para páginas ímpares e pares
ScaleWithDoc Define o cabeçalho e o rodapé para escalar com o documento
OddFooter Caractere de controle para o rodapé das páginas ímpares, usado para definir o rodapé para a primeira página quando o valor de DifferentOddEven é false
OddHeader Caractere de controle para o cabeçalho das páginas ímpares, usado para definir o cabeçalho para a primeira página quando o valor de DifferentOddEven é false
EvenFooter Caractere de controle para o rodapé das páginas pares
EvenHeader Caractere de controle para o cabeçalho das páginas pares
FirstFooter Caractere de controle para o rodapé da primeira página
FirstHeader Caractere de controle para o cabeçalho da primeira página

Os códigos de formato na tabela abaixo podem ser usados para os 6 campos do tipo string: OddHeader, OddFooter, EvenHeader, EvenFooter, FirstFooter, FirstHeader

Código de Formato Descrição
&& Caractere "&"
&font-size Tamanho da fonte do texto, onde o tamanho da fonte é um tamanho de fonte decimal em pontos
&"nome da fonte,tipo de fonte" String do nome da fonte de texto, nome da fonte e string do tipo de fonte de texto, tipo de fonte
&"-,Regular" Formato de texto regular. Desativa os modos negrito e itálico
&A Nome da planilha atual
&B ou &"-,Bold" Formato de texto em negrito, desligado ou ligado, padrão desligado
&D Data atual
&C Seção central
&E Sublinhado duplo para o texto
&F Nome do arquivo de pasta de trabalho atual
&G Especifica o objeto como plano de fundo (não atualmente suportado)
&H Sombra de texto
&I ou &"-,Italic" Texto em itálico
&K Formato de cor da fonte no formato de cor RGB em RRGGBB. As cores do tema são especificadas como TTSNNN, onde TT é o id da cor do tema, S é o matiz ou tonalidade do "+", "-", é o valor do matiz ou tonalidade
&L Seção esquerda
&N Número total de páginas
&O Formato de texto de destaque
&P[[+\|-]n] Se não houver sufixo opcional, número da página atual (decimal)
&R Seção direita
&S Tachado de texto
&T Hora atual
&U Adiciona sublinhado simples ao texto. O modo padrão está desligado
&X Formato sobrescrito
&Y Formato subscrito
&Z Caminho do arquivo de pasta de trabalho atual

Por exemplo,

err := f.SetHeaderFooter("Planilha1", &excelize.HeaderFooterOptions{
    DifferentFirst:   true,
    DifferentOddEven: true,
    OddHeader:        "&R&P",
    OddFooter:        "&C&F",
    EvenHeader:       "&L&P",
    EvenFooter:       "&L&D&R&T",
    FirstHeader:      `&CCentro &"-,Negrito"Negrito&"-,Regular"CabeçalhoU+000A&D`,
})

O exemplo acima contém o seguinte formato:

  • A primeira página tem seu próprio cabeçalho e rodapé
  • Páginas ímpares e pares têm cabeçalhos e rodapés diferentes
  • A parte direita do cabeçalho da página ímpar é o número da página atual
  • A parte central do rodapé da página ímpar é o nome do arquivo da pasta de trabalho atual
  • A parte esquerda é o número da página atual no cabeçalho da página par
  • A parte esquerda é a data atual, e a parte direita do rodapé da página par é a hora atual
  • O texto na primeira linha na seção central da primeira página é "Cabeçalho Negrito Centro", e a segunda linha é a data
  • Não há rodapé na primeira página

Definir Nome

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

Defina o nome e o intervalo de referência com base no nome fornecido, sendo o escopo padrão o livro. Por exemplo:

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "Valor",
    RefersTo: "Planilha1!$A$2:$D$5",
    Comment:  "comentário do nome definido",
    Scope:    "Planilha2",
})

Definindo a área de impressão e títulos de impressão da planilha:

Configurando a área de impressão e títulos de impressão da planilha

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

Obter Nome

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

Obtenha a lista de nomes do livro e da planilha dentro do escopo.

Excluir Nome

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

Exclua o nome definido com base no nome fornecido e escopo do nome, sendo o escopo padrão o livro. Por exemplo:

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

Definir Propriedades de Aplicativo do Livro

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

Defina as propriedades de aplicativo do livro. As propriedades que podem ser definidas incluem:

Propriedade Descrição
Application O nome do aplicativo que criou este documento
ScaleCrop Especifica a exibição da miniatura do documento. Defina como true para dimensionar a miniatura do documento e false para cortar a miniatura do documento
DocSecurity O nível de segurança do documento representado como um valor numérico.
Company O nome da empresa associada ao documento
LinksUpToDate Define se os hiperlinks no documento estão atualizados. Defina como true para hiperlinks atualizados e false para hiperlinks desatualizados
HyperlinksChanged Especifica se os novos hiperlinks especificados nesta seção devem ser usados para atualizar os relacionamentos de hiperlink da próxima vez que este documento for aberto
AppVersion Especifica a versão do aplicativo que gerou este documento. O valor deve estar no formato XX.YYYY, onde X e Y são valores numéricos, caso contrário, o arquivo não estará em conformidade com o padrão

Por exemplo:

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

Obter Propriedades de Aplicativo do Livro

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

Obtenha as propriedades de aplicativo do livro.

Definir propriedades do documento

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

Defina as propriedades principais do livro. As propriedades que podem ser definidas incluem:

Propriedade Descrição
Categoria A categoria do conteúdo do documento
Status do conteúdo O status do conteúdo do documento. Por exemplo, os valores podem incluir "Rascunho", "Revisado" e "Final"
Criado O momento em que o documento foi criado, representado no formato UTC ISO 8601, por exemplo, 2019-06-04T22:00:10Z
Criador O criador do documento
Descrição A descrição do conteúdo do recurso
Identificador Uma referência clara ao recurso em um contexto específico
Palavras-chave Palavras-chave do documento
Idioma O idioma principal do conteúdo do documento
Última modificação por O usuário que modificou pela última vez o documento
Modificado O momento em que o documento foi modificado, representado no formato UTC ISO 8601, por exemplo, 2019-06-04T22:00:10Z
Revisão A versão revisada do documento
Assunto O assunto do documento
Título O título do documento
Versão O número da versão, que é definido pelo usuário ou aplicativo

Por exemplo:

err := f.SetDocProps(&excelize.DocProperties{
    Category:       "categoria",
    ContentStatus:  "Rascunho",
    Created:        "2019-06-04T22:00:10Z",
    Creator:        "Go Excelize",
    Description:    "Este arquivo foi criado pelo Go Excelize",
    Identifier:     "xlsx",
    Keywords:       "Planilha",
    LastModifiedBy: "Autor Go",
    Modified:       "2019-06-04T22:00:10Z",
    Revision:       "0",
    Subject:        "Assunto de Teste",
    Title:          "Título de Teste",
    Language:       "pt-BR",
    Version:        "1.0.0",
})

Obter propriedades do documento

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

Obtenha as propriedades principais do livro.

Proteger o livro

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

Proteja a estrutura do livro com uma senha para evitar que outros usuários visualizem planilhas ocultas, adicionem, movam ou ocultem planilhas e renomeiem planilhas. O campo AlgorithmName suporta a especificação de algoritmos de hash XOR, MD4, MD5, SHA-1, SHA-256, SHA-384 ou SHA-512. Se nenhum algoritmo de hash for especificado, o algoritmo XOR é usado por padrão. Por exemplo, proteja a estrutura do livro com uma senha:

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

WorkbookProtectionOptions define as opções para proteger o livro.

type WorkbookProtectionOptions struct {
    AlgorithmName string
    Password      string
    LockStructure bool
    LockWindows   bool
}

Desproteger o livro

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

Desproteja o livro, especificando um parâmetro de senha opcional para verificar e remover a proteção do livro.