Libro de trabajo

Opciones define las opciones para leer y escribir hojas de cálculo.

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

MaxCalcIterations se usa para especificar el número máximo de iteraciones al calcular fórmulas, con un valor predeterminado de 0.

Contraseña se usa para especificar la contraseña para abrir y guardar el libro de trabajo en texto sin formato, con un valor predeterminado vacío.

RawCellValue se usa para especificar si se debe recuperar el valor raw al leer los valores de las celdas, con un valor predeterminado de false (aplicando formato de número).

UnzipSizeLimit se usa para especificar el límite de tamaño (en bytes) para la descompresión al abrir un documento de hoja de cálculo, que debe ser mayor o igual a UnzipXMLSizeLimit, con un límite predeterminado de 16 GB.

UnzipXMLSizeLimit se usa para especificar el límite de memoria (en bytes) al descomprimir cada hoja de cálculo y tabla de cadenas compartidas, y cuando el tamaño supera este valor, el archivo XML de la hoja de cálculo se descomprimirá en el directorio temporal del sistema. Este valor debe ser menor o igual que UnzipSizeLimit, con un límite predeterminado de 16 MB.

ShortDatePattern se usa para especificar el código de formato numérico de fecha corta.

LongDatePattern se usa para especificar el código de formato numérico de fecha larga.

LongTimePattern se usa para especificar el código de formato numérico de hora larga.

CultureInfo se usa para especificar el formato regional, que se utilizará al leer formatos numéricos influenciados por la configuración regional específica de fecha y hora.

Crear

func NewFile(opts ...Options) *File

Use NewFile para crear un nuevo libro de trabajo de Excel, que por defecto contendrá una hoja de cálculo llamada Hoja1.

Abrir

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

Use OpenFile para abrir un documento de Excel existente. Por ejemplo, abrir un documento de hoja de cálculo con protección con contraseña:

f, err := excelize.OpenFile("Libro1.xlsx", excelize.Options{Password: "contraseña"})
if err != nil {
    return
}

Use Close() para cerrar el libro de trabajo abierto.

Abrir flujo de datos

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

OpenReader lee datos de io.Reader.

En el siguiente ejemplo, creamos un servidor HTTP simple para recibir documentos de hojas de cálculo cargados, agregar una nueva hoja de cálculo al documento recibido y devolver una respuesta de descarga:

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 = "Libro1.xlsx"
    f.NewSheet("HojaNueva")
    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("/proceso", process)
    http.ListenAndServe(":8090", nil)
}

Pruebas utilizando cURL:

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

Guardar

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

Use Save para guardar las ediciones en un documento de Excel.

Guardar como

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

Use SaveAs para guardar el documento de Excel en un archivo especificado.

Cerrar libro de trabajo

func (f *File) Close() error

Cerrar el libro de trabajo y limpiar cualquier caché de disco del sistema que pueda haberse creado al abrir el documento.

Nueva hoja de cálculo

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

Crea una nueva hoja de cálculo en función del nombre de hoja de cálculo dado y devuelve el índice de la hoja de cálculo en el cuaderno. Tenga en cuenta que al crear un nuevo cuaderno, contendrá una hoja de cálculo predeterminada llamada Sheet1.

Eliminar hoja de cálculo

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

Elimina la hoja de cálculo especificada en función del nombre de la hoja de cálculo proporcionado. Utilice este método con precaución, ya que afectará a fórmulas, referencias, gráficos y otros elementos asociados con la hoja de cálculo eliminada. Si otros componentes hacen referencia a valores en la hoja de cálculo eliminada, se mostrará un error e incluso puede provocar que el cuaderno no se abra. Llamar a este método no es válido cuando el cuaderno contiene solo una hoja de cálculo.

Copiar hoja de cálculo

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

Copia la hoja de cálculo en función de la hoja de cálculo de origen dada y del índice de la hoja de cálculo de destino. El desarrollador debe confirmar si el índice de la hoja de cálculo de destino ya existe. Actualmente, solo se admite la copia de hojas de cálculo que contienen valores de celda y fórmulas, mientras que no se admite la copia de hojas de cálculo que contienen tablas, imágenes, gráficos y tablas dinámicas.

