Libro

Options 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 especifica las iteraciones máximas para el cálculo iterativo, el valor predeterminado es 0.

Password especifica la contraseña de la hoja de cálculo en texto plano.

RawCellValue especifica si se aplica el formato de número para el valor de la celda o se obtiene el valor sin procesar.

UnzipSizeLimit especifica el límite de tamaño de descompresión en bytes al abrir la hoja de cálculo, este valor debe ser mayor o igual que UnzipXMLSizeLimit, el límite de tamaño predeterminado es 16GB.

UnzipXMLSizeLimit especifica el límite de memoria al descomprimir la hoja de trabajo y la tabla de cadenas compartidas en bytes, la hoja de trabajo XML se extraerá al directorio temporal del sistema cuando el tamaño del archivo supere este valor, este valor debe ser menor o igual a UnzipSizeLimit, el valor predeterminado El valor es 16MB.

ShortDatePattern especifica el código de formato de número de fecha corta. En las aplicaciones de hojas de cálculo, los formatos de fecha muestran números de serie de fecha y hora como valores de fecha. Los formatos de fecha que comienzan con un asterisco (*) responden a cambios en la configuración regional de fecha y hora que se especifican para el sistema operativo. Los formatos sin asterisco no se ven afectados por la configuración del sistema operativo. El ShortDatePattern usado para especifica aplicar formatos de fecha que comienzan con un asterisco.

LongDatePattern especifica el código de formato de número de fecha larga.

LongTimePattern especifica el código de formato de número de larga duración.

CultureInfo especifica el código de país para aplicar el código de formato de número de idioma integrado que se aplica a la configuración de idioma local del sistema.

Crear una hoja de cálculo

func NewFile(opts ...Options) *File

NewFile proporciona una función para crear un nuevo archivo de forma predeterminada. El libro recién creado contendrá de forma predeterminada una hoja de cálculo denominada Sheet1. Por ejemplo:

Abierto

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

OpenFile toma el nombre de un archivo de hoja de cálculo y devuelve una estructura de archivo de hoja de cálculo rellenada para él. Por ejemplo, abra una hoja de cálculo con protección con contraseña:

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

Cierre el archivo por Close() después de abrir la hoja de cálculo.

Flujo de datos abiertos

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

OpenReader lee el flujo de datos de io.Reader y devuelva un archivo de hoja de cálculo rellenado.

Por ejemplo, cree un servidor HTTP para manejar la plantilla de carga y, a continuación, el archivo de descarga de respuesta con la nueva hoja de cálculo agregada:

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)
}

Prueba con 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

Save proporciona una función para invalidar el archivo de hoja de cálculo con la ruta de origen.

Guardar como

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

SaveAs proporciona una función para crear o actualizar el archivo de hoja de cálculo en la ruta proporcionada.

Cerrar libro de trabajo

func (f *File) Close() error

Close cierra y limpia el archivo temporal abierto para la hoja de cálculo.

Crear hoja de trabajo

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

NewSheet proporciona la función para crear una nueva hoja por un nombre de hoja de cálculo y devuelve el índice de las hojas en el libro (hoja de cálculo) después de anexar. Tenga en cuenta que al crear un nuevo archivo de hoja de cálculo, se creará la hoja de cálculo predeterminada denominada Sheet1.

Eliminar hoja de trabajo

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

DeleteSheet proporciona una función para eliminar la hoja de trabajo en un libro de trabajo por el nombre de la hoja de trabajo dado, los nombres de las hojas no distinguen entre mayúsculas y minúsculas. Utilice este método con precaución, ya que afectará los cambios en las referencias, como fórmulas, gráficos, etc. Si hay algún valor de referencia de la hoja de cálculo eliminada, se producirá un error de archivo cuando lo abra. Esta función no será válida cuando solo quede una hoja de trabajo.

Copiar hoja de trabajo

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

