Resumen de funciones

Resumen de características

Aspose.Cells FOSS para API de Go se centra en Workbook, Worksheet, Cells y Cell. Esta guía recorre las demás capacidades de la biblioteca: estilo, validación de datos, tablas, imágenes y lecturas en streaming para archivos grandes.


Estilo de celda

Agrupe los ajustes Font, Fill, Alignment y Border en un Style reutilizable, luego aplíquelo a una celda con Cell.SetStyle:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12

highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
	Type:  cells_foss.FillTypeSolid,
	Color: "FF4472C4",
}

cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)

Alignment controla Horizontal, Vertical y WrapText; Border controla la visibilidad de las reglas Top, Bottom, Left y Right más Color.


Validación de datos

Worksheet.AddDataValidation adjunta una regla de validación a un rango de celdas. La estructura DataValidation lleva la regla Type, uno o dos valores Formula, y campos de mensaje de error:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

dv := &cells_foss.DataValidation{
	Type:             cells_foss.DataValidationTypeList,
	Formula1:         `"Apple,Banana,Cherry,Dragonfruit"`,
	AllowBlank:       true,
	ShowErrorMessage: true,
	ErrorTitle:       "Invalid Fruit",
	ErrorMessage:     "Please pick a fruit from the list.",
	ErrorStyle:       cells_foss.ErrorStyleStop,
}
ws.AddDataValidation("A2:A10", dv)

Una validación de rango de números enteros usa DataValidationTypeWhole con Formula1/Formula2 como los límites inferior y superior.


Tablas

Worksheet.AddTable crea un Table estructurado sobre un rango, con una fila de encabezado opcional y un estilo de tabla con nombre:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"

Recupera una tabla existente por nombre con Worksheet.GetTable(name).


Imágenes

Worksheet.AddPicture inserta una imagen; Picture.SetAnchor(row, col) la posiciona:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use

pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)

Transmisión de archivos grandes

StreamingReader lee una hoja de cálculo fila por fila mediante una devolución de llamada, de modo que un libro de trabajo con varios miles de filas nunca tiene que cargarse completamente en memoria:

path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
	// process one row at a time
	return nil
})
if err != nil {
	fmt.Printf("Error streaming: %v\n", err)
}

Consejos y mejores prácticas

  • Utilice StreamingReader en lugar de una carga completa de Workbook cuando un archivo pueda tener miles de filas y solo necesite leerlo, no modificarlo.
  • Cree un Style una sola vez y reutilícelo en muchas celdas en lugar de construir uno nuevo por celda.
  • Cell.SetFormula almacena una cadena de fórmula literalmente — se evalúa por Excel o LibreOffice al abrir, no por la biblioteca al guardar.
  • Verifique el valor de retorno de error de Save, AddDataValidation y de las llamadas de importación/exportación CSV — la E/S de la hoja de cálculo puede fallar por rutas inválidas o entrada malformada.

Problemas comunes

IssueCauseCorregir
Valor de celda no visible después de SetReferenciando la hoja incorrecta o una referencia de celda fuera de rangoConfirma el índice Worksheet y que la referencia al estilo A1 coincida con la celda deseada
La fórmula se muestra como texto sin formato en lugar de calcularseLa biblioteca solo almacena la cadena de la fórmula; no evalúa fórmulasAbre el archivo en Excel o LibreOffice, que realizan el cálculo al abrirlo
Validación de datos no visible en ExcelLa validación se agregó a un rango que no incluye la celda objetivoConfirme que la cadena de rango (p. ej. "A2:A10") cubre las celdas que espera validar

FAQ

¿La biblioteca evalúa fórmulas por sí misma?

No. Cell.SetFormula/GetFormula almacenan una cadena de fórmula que Excel o LibreOffice evalúa cuando se abre el archivo.

¿Puedo stream-write libros de trabajo grandes, no solo stream-read?

StreamingReader cubre lecturas en streaming. Escribir libros de trabajo grandes actualmente pasa por el API estándar en memoria Workbook/Worksheet.

¿AddTable aplica automáticamente un auto-filter?

Esto no está confirmado en la superficie actual de API — solo HasHeaderRow y StyleName son campos Table documentados. Verifique contra el archivo .xlsx generado si esto es importante para su caso de uso.


Resumen de API Reference

Clase / MétodoDescripción
Workbook.NewWorkbook / SaveCrear y guardar un libro de trabajo
Worksheet.CellsAcceder a la colección de celdas de una hoja de cálculo
Cells.Get / Set / Remove / AllLeer, escribir, eliminar y enumerar celdas
Cell.SetStyle / SetFormula / GetFormulaAplicar estilo y fórmulas a una celda
Style, Font, Fill, Alignment, BorderCrear formato de celda reutilizable
Worksheet.AddDataValidationAdjuntar una regla de validación a un rango de celdas
Worksheet.AddTable / GetTableCrear y recuperar rangos de tabla estructurados
Worksheet.AddPicture / Picture.SetAnchor(row, col)Incrustar y posicionar imágenes
StreamingReader.ProcessRowsTransmitir una hoja de cálculo fila por fila
Workbook.ExportToCSV / ImportFromCSVConvertir entre XLSX y CSV
Workbook.SetPassword / VerifyPasswordProteger y comprobar la contraseña de un libro de trabajo

Ver también

 Español