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
StreamingReaderen lugar de una carga completa deWorkbookcuando un archivo pueda tener miles de filas y solo necesite leerlo, no modificarlo. - Cree un
Styleuna sola vez y reutilícelo en muchas celdas en lugar de construir uno nuevo por celda. Cell.SetFormulaalmacena 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
errordeSave,AddDataValidationy 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
| Issue | Cause | Corregir |
|---|---|---|
Valor de celda no visible después de Set | Referenciando la hoja incorrecta o una referencia de celda fuera de rango | Confirma 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 calcularse | La biblioteca solo almacena la cadena de la fórmula; no evalúa fórmulas | Abre el archivo en Excel o LibreOffice, que realizan el cálculo al abrirlo |
| Validación de datos no visible en Excel | La validación se agregó a un rango que no incluye la celda objetivo | Confirme 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étodo | Descripción |
|---|---|
Workbook.NewWorkbook / Save | Crear y guardar un libro de trabajo |
Worksheet.Cells | Acceder a la colección de celdas de una hoja de cálculo |
Cells.Get / Set / Remove / All | Leer, escribir, eliminar y enumerar celdas |
Cell.SetStyle / SetFormula / GetFormula | Aplicar estilo y fórmulas a una celda |
Style, Font, Fill, Alignment, Border | Crear formato de celda reutilizable |
Worksheet.AddDataValidation | Adjuntar una regla de validación a un rango de celdas |
Worksheet.AddTable / GetTable | Crear y recuperar rangos de tabla estructurados |
Worksheet.AddPicture / Picture.SetAnchor(row, col) | Incrustar y posicionar imágenes |
StreamingReader.ProcessRows | Transmitir una hoja de cálculo fila por fila |
Workbook.ExportToCSV / ImportFromCSV | Convertir entre XLSX y CSV |
Workbook.SetPassword / VerifyPassword | Proteger y comprobar la contraseña de un libro de trabajo |