CopySheet proporciona una función para duplicar una hoja de cálculo mediante el índice de hoja de cálculo de origen y destino dado. Tenga en cuenta que actualmente no admite libros de trabajo duplicados que contengan tablas, gráficos o imágenes. Por ejemplo:

// Sheet1 ya existe...
index, err := f.NewSheet("Sheet2")
if err != nil {
    fmt.Println(err)
    return
}
err := f.CopySheet(1, index)

Hojas de trabajo grupales

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

GroupSheets proporciona una función para agrupar hojas de trabajo por nombres de hojas de trabajo dados. Las hojas de trabajo grupales deben contener una hoja de trabajo activa.

Desagrupar hojas de trabajo

func (f *File) UngroupSheets() error

UngroupSheets proporciona una función para desagrupar hojas de trabajo.

Establecer el fondo de la hoja de trabajo

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

SetSheetBackground proporciona una función para configurar la imagen de fondo según el nombre de la hoja de trabajo y la ruta del archivo. Tipos de imágenes compatibles: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF y WMZ.

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

SetSheetBackgroundFromBytes proporciona una función para configurar la imagen de fondo según el nombre de la hoja de trabajo, el nombre de la extensión y los datos de la imagen. Tipos de imágenes compatibles: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF y WMZ.

Establecer la hoja de trabajo predeterminada

func (f *File) SetActiveSheet(index int)

SetActiveSheet proporciona una función para establecer la hoja activa predeterminada del libro por un índice determinado. Tenga en cuenta que el índice activo es diferente del identificador devuelto por la función GetSheetMap. Debe ser mayor o igual que 0 y menor que el total de números de hoja de cálculo.

Obtener índice de hoja activo

func (f *File) GetActiveSheetIndex() int

GetActiveSheetIndex proporciona una función para obtener una hoja de cálculo activa del libro. Si no se encuentra, la hoja activa devolverá el entero '0'.

Establecer la hoja de trabajo visible

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

SetSheetVisible proporciona una función para establecer la hoja de cálculo visible por el nombre de la hoja de cálculo dado. Un libro de trabajo debe contener al menos una hoja de cálculo visible. Si se ha activado la hoja de cálculo determinada, esta configuración se invalidará. El tercer parámetro opcional veryHidden solo funciona cuando visible es false.

Por ejemplo, ocultar Sheet1:

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

Obtener la hoja de trabajo visible

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

GetSheetVisible proporciona una función para que la hoja de cálculo sea visible con el nombre de la hoja de cálculo especificado. Por ejemplo, obtenga el estado visible de Sheet1:

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

Establecer propiedades de hoja

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

SetSheetProps proporciona una función para establecer las propiedades de la hoja de cálculo. Las propiedades que se pueden establecer son:

