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
:
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:
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.