// La hoja de cálculo llamada Sheet1 ya existe ...
índice, err := f.NewSheet("Sheet2")
if err != nil {
    fmt.Println(err)
    return
}
err := f.CopySheet(1, índice)

Agrupar hojas de cálculo

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

Agrupa las hojas de cálculo en función de los nombres de hoja de cálculo proporcionados, y la hoja de cálculo predeterminada debe incluirse en las hojas de cálculo proporcionadas.

Desagrupar hojas de cálculo

func (f *File) UngroupSheets() error

Desagrupa las hojas de cálculo.

Establecer imagen de fondo de la hoja de cálculo

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

Establece una imagen de fondo en mosaico para la hoja de cálculo especificada en función del nombre de la hoja de cálculo y la ruta del archivo de imagen. Los formatos de archivo de imagen admitidos incluyen: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF y WMZ.

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

Establece una imagen de fondo en mosaico para la hoja de cálculo especificada en función del nombre de hoja de cálculo, la extensión del formato de imagen y los datos del formato de imagen. Los formatos de archivo de imagen admitidos incluyen: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF y WMZ.

Establecer hoja de cálculo predeterminada

func (f *File) SetActiveSheet(index int)

Establece la hoja de cálculo predeterminada en función del valor de índice dado, donde el valor debe ser mayor o igual a 0 y menor que el número total acumulado de hojas de cálculo en el cuaderno.

Obtener índice de hoja de cálculo predeterminada

func (f *File) GetActiveSheetIndex() int

Obtiene el índice de la hoja de cálculo predeterminada, devolviendo 0 si no se encuentra ninguna hoja de cálculo predeterminada.

Establecer visibilidad de la hoja de cálculo

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

Establece la visibilidad de la hoja de cálculo en función del nombre de la hoja de cálculo y el parámetro de visibilidad. Un cuaderno debe contener al menos una hoja de cálculo visible. Si la hoja de cálculo proporcionada es la hoja de cálculo predeterminada, el ajuste de visibilidad no es válido. El tercer parámetro opcional veryHidden solo es válido cuando el valor del parámetro visible es false.

Por ejemplo, para ocultar la hoja de cálculo llamada Sheet1:

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

Obtener visibilidad de la hoja de cálculo

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

Obtiene el ajuste de visibilidad de la hoja de cálculo en función del nombre de la hoja de cálculo proporcionado. Por ejemplo, para recuperar la configuración de visibilidad de la hoja de cálculo llamada Sheet1:

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

Establecer propiedades de la hoja

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

Establece las propiedades de una hoja especificada en función del nombre de la hoja y las opciones de propiedades proporcionadas. Las opciones admitidas para las propiedades de la hoja son las siguientes:

Propiedad Tipo Descripción
CodeName *string Nombre de código
EnableFormatConditionsCalculation *bool Especifica si el formato condicional se calcula automáticamente, con un valor predeterminado de true
Publicado *bool Especifica si la hoja de cálculo está publicada, con un valor predeterminado de true
AutoPageBreaks *bool Especifica si la hoja de cálculo rompe páginas automáticamente, con un valor predeterminado de true
FitToPage *bool Especifica si habilitar la impresión ajustada a la página, con un valor predeterminado de false
TabColorIndexed *int Valor de color indexado compatible con versiones anteriores
TabColorRGB *string Valor de color estándar ARGB
TabColorTheme *int Índice de color de tema a partir de 0
TabColorTint *float64 Valor de matiz aplicado al color, con un valor predeterminado de 0.0
OutlineSummaryBelow *bool Especifica la dirección del resumen, si está debajo de los datos detallados, con un valor predeterminado de true
OutlineSummaryRight *bool Especifica la dirección del resumen, si está a la derecha de los datos detallados, con un valor predeterminado de true
BaseColWidth *uint8 Ancho de la columna base representado en el número de caracteres, con un valor predeterminado de 8
DefaultColWidth *float64 Ancho de columna predeterminado que incluye márgenes y líneas de cuadrícula
DefaultRowHeight *float64 Altura de fila representada en puntos
CustomHeight *bool Especifica si se aplica una altura de fila personalizada, con un valor predeterminado de false
ZeroHeight *bool Especifica si las filas están ocultas de forma predeterminada, con un valor predeterminado de false
ThickTop *bool Especifica si las filas tienen un borde superior grueso de forma predeterminada, con un valor predeterminado de false
ThickBottom *bool Especifica si las filas tienen un borde inferior grueso de forma predeterminada, con un valor predeterminado de false