Opciones Tipo Descripción
CodeName *string Especifica un nombre estable de la hoja, que no debe cambiar con el tiempo y no cambia a partir de la entrada del usuario. Este nombre debe ser utilizado por código para hacer referencia a una hoja en particular
EnableFormatConditionsCalculation *bool Indicando si se evaluarán los cálculos de formato condicional. Si se establece en false, los valores mínimos/máximos de las escalas de color o las barras de datos o los valores umbral en las reglas Top N no se actualizarán. Esencialmente, el formato condicional "calc" está desactivado
Published *bool Indicando si la hoja de cálculo está publicada, el valor predeterminado es true
AutoPageBreaks *bool Indicando si la hoja muestra saltos de página automáticos, el valor predeterminado es true
FitToPage *bool Indicando si la opción de impresión Ajustar a página está habilitada, el valor predeterminado es false
TabColorIndexed *int Representa el valor de color indizado
TabColorRGB *string Representa el valor de color ARGB (Alpha Red Green Blue) estándar
TabColorTheme *int Representa el índice basado en cero en la colección, haciendo referencia a un valor determinado expresado en el elemento Tema
TabColorTint *float64 Especifica el valor de tinte aplicado al color, el valor predeterminado es 0.0
OutlineSummaryBelow *bool Indicando si las filas de resumen aparecen debajo del detalle en un esquema, al aplicar un contorno, el valor predeterminado es true
OutlineSummaryRight *bool Indicando si las columnas de resumen aparecen a la derecha de detalle en un esquema, al aplicar un esquema, el valor predeterminado es true
BaseColWidth *uint8 Especifica el número de caracteres del ancho máximo de dígitos de la fuente del estilo normal. Este valor no incluye el relleno de margen ni el relleno adicional para las líneas de rejilla. Es solo el número de caracteres, el valor predeterminado es 8
DefaultColWidth *float64 Especifica el ancho de columna predeterminado medido como el número de caracteres del ancho máximo de dígitos de la fuente del estilo normal
DefaultRowHeight *float64 Especifica la altura de fila predeterminada medida en tamaño de punto. Optimización para que no tengamos que escribir la altura en todas las filas. Esto se puede escribir si la mayoría de las filas tienen altura personalizada, para lograr la optimización
CustomHeight *bool Especifica la altura personalizada, el valor predeterminado es false
ZeroHeight *bool Especifica que si las filas están ocultas, el valor predeterminado es false
ThickTop *bool Especifica que si las filas tienen un borde superior grueso de forma predeterminada, el valor predeterminado es false
ThickBottom *bool Especifica que si las filas tienen un borde inferior grueso de forma predeterminada, el valor predeterminado es false

Por ejemplo, haga que las filas de la hoja de cálculo sean predeterminadas como ocultas:

Establecer propiedades de hoja

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

Obtener propiedades de la hoja

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

GetSheetProps proporciona una función para obtener las propiedades de la hoja de cálculo.

Establecer propiedades de vista de hoja de cálculo

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

SetSheetView establece las propiedades de la vista de hoja. El viewIndex puede ser negativo y, de ser así, se cuenta hacia atrás (-1 es la última vista). Las propiedades que se pueden establecer son:

Opciones Tipo Descripción
DefaultGridColor *bool Indicando que la aplicación consumidora debe utilizar el color predeterminado de las líneas de cuadrícula (dependiente del sistema). Anula cualquier color especificado en colorId, el valor predeterminado es true
RightToLeft *bool Indicando si la hoja está en modo de visualización "de derecha a izquierda". Cuando está en este modo, la columna A está en el extremo derecho, la columna B; es una columna a la izquierda de la columna A, y así sucesivamente. Además, la información en las celdas se muestra en el formato de derecha a izquierda, el valor predeterminado es false
ShowFormulas *bool Indicando si esta hoja debe mostrar fórmulas, el valor predeterminado es false
ShowGridLines *bool Indicando si esta hoja debe mostrar líneas de cuadrícula, el valor predeterminado es true
ShowRowColHeaders *bool Indicando si la hoja debe mostrar encabezados de fila y columna, el valor predeterminado es true
ShowRuler *bool Indicando que esta hoja debe mostrar la regla, el valor predeterminado es true
ShowZeros *bool Indicando si se debe "mostrar un cero en celdas que tienen valor cero". Cuando se utiliza una fórmula para hacer referencia a otra celda que está vacía, el valor referenciado se convierte en 0 cuando el indicador es true, el valor predeterminado es true
TopLeftCell *string Especifica una ubicación de la celda visible superior izquierda Ubicación de la celda visible superior izquierda en el panel inferior derecho (cuando está en modo de izquierda a derecha)
View *string Indicando cómo se muestra la hoja, por defecto utiliza cadena vacía, opciones disponibles: normal, pageBreakPreview y pageLayout
ZoomScale *float64 Especifica una ampliación del zoom de ventana para la vista actual que representa los valores porcentuales. Este atributo está restringido a valores que van desde 10 a 400. Escala horizontal y vertical juntas, el valor predeterminado es 100

Obtener propiedades de vista de hoja de cálculo

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

GetSheetView obtiene el valor de las propiedades de la vista de hoja. El viewIndex puede ser negativo y, de ser así, se cuenta hacia atrás (-1 es la última vista).

Establecer el diseño de la página de la hoja de trabajo

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

SetPageLayout proporciona una función para establecer el diseño de página de hoja de cálculo. Opciones disponibles:

Size proporciona un método para establecer el tamaño del papel de la hoja de trabajo, el tamaño de papel predeterminado de la hoja de trabajo es "Papel carta (8.5 pulgadas por 11 pulgadas)". A continuación se muestra el tamaño del papel ordenado por el número de índice de Excelize:

Indice Tamaño del papel
1 Papel de carta (8.5 in. × 11 in.)
2 Carta de papel pequeño (8.5 in. × 11 in.)
3 Papel tabloide (11 in. × 17 in.)
4 Papel contable (17 in. × 11 in.)
5 Documento legal (8.5 in. × 14 in.)
6 Documento de estado de cuenta (5.5 in. × 8.5 in.)
7 Documento ejecutivo (7.25 in. × 10.5 in.)
8 Papel A3 (297 mm × 420 mm)
9 Papel A4 (210 mm × 297 mm)
10 Papel pequeño A4 (210 mm × 297 mm)
11 Papel A5 (148 mm × 210 mm)
12 Papel B4 (250 mm × 353 mm)
13 Papel B5 (176 mm × 250 mm)
14 Folio papel (8.5 in. × 13 in.)
15 Papel de cuarzo (215 mm × 275 mm)
16 Papel estándar (10 in. × 14 in.)
17 Papel estándar (11 in. × 17 in.)
18 Papel de la nota (8.5 in. × 11 in.)
19 #9 Sobre (3.875 in. × 8.875 in.)
20 #10 Sobre (4.125 in. × 9.5 in.)
21 #11 Sobre (4.5 in. × 10.375 in.)
22 #12 Sobre (4.75 in. × 11 in.)
23 #14 Sobre (5 in. × 11.5 in.)
24 C papel (17 in. × 22 in.)
25 D papel (22 in. × 34 in.)
26 E papel (34 in. × 44 in.)
27 DL Sobre (110 mm × 220 mm)
28 C5 Sobre (162 mm × 229 mm)
29 C3 Sobre (324 mm × 458 mm)
30 C4 Sobre (229 mm × 324 mm)
31 C6 Sobre (114 mm × 162 mm)
32 C65 Sobre (114 mm × 229 mm)
33 B4 Sobre (250 mm × 353 mm)
34 B5 Sobre (176 mm × 250 mm)
35 B6 Sobre (176 mm × 125 mm)
36 Italia Sobre (110 mm × 230 mm)
37 Monarca Sobre (3.875 in. × 7.5 in.).
38 6¾ Sobre (3.625 in. × 6.5 in.)
39 Ventilador estándar de EE. UU. (14.875 in. × 11 in.)
40 Ventilador estándar alemán (8.5 in. × 12 in.)
41 Fanfold legal alemán (8.5 in. × 13 in.)
42 ISO B4 (250 mm × 353 mm)
43 Postal japonesa (100 mm × 148 mm)
44 Estándar papel (9 in. × 11 in.)
45 Estándar papel (10 in. × 11 in.)
46 Estándar papel (15 in. × 11 in.)
47 Invite Sobre (220 mm × 220 mm)
50 Papel extra carta (9.275 in. × 12 in.)
51 Documento adicional legal (9.275 in. × 15 in.)
52 Papel extra tabloide (11.69 in. × 18 in.)
53 A4 papel extra (236 mm × 322 mm)
54 Papel transversal de carta (8.275 in. × 11 in.)
55 Papel transversal A4 (210 mm × 297 mm)
56 Papel transversal adicional carta (9.275 in. × 12 in.)
57 SuperA/SuperA/Papel A4 (227 mm × 356 mm)
58 SuperB/SuperB/Papel A3 (305 mm × 487 mm)
59 Carta más papel (8.5 in. × 12.69 in.)
60 Papel A4 más (210 mm × 330 mm)
61 A5 papel transversal (148 mm × 210 mm)
62 JIS B5 papel transversal (182 mm × 257 mm)
63 A3 papel extra (322 mm × 445 mm)
64 A5 papel extra (174 mm × 235 mm)
65 ISO B5 papel extra (201 mm × 276 mm)
66 A2 papel (420 mm × 594 mm)
67 A3 papel transversal (297 mm × 420 mm)
68 A3 extra papel transversal (322 mm × 445 mm)
69 Postal Doble Japonesa (200 mm × 148 mm)
70 A6 (105 mm × 148 mm)
71 Sobre japonés Kaku #2
72 Sobre japonés Kaku #3
73 Sobre japonés Chou #3
74 Sobre japonés Chou #4
75 Carta rotada (11 × 8½ in.)
76 A3 rotada (420 mm × 297 mm)
77 A4 rotada (297 mm × 210 mm)
78 A5 rotada (210 mm × 148 mm)
79 B4 (JIS) rotada (364 mm × 257 mm)
80 B5 (JIS) rotada (257 mm × 182 mm)
81 Postal Japonesa Rotada (148 mm × 100 mm)
82 Doble postal japonesa rotada (148 mm × 200 mm)
83 A6 rotada (148 mm × 105 mm)
84 Sobre japonés Kaku #2 Rotado
85 Sobre japonés Kaku #3 Rotado
86 Sobre japonés Chou #3 Rotado
87 Sobre japonés Chou #4 Rotado
88 B6 (JIS) (128 mm × 182 mm)
89 B6 (JIS) rotada (182 mm × 128 mm)
90 (12 in × 11 in)
91 Sobre japonés que #4
92 Sobre japonés que #4 rotado
93 PRC 16K (146 mm × 215 mm)
94 PRC 32K (97 mm × 151 mm)
95 PRC 32K(Big) (97 mm × 151 mm)
96 #1 Sobre de la PRC (102 mm × 165 mm)
97 #2 Sobre de la PRC (102 mm × 176 mm)
98 #3 Sobre de la PRC (125 mm × 176 mm)
99 #4 Sobre de la PRC (110 mm × 208 mm)
100 #5 Sobre de la PRC (110 mm × 220 mm)
101 #6 Sobre de la PRC (120 mm × 230 mm)
102 #7 Sobre de la PRC (160 mm × 230 mm)
103 #8 Sobre de la PRC (120 mm × 309 mm)
104 #9 Sobre de la PRC (229 mm × 324 mm)
105 #10 Sobre de la PRC (324 mm × 458 mm)
106 PRC 16K rotada
107 PRC 32K rotada
108 PRC 32K(Big) rotada
109 Sobre PRC #1 rota (165 mm × 102 mm)
110 Sobre PRC #2 rota (176 mm × 102 mm)
111 Sobre PRC #3 rota (176 mm × 125 mm)
112 Sobre PRC #4 rota (208 mm × 110 mm)
113 Sobre PRC #5 rota (220 mm × 110 mm)
114 Sobre PRC #6 rota (230 mm × 120 mm)
115 Sobre PRC #7 rota (230 mm × 160 mm)
116 Sobre PRC #8 rota (309 mm × 120 mm)
117 Sobre PRC #9 rota (324 mm × 229 mm)
118 Sobre PRC #10 rota (458 mm × 324 mm)