Por ejemplo, para ocultar la fila predeterminada en la hoja de cálculo llamada Hoja1:

Establecer propiedades de la hoja

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

Obtener propiedades de la hoja

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

Obtiene las propiedades de una hoja especificada en función del nombre de la hoja.

Establecer propiedades de vista de hoja

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

Establecer las propiedades de vista de hoja según el nombre de hoja, el índice de vista y las opciones de vista proporcionadas. viewIndex puede ser un número negativo, en cuyo caso se hará un conteo hacia atrás (-1 representa la última vista). Las opciones admitidas para establecer las propiedades de vista de hoja son las siguientes:

Propiedad Tipo Descripción
DefaultGridColor *bool Especifica si se debe usar el color de línea de cuadrícula predeterminado, el valor predeterminado es true
RightToLeft *bool Especifica si se debe mostrar de derecha a izquierda, el valor predeterminado es false
ShowFormulas *bool Especifica si la hoja de cálculo muestra fórmulas, el valor predeterminado es false
ShowGridLines *bool Especifica si la hoja de cálculo muestra líneas de cuadrícula, el valor predeterminado es true
ShowRowColHeaders *bool Especifica si la hoja de cálculo muestra encabezados de fila y columna, el valor predeterminado es true
ShowRuler *bool Especifica si se muestra la regla en la vista de diseño de página, el valor predeterminado es true
ShowZeros *bool Especifica si se deben mostrar valores cero en las celdas, el valor predeterminado es true, de lo contrario se mostrará en blanco
TopLeftCell *string Especifica la coordenada de la celda superior izquierda visible
View *string Indica el tipo de vista de hoja de cálculo, con los valores de enumeración normal, pageBreakPreview y pageLayout
ZoomScale *float64 Porcentaje de escala de zoom de la ventana de visualización actual, limitado a un rango de 10 a 400, el valor predeterminado es 100

Obtener propiedades de vista de hoja

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

Recupera las propiedades de vista de hoja según el nombre de hoja y el índice de vista proporcionados. viewIndex puede ser un número negativo, en cuyo caso se hará un conteo hacia atrás (-1 representa la última vista).

Establecer diseño de página de hoja de cálculo

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

Establece los atributos del diseño de página de la hoja de cálculo en función del nombre de la hoja de cálculo proporcionado y los parámetros del diseño de página. Los atributos de diseño de página actualmente admitidos incluyen:

El atributo Size se utiliza para especificar el tamaño del papel de la página, siendo el tamaño predeterminado del diseño de página "Carta 8½ × 11 pulgadas". La tabla a continuación muestra la relación entre los tamaños de diseño de página y el parámetro de índice Size en Excelize:

Índice Tamaño del papel
1 Carta 8½ × 11 pulgadas
2 Carta pequeña 8½ × 11 pulgadas
3 Tabloide 11 × 17 pulgadas
4 Ledger 17 × 11 pulgadas
... ...
40 Abanico estándar alemán 8.5 × 12 pulgadas
41 Abanico de papel legal alemán 8.5 × 13 pulgadas
42 ISO B4 250 × 353 mm
43 Tarjeta postal japonesa 100 × 148 mm
44 Papel estándar 9 × 11 pulgadas
45 Papel estándar 10 × 11 pulgadas
46 Papel estándar 15 × 11 pulgadas
47 Carta de invitación 220 × 220 mm
50 Papel con membrete ampliado 9.275 × 12 pulgadas
51 Papel legal extra grande 9.275 × 15 pulgadas
52 Papel extra tabloide 11.69 × 18 pulgadas
53 A4 extra grande 236 × 322 mm
54 Papel con membrete en horizontal 8.275 × 11 pulgadas
55 A4 en horizontal 210 × 297 mm
56 Papel con membrete extra grande en horizontal 9.275 × 12 pulgadas
57 Papel SuperA/SuperA/A4 227 × 356 mm
58 Papel SuperB/SuperB/A3 305 × 487 mm
59 Papel con membrete ampliado 8.5 × 12.69 pulgadas
60 A4 ampliado 210 × 330 mm
61 A5 en horizontal 148 × 210 mm
62 JIS B5 en horizontal 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 en horizontal 297 × 420 mm
68 A3 extra grande en horizontal 322 × 445 mm
69 Doble tarjeta postal japonesa 200 × 148 mm
70 A6 105 × 148 mm
71 Sobre japonés Kaku n.º 2
72 Sobre japonés Kaku n.º 3
73 Sobre japonés Chou n.º 3
74 Sobre japonés Chou n.º 4
75 Papel con membrete en horizontal 11 × 8½ pulgadas
76 A3 en horizontal 420 × 297 mm
77 A4 en horizontal 297 × 210 mm
78 A5 en horizontal 210 × 148 mm
79 B4 (JIS) en horizontal 364 × 257 mm
80 B5 (JIS) en horizontal 257 × 182 mm
81 Tarjeta postal japonesa en horizontal 148 × 100 mm
82 Doble tarjeta postal japonesa en horizontal 148 × 200 mm
83 A6 en horizontal 148 × 105 mm
84 Sobre japonés Kaku n.º 2 en horizontal
85 Sobre japonés Kaku n.º 3 en horizontal
86 Sobre japonés Chou n.º 3 en horizontal
```markdown
| 87 | Sobre japonés Chou #4 horizontal |
| 88 | B6 (JIS) 128 × 182 mm |
| 89 | B6 (JIS) horizontal 182 × 128 mm |
| 90 | 12 × 11 pulgadas |
| 91 | Sobre japonés You #4 |
| 92 | Sobre japonés You #4 horizontal |
| 93 | Chino 16K 146 × 215 mm |
| 94 | Chino 32K 97 × 151 mm |
| 95 | Chino grande 32K 97 × 151 mm |
| 96 | Sobre chino #1 102 × 165 mm |
| 97 | Sobre chino #2 102 × 176 mm |
| 98 | Sobre chino #3 125 × 176 mm |
| 99 | Sobre chino #4 110 × 208 mm |
| 100 | Sobre chino #5 110 × 220 mm |
| 101 | Sobre chino #6 120 × 230 mm |
| 102 | Sobre chino #7 160 × 230 mm |
| 103 | Sobre chino #8 120 × 309 mm |
| 104 | Sobre chino #9 229 × 324 mm |
| 105 | Sobre chino #10 324 × 458 mm |
| 106 | Chino 16K horizontal |
| 107 | Chino 32K horizontal |
| 108 | Chino grande 32K horizontal |
| 109 | Sobre chino #1 horizontal 165 × 102 mm |
| 110 | Sobre chino #2 horizontal 176 × 102 mm |
| 111 | Sobre chino #3 horizontal 176 × 125 mm |
| 112 | Sobre chino #4 horizontal 208 × 110 mm |
| 113 | Sobre chino #5 horizontal 220 × 110 mm |
| 114 | Sobre chino #6 horizontal 230 × 120 mm |
| 115 | Sobre chino #7 horizontal 230 × 160 mm |
| 116 | Sobre chino #8 horizontal 309 × 120 mm |
| 117 | Sobre chino #9 horizontal 324 × 229 mm |
| 118 | Sobre chino #10 horizontal 458 × 324 mm |

La propiedad `Orientation` se utiliza para especificar la dirección del diseño de la página, siendo "vertical" la dirección predeterminada, y los valores opcionales son `vertical` y `horizontal`.

La propiedad `FirstPageNumber` se utiliza para especificar el número de página inicial, siendo automático el valor predeterminado.

La propiedad `AdjustTo` se utiliza para especificar la relación de escala de la página, con un rango de 10 a 400, es decir, escalando del 10% al 400%, y el valor predeterminado es `100` para el tamaño normal. Establecer `FitToHeight` o `FitToWidth` anulará esta propiedad.

La propiedad `FitToHeight` se utiliza para especificar la escala de la página para ajustar el ancho de la página, con un valor predeterminado de `1`.

La propiedad `FitToWidth` se utiliza para especificar la escala de la página para ajustar la altura de la página, con un valor predeterminado de `1`.

La propiedad `BlackAndWhite` se utiliza para especificar la impresión en blanco y negro, estando apagada la opción predeterminada.
f := excelize.NewFile()
var (
    size                 = 10
    orientation          = "paisaje"
    firstPageNumber uint = 2
    adjustTo        uint = 100
    fitToHeight          = 2
    fitToWidth           = 2
    blackAndWhite        = true
)
if err := f.SetPageLayout("Hoja1", &excelize.PageLayoutOptions{
    Size:            &size,
    Orientation:     &orientation,
    FirstPageNumber: &firstPageNumber,
    AdjustTo:        &adjustTo,
    FitToHeight:     &fitToHeight,
    FitToWidth:      &fitToWidth,
    BlackAndWhite:   &blackAndWhite,
}); err != nil {
    fmt.Println(err)
}

Obtener diseño de página de la hoja de cálculo

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

Obtiene las propiedades de diseño de página de la hoja de cálculo en base al nombre de la hoja de cálculo y los parámetros de diseño de página especificados.

Establecer márgenes de página de la hoja de cálculo

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

Establece los márgenes de página de la hoja de cálculo en base al nombre de la hoja de cálculo y los parámetros de margen especificados. Las opciones de márgen admitidas son:

Opción Tipo Descripción
Inferior *float64 Margen inferior
Pie de página *float64 Margen del pie de página
Encabezado *float64 Margen del encabezado
Izquierdo *float64 Margen izquierdo
Derecho *float64 Margen derecho
Superior *float64 Margen superior
Horizontalmente *bool Centrado de la página horizontalmente
Verticalmente *bool Centrado de la página verticalmente

Obtener márgenes de página de la hoja de cálculo

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

Obtiene los márgenes de página de la hoja de cálculo en base al nombre de la hoja de cálculo y parámetros de margen especificados.

Establecer propiedades del libro de trabajo

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

SetWorkbookProps se utiliza para establecer las propiedades del libro de trabajo. Las propiedades admitidas del libro de trabajo son:

Propiedad Tipo Descripción
Date1904 *bool Indica si el libro de trabajo utiliza el sistema de fecha 1904
PrivacidadFiltro *bool Privacidad del filtro, indica si la aplicación verifica información personal en el libro de trabajo
NombreCódigo *string Nombre de código

Obtener propiedades del libro de trabajo

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

GetWorkbookProps se utiliza para obtener las propiedades del libro de trabajo.

Establecer encabezado y pie de página

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

Establece el encabezado y pie de página de la hoja de trabajo basándose en el nombre de la hoja de trabajo y los caracteres de control proporcionados.

El encabezado y pie de página incluyen los siguientes campos:

Campo Descripción
AlignWithMargins Establece la alineación del encabezado y pie de página con los márgenes de la página
DifferentFirst Establece el encabezado y pie de página para la primera página
DifferentOddEven Establece el encabezado y pie de página para páginas pares e impares
ScaleWithDoc Establece que el encabezado y pie de página se escalen con el documento
OddFooter Carácter de control para el pie de página de páginas impares, utilizado para establecer el pie de página para la primera página cuando el valor de DifferentOddEven es false
OddHeader Carácter de control para el encabezado de páginas impares, utilizado para establecer el encabezado para la primera página cuando el valor de DifferentOddEven es false
EvenFooter Carácter de control para el pie de página de páginas pares
EvenHeader Carácter de control para el encabezado de páginas pares
FirstFooter Carácter de control para el pie de página de la primera página
FirstHeader Carácter de control para el encabezado de la primera página

Los códigos de formato en la tabla a continuación se pueden utilizar para los 6 campos de tipo de cadena: OddHeader, OddFooter, EvenHeader, EvenFooter, FirstFooter, FirstHeader

Código de formato Descripción
&& Carácter "&"
&tamaño-de-fuente Tamaño de fuente de texto, donde el tamaño de fuente es un tamaño de fuente decimal en puntos
&"nombre-de-fuente,tipo-de-fuente" Cadena de nombre de fuente de texto, nombre de fuente, y cadena de tipo de fuente de texto, tipo de fuente
&"-,Regular" Formato de texto regular. Desactiva los modos negrita e itálica
&A Nombre de hoja de trabajo actual
&B o &"-,Bold" Formato de texto en negrita, desactivado o activado, por defecto desactivado
&D Fecha actual
&C Sección central
&E Subrayado doble para el texto
&F Nombre de archivo de libro de trabajo actual
&G Especifica el objeto como fondo (actualmente no compatible)
&H Sombra de texto
&I o &"-,Italic" Texto en cursiva
&K Formato de color de fuente en el formato de color RGB en RRGGBB. Los colores de tema se especifican como TTSNNN, donde TT es la identificación del color de tema, S es el matiz o sombra del "+", "-", es el valor del matiz o sombra
&L Sección izquierda
&N Número total de páginas
&O Formato de texto de contorno
&P[[+\|-]n] Si no hay sufijo opcional, número de página actual (decimal)
&R Sección derecha
&S Tachado de texto
&T Hora actual
&U Agregar subrayado simple al texto. El modo predeterminado es desactivado
&X Formato de superíndice
&Y Formato de subíndice
&Z Ruta de archivo de libro de trabajo actual

Por ejemplo:

err := f.SetHeaderFooter("Hoja1", &excelize.HeaderFooterOptions{
    DifferentFirst:   true,
    DifferentOddEven: true,
    OddHeader:        "&R&P",
    OddFooter:        "&C&F",
    EvenHeader:       "&L&P",
    EvenFooter:       "&L&D&R&T",
    FirstHeader:      `&CCenter &"-,Bold"Negrita&"-,Regular"Encabezado\n&D`,
})

El ejemplo anterior contiene el siguiente formato:

  • La primera página tiene su propio encabezado y pie de página
  • Las páginas impares y pares tienen encabezados y pies de página diferentes
  • La parte derecha del encabezado de la página impar es el número de página actual
  • La parte central del pie de página de la página impar es el nombre de archivo del libro de trabajo actual
  • La parte izquierda es el número de página actual en el encabezado de la página par
  • La parte izquierda es la fecha actual, y la parte derecha del pie de página de la página par es la hora actual
  • El texto en la primera fila en la sección central de la primera página es "Encabezado en negrita centrado", y la segunda fila es la fecha
  • No hay pie de página en la primera página

Establecer Nombre

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

Establece el nombre y el rango de referencia en función del nombre dado, con el ámbito predeterminado siendo el libro de trabajo. Por ejemplo:

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "Amount",
    RefersTo: "Hoja1!$A$2:$D$5",
    Comment:  "comentario del nombre definido",
    Scope:    "Hoja2",
})

Establecer el área de impresión y los títulos de impresión de la hoja de cálculo:

Establecimiento del área de impresión y los títulos de impresión de la hoja de cálculo

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

Obtener Nombre

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

Obtener la lista de nombres del libro de trabajo y la hoja de cálculo dentro del ámbito.

Eliminar Nombre

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

Eliminar el nombre definido en función del nombre y el ámbito del nombre dado, con el ámbito predeterminado siendo el libro de trabajo. Por ejemplo:

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

Establecer Propiedades de Aplicación del Libro de Trabajo

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

Establece las propiedades de aplicación del libro de trabajo. Las propiedades que se pueden establecer incluyen:

Propiedad Descripción
Aplicación El nombre de la aplicación que creó este documento
RecortarEscalar Especifica la visualización de la miniatura del documento. Establezca en true para escalar la miniatura del documento y false para recortar la miniatura del documento
SeguridadDoc El nivel de seguridad del documento representado como un valor numérico
Compañía El nombre de la empresa asociada con el documento
EnlacesActualizados Establece si los hipervínculos en el documento están actualizados. Establezca en true para hipervínculos actualizados y false para hipervínculos desactualizados
CambioHipervínculos Especifica si los nuevos hipervínculos especificados en esta sección deben usarse para actualizar las relaciones de hipervínculos la próxima vez que se abra este documento
VersiónAplicación Especifica la versión de la aplicación que generó este documento. El valor debe estar en el formato XX.YYYY, donde X e Y son valores numéricos; de lo contrario, el archivo no cumplirá con el estándar

Por ejemplo:

err := f.SetAppProps(&excelize.AppProperties{
    Aplicación:         "Microsoft Excel",
    RecortarEscalar:    true,
    SeguridadDoc:       3,
    Compañía:           "Nombre de la empresa",
    EnlacesActualizados: true,
    CambioHipervínculos: true,
    VersiónAplicación:  "16.0000",
})

Obtener Propiedades de Aplicación del Libro de Trabajo

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

Obtener las propiedades de aplicación del libro de trabajo.

Establecer propiedades del documento

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

Establece las propiedades principales del libro. Las propiedades que se pueden establecer incluyen:

Propiedad Descripción
Categoría La categoría del contenido del documento
EstadoContenido El estado del contenido del documento. Por ejemplo, los valores pueden incluir "Borrador", "Revisado" y "Finalizado"
Creado La hora en que se creó el documento, representada en formato ISO 8601 UTC, por ejemplo 2019-06-04T22:00:10Z
Creador El creador del documento
Descripción La descripción del contenido del recurso
Identificador Una referencia clara al recurso en un contexto determinado
PalabrasClave Palabras clave del documento
Idioma El idioma principal del contenido del documento
ÚltimaModifPor El usuario que modificó por última vez el documento
Modificado La hora en que se modificó el documento, representada en formato ISO 8601 UTC, por ejemplo 2019-06-04T22:00:10Z
Revisión La versión de revisión del documento
Asunto El asunto del documento
Título El título del documento
Versión El número de versión, que es establecido por el usuario o la aplicación

Por ejemplo:

err := f.SetDocProps(&excelize.DocProperties{
    Categoría:       "categoría",
    EstadoContenido:  "Borrador",
    Creado:        "2019-06-04T22:00:10Z",
    Creador:        "Go Excelize",
    Descripción:    "Este archivo fue creado por Go Excelize",
    Identificador:     "xlsx",
    PalabrasClave:       "Hoja de cálculo",
    ÚltimaModifPor: "Autor de Go",
    Modificado:       "2019-06-04T22:00:10Z",
    Revisión:       "0",
    Asunto:        "Asunto de prueba",
    Título:          "Título de prueba",
    Idioma:       "es-ES",
    Versión:        "1.0.0",
})

Obtener propiedades del documento

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

Obtener las propiedades principales del libro.

Proteger el libro

func (f *File) ProtegerLibro(opts *OpcionesProteccionLibro) error

Protege la estructura del libro con una contraseña para prevenir que otros usuarios vean hojas de cálculo ocultas, añadan, muevan u oculten hojas de cálculo, y renombren hojas de cálculo. El campo NombreAlgoritmo admite especificar algoritmos de hash XOR, MD4, MD5, SHA-1, SHA-256, SHA-384, o SHA-512. Si no se especifica un algoritmo de hash, se utiliza el algoritmo XOR de forma predeterminada. Por ejemplo, protege la estructura del libro con una contraseña:

err := f.ProtegerLibro(&excelize.OpcionesProteccionLibro{
    Contraseña:      "contraseña",
    BloquearEstructura: true,
})

OpcionesProteccionLibro define las opciones para proteger el libro.

type OpcionesProteccionLibro struct {
    NombreAlgoritmo string
    Contraseña      string
    BloquearEstructura bool
    BloquearVentanas   bool
}

Desproteger el libro

func (f *File) DesprotegerLibro(contraseña ...string) error

Desprotege el libro, especificando un parámetro de contraseña opcional para verificar y eliminar la protección del libro.