Orientación especificó la orientación de la hoja de cálculo, la orientación predeterminada es portrait. Los valores posibles para este campo son portrait y landscape.

FirstPageNumber especificó el primer número de página impreso. Si no se especifica ningún valor, se asume "automático".

AdjustTo especificó la escala de impresión. Este atributo está restringido a valores que van desde 10 (10%) a 400 (400%). Esta configuración se anula cuando FitToWidth y/o FitToHeight están en uso.

FitToHeight especificaba el número de páginas verticales en las que cabría.

FitToWidth especificaba el número de páginas horizontales en las que cabría.

BlackAndWhite especificó la impresión en blanco y negro.

Por ejemplo, configure el diseño de página para Sheet1 con impresión en blanco y negro, primer número de página impresa desde 2, papel pequeño A4 horizontal (210 mm por 297 mm), 2 páginas verticales para ajustar, 2 páginas verticales para encajar y 2 páginas horizontales para encajar:

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)
}

Obtener el diseño de la página de la hoja de trabajo

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

GetPageLayout proporciona una función para obtener el diseño de página de la hoja de cálculo.

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

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

SetPageMargins proporciona una función para establecer los márgenes de la página de la hoja de cálculo. Opciones disponibles:

Opciones Tipo Descripción
Bottom *float64 Abajo
Footer *float64 Pie de página
Header *float64 Encabezado
Left *float64 Izquierda
Right *float64 Derecha
Top *float64 Arriba
Horizontally *bool Centrar en la página: Horizontalmente
Vertically *bool Centrar en la página: Verticalmente

Obtener márgenes de página de la hoja de trabajo

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

GetPageMargins proporciona una función para obtener márgenes de página de hoja de cálculo.

Establecer las propiedades del libro de trabajo

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

SetWorkbookProps proporciona una función para establecer las propiedades del libro. Opciones Disponibles:

Opciones Tipo Descripción
Date1904 *bool Indica si se debe usar un sistema de fechas de 1900 o 1904 al convertir fechas y horas en serie en el libro de trabajo a fechas.
FilterPrivacy *bool Especifica un valor booleano que indica si la aplicación ha inspeccionado el libro en busca de información de identificación personal (PII). Si se establece este indicador, la aplicación advierte al usuario cada vez que realiza una acción que insertará PII en el documento.
CodeName *string Especifica el nombre en clave de la aplicación que creó este libro. Utilice este atributo para realizar un seguimiento del contenido del archivo en las versiones incrementales de la aplicación.

Obtener propiedades del libro de trabajo

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

GetWorkbookProps proporciona una función para obtener las propiedades del libro de trabajo.

Establecer encabezado y pie de página

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

SetHeaderFooter proporciona una función para establecer encabezados y pies de página por el nombre de la hoja de cálculo y los caracteres de control.

Los encabezados y pies de página se especifican mediante los siguientes campos de configuración:

Campos Descripción
AlignWithMargins Alinee los márgenes de pie de página de encabezado con los márgenes de página
DifferentFirst Diferente indicador de encabezado y pie de página de primera página
DifferentOddEven Diferente indicador de encabezados y pies de página impares e pares
ScaleWithDoc Escalar encabezado y pie de página con escalado de documentos
OddFooter Pie de página impar o pie de página principal si DifferentOddEven es false
OddHeader Encabezado impar o encabezado de página principal si DifferentOddEven es false
EvenFooter Pie de página par
EvenHeader Incluso encabezado de página
FirstFooter Primer pie de página
FirstHeader Encabezado de la primera página

Los siguientes códigos de formato se pueden utilizar en 6 campos de tipo de cadena: OddHeader, OddFooter, EvenHeader, EvenFooter, FirstFooter, FirstHeader

Formato de código Descripción
&& El personaje "&"
&font-size Tamaño de la fuente de texto, donde el tamaño de fuente es un tamaño de fuente decimal en puntos
&"font name,font type" Una cadena de nombre de fuente de texto, un nombre de fuente y una cadena de tipo de fuente de texto, tipo de fuente
&"-,Regular" Formato de texto normal. Alterna los modos en negrita y cursiva a desactivados
&A Nombre de la pestaña de la hoja de trabajo actual
&B or &"-,Bold" Formato de texto en negrita, de apagado a en adelante, o viceversa. El modo predeterminado está desactivado
&D Fecha actual
&C Sección central
&E Formato de texto de subrayado doble
&F Nombre de archivo del libro de trabajo actual
&G Dibujar objeto como fondo (No es compatible actualmente)
&H Formato de texto de sombra
&I or &"-,Italic" Formato de texto en cursiva
&K Color de fuente de texto
Un color RGB se especifica como RRGGBB
Un color de tema se especifica como TTSNNN donde TT es el identificador de color del tema, S es "+" o "-" del valor de tinte/sombra, y NNN es el valor de tinte/sombra
&L Sección izquierda
&N Número total de páginas
&O Formato de texto de esquema
&P[[+\|-]n] Sin el sufijo opcional, el número de página actual en decimal
&R Sección derecha
&S Formato de texto tachado
&T Hora actual
&U Formato de texto de subrayado único. Si el modo de subrayado doble está activado, la siguiente aparición en un especificador de sección cambia el modo de subrayado doble a desactivado; de lo contrario, alterna el modo de subrayado único, de apagado a encendido, o viceversa. El modo predeterminado está desactivado
&X Formato de texto superíndice
&Y Formato de texto de subíndice
&Z Current workbook's file path

Por ejemplo:

err := f.SetHeaderFooter("Sheet1", &excelize.HeaderFooterOptions{
    DifferentFirst:   true,
    DifferentOddEven: true,
    OddHeader:        "&R&P",
    OddFooter:        "&C&F",
    EvenHeader:       "&L&P",
    EvenFooter:       "&L&D&R&T",
    FirstHeader:      `&CCenter &"-,Bold"Bold&"-,Regular"HeaderU+000A&D`,
})

Este ejemplo muestra:

  • La primera página tiene su propio encabezado y pie de página
  • Las páginas impares e pares tienen diferentes encabezados y pies de página
  • Número de página actual en la sección derecha de los encabezados de página impar
  • Nombre de archivo del libro de trabajo actual en la sección central de pies de página impar
  • Número de página actual en la sección izquierda de encabezados de página par
  • Fecha actual en la sección izquierda y la hora actual en la sección derecha de pies de página pares
  • El texto "Center Bold Header" en la primera línea de la sección central de la primera página, y la fecha en la segunda línea de la sección central de esa misma página
  • No hay pie de página en la primera página

Establecer nombre definido

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

SetDefinedName proporciona una función para establecer los nombres definidos del libro o la hoja de cálculo. Si no se especifica el ámbito, el ámbito predeterminado es el libro. Por ejemplo:

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

Configuración del área de impresión e impresión de títulos para la hoja de trabajo:

Configuración del área de impresión e impresión de títulos para la hoja de trabajo

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 el nombre definido

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

GetDefinedName proporciona una función para obtener los nombres definidos del libro o la hoja de cálculo.

Eliminar nombre definido

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

DeleteDefinedName proporciona una función para eliminar los nombres definidos del libro o la hoja de cálculo. Si no se especifica el ámbito, el ámbito predeterminado es el libro. Por ejemplo:

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

Establecer propiedades de la aplicación

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

SetAppProps proporciona una función para establecer las propiedades de la aplicación de documentos. Las propiedades que se pueden configurar son:

Propiedad Descripción
Application El nombre de la aplicación que creó este documento.
ScaleCrop Indica el modo de visualización de la miniatura del documento. Establezca este elemento en true para habilitar la escala de la miniatura del documento en la pantalla. Establezca este elemento en false para permitir el recorte de la miniatura del documento para mostrar solo las secciones que se ajustarán a la pantalla.
DocSecurity Nivel de seguridad de un documento como valor numérico. La seguridad del documento se define como:
1 - El documento está protegido con contraseña.
2 - Se recomienda abrir el documento como de solo lectura.
3 - El documento debe abrirse como de solo lectura.
4 - el documento está bloqueado para anotaciones.
Company The name of a company associated with the document.
LinksUpToDate Indica si los hipervínculos de un documento están actualizados. Establezca este elemento en true para indicar que los hipervínculos están actualizados. Establezca este elemento en false para indicar que los hipervínculos están desactualizados.
HyperlinksChanged Especifica que uno o más hipervínculos en esta parte fueron actualizados exclusivamente en esta parte por un productor. El próximo productor que abra este documento deberá actualizar las relaciones de hipervínculos con los nuevos hipervínculos especificados en esta parte.
AppVersion Especifica la versión de la aplicación que produjo este documento. El contenido de este elemento tendrá la forma XX.YYYY donde X e Y representan valores numéricos, o el documento se considerará no conforme.

Por ejemplo:

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

Obtener propiedades de la aplicación

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

GetAppProps proporciona una función para obtener propiedades de la aplicación de documentos.

Establecer las propiedades del documento

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

SetDocProps proporciona una función para establecer las propiedades del núcleo del documento. Las propiedades que se pueden establecer son:

Propiedad Descripción
Category Una categorización del contenido de este paquete.
ContentStatus El estado del contenido. Por ejemplo, los valores pueden incluir "Draft", "Reviewed" y "Final".
Created La hora de modificación del contenido del recurso.
Creator Una entidad responsable principal de hacer que el contenido del recurso.
Description Una explicación del contenido del recurso.
Identifier Una referencia inequívoca al recurso dentro de un contexto determinado.
Keywords Un conjunto delimitado de palabras clave para admitir la búsqueda y la indexación. Normalmente se trata de una lista de términos que no están disponibles en otras partes de las propiedades.
Language El lenguaje del contenido intelectual del recurso.
LastModifiedBy El usuario que realizó la última modificación. La identificación es específica del entorno.
Modified La hora de modificación del contenido del recurso.
Revision El número de revisión del contenido del recurso.
Subject El tema del contenido del recurso.
Title El nombre se dio al recurso.
Version El número de versión. Este valor lo establece el usuario o la aplicación.

Por ejemplo:

err := f.SetDocProps(&excelize.DocProperties{
    Category:       "category",
    ContentStatus:  "Draft",
    Created:        "2019-06-04T22:00:10Z",
    Creator:        "Go Excelize",
    Description:    "This file created by Go Excelize",
    Identifier:     "xlsx",
    Keywords:       "Spreadsheet",
    LastModifiedBy: "Go Author",
    Modified:       "2019-06-04T22:00:10Z",
    Revision:       "0",
    Subject:        "Test Subject",
    Title:          "Test Title",
    Language:       "en-US",
    Version:        "1.0.0",
})

Obtener propiedades del documento

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

GetDocProps proporciona una función para obtener las propiedades principales del documento.

Proteger el libro de trabajo

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

ProtectWorkbook proporciona una función para evitar que otros usuarios cambien, muevan o eliminen datos en un libro de forma accidental o deliberada. El algoritmo hash especificado del campo opcional AlgorithmName, compatible con XOR, MD4, MD5, SHA-1, SHA2-56, SHA-384 y SHA-512 actualmente, si no se especifica ningún algoritmo hash, utilizará el algoritmo XOR de forma predeterminada. Por ejemplo, proteja el libro de trabajo con la configuración de protección:

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

WorkbookProtectionOptions asigna directamente la configuración de la protección del libro.

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

Desproteger libro de trabajo

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

UnprotectWorkbook proporciona una función para eliminar la protección del libro de trabajo, especificó el parámetro de contraseña opcional para eliminar la protección del libro de trabajo con verificación de contraseña.

results matching ""

    No results matching ""